代码之家  ›  专栏  ›  技术社区  ›  screenshot345

C中的语音合成器创建的wav为22kHz…需要为16kHz

  •  4
  • screenshot345  · 技术社区  · 16 年前

    我的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 回复  |  直到 14 年前
        1
  •  4
  •   Tanzelax    16 年前

    SetOutputToWaveFile() 具有接受 SpeechAudioFormatInfo 参数,可用于设置采样率。 看不到一个 SetOutputToWaveStream() 奇怪的是 既然你正在写一个文件,那就行了。

    编辑:

    正如@hans指出的,正确的过载是 SetOutputToAudioStream() 写入流。

    推荐文章