.NET 3.0 Texto para voz WAV saída muito grande e lento processo
-
19-09-2019 - |
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;
}
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.
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