.NET 3.0文本到语音WAV输出过大而缓慢的过程

时间:2009-12-13 22:48:04

标签: c# .net text-to-speech sapi

我写了一个小应用程序,它接收一些文本并将其转换为音频wav。 现在,除了生成的wav文件太大外,它工作正常。

我正在研究如何使wav输出更小,并使整个过程花费更少的时间。

示例代码:

 public byte[] ConvertText2Wav(string text)
    {
        MemoryStream wavAudioStream = new MemoryStream();            
        SpeechSynthesizer speechEngine = new SpeechSynthesizer();
        speechEngine.SetOutputToWaveStream(wavAudioStream);
        speechEngine.Speak(text);
        wavAudioStream.Flush();
        Byte[] wavBytes = wavAudioStream.GetBuffer();
        return wavBytes;  
    }

4 个答案:

答案 0 :(得分:4)

.wav输出未压缩。

如果您想要“较小”的输出,请使用适当的编解码器并压缩它。

答案 1 :(得分:1)

您可以使用LAME MP3编码器将WAV输出转换为MP3。这将导致像Anon所说的更小的输出文件。

http://lame.sourceforge.net/

答案 2 :(得分:1)

您应该使用专为语音构建的压缩编解码器,以获得最大的好处。 Speex是免费且优秀的。你可以在c#中使用它:http://www.codeproject.com/KB/cs/speexincsharp.aspx

这将产生比通用或音乐编解码器更好的结果。

答案 3 :(得分:0)

Wave文件本身很长。您应该通过编解码器传递它作为电影的XVID或MP3或OGG的音频,例如。

请参阅本教程,了解如何使用DirectShow