C#中的SpeechSynthesizer创建了22kHz的wav ...需要16kHz

时间:2010-04-12 21:31:20

标签: c# wav text-to-speech speechsynthesizer sample-rate

我的C#应用​​程序需要将文本转换为wav文件并将其注入Skype通话。创建wav文件的代码如下所示。问题是文件的采样率为22kHz,Skype只接受16kHz。

有没有办法调整此设置?

using (System.IO.FileStream stream = System.IO.File.Create("message.wav"))
{

System.Speech.Synthesis.SpeechSynthesizer speechEngine = new System.Speech.Synthesis.SpeechSynthesizer();

 speechEngine.SetOutputToWaveStream(stream);
 speechEngine.Speak(number);
 stream.Flush();
}

1 个答案:

答案 0 :(得分:4)

SetOutputToWaveFile()有一个接受SpeechAudioFormatInfo参数的重载,可用于设置采样率。 没有看到SetOutputToWaveStream()的一个,奇怪的是,但是因为你正在写一个文件,这应该有效。

编辑:

正如@Hans指出的那样,正确的重载是SetOutputToAudioStream()来写入流。