2

テキストを取り込んでオーディオ 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

4 に答える 4

4

.wav 出力は非圧縮です。

「より小さな」出力が必要な場合は、適切なコーデックを使用して圧縮します。

于 2009-12-13T22:50:22.263 に答える
1

最大限のメリットを得るには、音声専用に構築された圧縮コーデックを使用する必要があります。Speex は無料で優れています。次のように c# から使用できます: http://www.codeproject.com/KB/cs/speexincsharp.aspx

これにより、汎用または音楽コーデックよりも優れた結果が得られます。

于 2009-12-13T23:04:48.923 に答える
1

LAME MP3 エンコーダーを使用して、WAV 出力を MP3 に変換できます。これにより、アノンが言うように、出力ファイルが小さくなります。

http://lame.sourceforge.net/

于 2009-12-13T22:53:20.970 に答える
0

Wave ファイル自体は長いです。たとえば、映画の場合は XVID、オーディオの場合は MP3 または OGG としてコーデックを介して渡す必要があります。

DirectShowの使用方法については、このチュートリアルをご覧ください。

于 2009-12-13T22:52:48.537 に答える