SAPI 형식 라이브러리를 Delphi로 가져 왔습니다. 내가 할 수있는이 코드를 사용하여 PC 스피커로 출력 연설 :Delphi의 text-to-speech-to-wav
procedure TForm1.Button1Click(Sender: TObject);
var
Voice: TSpVoice;
begin
Voice := TSpVoice.Create(nil);
Voice.Speak('Hello World!', 0);
end;
내가 할 수있는이 코드와 .wav
파일로 출력 연설 :
procedure TForm1.Button1Click(Sender: TObject);
var
Voice: TSpVoice;
Stream: TSpFileStream;
begin
Voice := TSpVoice.Create(nil);
Stream := TSpFileStream.Create(nil);
Stream.Open('c:\temp\test.wav', SSFMCreateForWrite, False);
Voice.AudioOutputStream := Stream.DefaultInterface;
Voice.Speak('Hello World!', 0);
Stream.Close;
end;
문제는 그 나는 .wav
파일을 재생할 때 정말 낮은 비트 전송률을 사용하는 것처럼 끔찍하게 들립니다. Audacity는 파일이 모노 16 비트 22.05kHz라고 알려주지 만, 그보다 훨씬 더 나쁜 것처럼 들립니다.
음성을 PC 스피커로 직접 출력하는 것과 똑같이 출력되는 모노 16 비트 44.1kHz .wav
파일로 어떻게 출력합니까? 두 번째 코드 샘플을 수정하여 샘플 당 비트 수와 비트 전송률을 설정하는 방법을 알지 못했습니다.
Follup-up : 글렌의 대답은 비트 전송률 문제를 해결합니다. 고마워. 그러나 .wav
파일로의 음성 출력 품질은 여전히 스피커로 직접 출력되는 것보다 열등합니다. 나는 화면 기록 소프트웨어를 사용하여 첫 번째 코드 블록의 결과를 helloworldtospeakers.wav으로 기록했다. Glenn의 라인이 추가 된 두 번째 코드 블록은 helloworldtowav.wav입니다. 두 번째 파일에는 명확하게 왜곡되어 있습니다. 어떤 아이디어?