我写了一个小应用程序,它接收一些文本并将其转换为音频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;
}
答案 0 :(得分:4)
.wav输出未压缩。
如果您想要“较小”的输出,请使用适当的编解码器并压缩它。
答案 1 :(得分:1)
您可以使用LAME MP3编码器将WAV输出转换为MP3。这将导致像Anon所说的更小的输出文件。
答案 2 :(得分:1)
您应该使用专为语音构建的压缩编解码器,以获得最大的好处。 Speex是免费且优秀的。你可以在c#中使用它:http://www.codeproject.com/KB/cs/speexincsharp.aspx。
这将产生比通用或音乐编解码器更好的结果。
答案 3 :(得分:0)
Wave文件本身很长。您应该通过编解码器传递它作为电影的XVID或MP3或OGG的音频,例如。
请参阅本教程,了解如何使用DirectShow