c# - C# 中的 SpeechSynthesizer 创建具有 22kHz 的 wav...需要为 16kHz

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

我的 C# 应用程序需要将文本转换为 wav 文件并将其注入(inject)到 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()写入流。

关于c# - C# 中的 SpeechSynthesizer 创建具有 22kHz 的 wav...需要为 16kHz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2625611/

相关文章:

ios - 当铃声静音时使 iOS 文本转语音工作

c# - C# 中的链式相等比较

c# - 为什么那个异常管理代码很臭?

内联方法调用和单独方法调用之间的 C# 编译器类型推断区别

audio - 如何使用sox将mp3wav转换为未压缩的WAV?

c# - 如何在C#中播放提取的波形文件字节数组?

java - 无法使用 MediaPlayer 播放反转的 .wav 文件

android - 是否有适用于 urdu 和 android 的文本到语音引擎

c# - 从azure存储异步下载blob并将其保存在DataTable中

text-to-speech - 是否有接受基于 IPA 的音标的文本转语音软件?