使用System.Speech.Synthesis.SpeechSynthesizer将文本发送到MP3

时间:2009-12-17 06:55:58

标签: .net mp3 text-to-speech speechsynthesizer

我正在尝试将文本转语音保存为MP3。 目前我的System.Speech.Synthesis很好地与WAV文件对话。

    With New System.Speech.Synthesis.SpeechSynthesizer
        '.SetOutputToWaveFile(pOutputPath)    This works fine 
        .SetOutputToWaveStream(<<Problem bit>>)
        .Speak(pTextToSpeak)
        .SetOutputToNull()
        .Dispose()
    End With

现在注释掉的第一行产生了一个很好的WAV文件。目前我正在尝试用MP3输出流替换它并没有取得多大成功。

我已经尝试过Yeti.MMedia转换器,但它要么不起作用,要么我没有成功地工作。我必须承认,我对编码,速度等知之甚少。

所以我的问题是,有没有人知道一个很好的方式,我可以说如下:

.SetOutputToWaveStream(New MP3WriteStream(pOutputPath))

并让SpeechSynthesizer写入WAV,然后转换为MP3并最终在硬盘上。

3 个答案:

答案 0 :(得分:2)

首先,让Yeti类提供具有适当压缩因子的可写流。然后,使用SpeechSynthesizer.SetOutputToAudioStream - 告诉TTS引擎有关语音质量的信息。

答案 1 :(得分:0)

我认为除了使用Wav编写它然后使用LAME MP3 Encoder(等)转换它之外没有任何其他方法。

答案 2 :(得分:0)

简单地用Yeti捣蛋,它确实有效,我在一个非常大的网络应用程序上使用它,它已经运行了大约2年没有问题。