开发者

SpeechSynthesizer in C# creates wav that has 22kHz... needs to be 16kHz

开发者 https://www.devze.com 2022-12-26 19:40 出处:网络
My C# application needs to covert text to wav file and inject it into a S开发者_C百科kype call. The code that creates the wav file is below. The problem is that the file has 22kHz sample rate and Skyp

My C# application needs to covert text to wav file and inject it into a S开发者_C百科kype call. The code that creates the wav file is below. The problem is that the file has 22kHz sample rate and Skype accepts only 16kHz.

Is there any way to adjust this setting?

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();
}


SetOutputToWaveFile() has an overload that accepts a SpeechAudioFormatInfo parameter, which can be used to set the sample rate. Don't see one for SetOutputToWaveStream(), oddly, but since you're writing to a file anyway, that should work.

Edit:

As @Hans points out, the correct overload is SetOutputToAudioStream() to write to a stream.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号