簡體   English   中英

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

[英]SpeechSynthesizer in C# creates wav that has 22kHz… needs to be 16kHz

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

SetOutputToWaveFile()有一個接受SpeechAudioFormatInfo參數的重載,該參數可用於設置采樣率。 奇怪的是,沒有為 SetOutputToWaveStream()看到一個,但是 因為你無論如何都要寫一個文件,這應該有效。

編輯:

正如@Hans指出的那樣,正確的重載是SetOutputToAudioStream()來寫入流。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM