Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET 3.0文本到语音WAV输出太大且进程缓慢_C#_.net_Text To Speech_Sapi - Fatal编程技术网

C# .NET 3.0文本到语音WAV输出太大且进程缓慢

C# .NET 3.0文本到语音WAV输出太大且进程缓慢,c#,.net,text-to-speech,sapi,C#,.net,Text To Speech,Sapi,我编写了一个小应用程序,它接收一些文本并将其转换为音频wav。 现在,除了生成的wav文件太大之外,它工作正常 我正在寻找方法,使wav输出更小,使整个过程花费更少的时间 示例代码: public byte[] ConvertText2Wav(string text) { MemoryStream wavAudioStream = new MemoryStream(); SpeechSynthesizer speechEngine

我编写了一个小应用程序,它接收一些文本并将其转换为音频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;  
    }

.wav输出未压缩


如果您想要“更小”的输出,请使用适当的编解码器并对其进行压缩。

波形文件本身很长。您应该将其作为XVID(电影)或MP3或OGG(音频)通过编解码器


查看本教程,了解如何使用

您可以使用LAME MP3编码器将WAV输出转换为MP3。这将产生一个更小的输出文件,如Anon所说


您应该使用专门为语音构建的压缩编解码器,以获得最大可能的好处。Speex是免费的,非常棒。您可以从c使用它,如下所示:


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

plz,请您再解释一下好吗?您的.wav输出总是(相对)巨大的。这是因为它是没有压缩的原始声音值。你要做的是,一旦你得到了原始的声音,通过编码器运行它来减少文件大小。FLAC适用于无损音频,但如果您不需要完美的精度,使用有损编解码器通常可以获得更好的压缩。谢谢。哦,有没有办法使文本转换为wav的过程加快一点?看一下问题中的代码。在代码上运行探查器。这将确定最慢的事情。仅仅通过阅读代码就很难猜出最慢的东西是什么;使用工具来帮助你。