SpeechSynthesizer in C# creates wav that has 22kHz… needs to be 16kHz
-
26-09-2019 - |
문제
My C# application needs to covert text to wav file and inject it into a Skype 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 since you're writing to a file anyway, that should work.SetOutputToWaveStream()
, oddly, but
Edit:
As @Hans points out, the correct overload is SetOutputToAudioStream()
to write to a stream.
제휴하지 않습니다 StackOverflow