Pergunta

Eu escrevi um pequeno aplicativo que leva em algum texto e converte-lo para um wav áudio. agora, ele funciona bem, exceto que o arquivo wav produzida é muito grande.

Eu estou olhando em maneiras de tornar a saída wav menor e fazer todo o processo demorar menos tempo.

Exemplo de código:

 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;  
    }
Foi útil?

Solução

saída .wav é descompactado.

Se você quer saída de "menor", use o codec adequado, e comprimi-lo.

Outras dicas

Você pode usar o codificador LAME MP3 para converter a saída WAV para MP3. Isso resultará em um arquivo de saída menor, como Anon diz.

http://lame.sourceforge.net/

Você deve usar um codec de compressão que é construída especificamente para o discurso para obter o maior benefício possível. Speex é gratuito e excelente. Você pode usá-lo de c # como este: http://www.codeproject.com/KB /cs/speexincsharp.aspx .

Isso vai produzir melhores resultados do que um propósito ou música codec geral faria.

Os arquivos Wave são longos per se. Você deve passá-lo através de um codec como XVID para filmes ou MP3 ou OGG para áudio, por exemplo.

Dê uma olhada neste tutorial sobre como usar DirectShow

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top