Question

J'ai écrit une petite application qui prend dans un texte et le convertit en un wav audio. maintenant, il fonctionne très bien, sauf que le fichier wav produit est trop grand.

Je suis à la recherche sur les moyens de rendre la sortie wav plus petit et faire prendre moins de temps tout le processus.

Exemple de code:

 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;  
    }
Était-ce utile?

La solution

sortie .wav est non compressée.

Si vous voulez une sortie « plus petit », utiliser un codec approprié et compriment.

Autres conseils

Vous pouvez utiliser l'encodeur LAME MP3 pour convertir la sortie WAV en MP3. Cela se traduira par un plus petit fichier de sortie comme le dit Anon.

http://lame.sourceforge.net/

Vous devez utiliser un codec de compression qui est construit spécifiquement pour la parole pour obtenir le plus grand bénéfice possible. Speex est gratuit et excellent. Vous pouvez l'utiliser de c # comme ceci: http://www.codeproject.com/KB /cs/speexincsharp.aspx .

Cela donnera de meilleurs résultats que dans un but général ou codec musique serait.

Les fichiers Wave sont longues en soi. Vous devez passer par un codec XVID comme pour les films ou MP3 ou OGG pour l'audio par exemple.

Jetez un oeil à ce tutoriel sur la façon d'utiliser DirectShow

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top