Question

Je dois transformer un texte en parole, puis enregistrez-le sous forme de fichier wav.

Était-ce utile?

La solution

Le code C # utilise l'espace de noms System.Speech dans le framework .Net. Il est nécessaire de faire référence à l'espace de noms avant de l'utiliser, car il n'est pas référencé automatiquement par Visual Studio.

        SpeechSynthesizer ss = new SpeechSynthesizer();
        ss.Volume = 100;
        ss.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult);
        ss.SetOutputToWaveFile(@"C:\MyAudioFile.wav");
        ss.Speak("Hello World");

J'espère que cela est pertinent et utile.

Autres conseils

Et comme je l'ai trouvé sur la façon de changer le format de sortie, on code quelque chose comme ceci:

SpeechAudioFormatInfo info = new SpeechAudioFormatInfo(6, AudioBitsPerSample.Sixteen, AudioChannel.Mono);

//Same code comes here 

ss.SetOutputToWaveFile(@"C:\MyAudioFile.wav",info);

C'est assez facile et compréhensible.

.net cool

Ceci est de quelques moments de jeu, emptor donc mise en garde. A bien fonctionné pour moi. J'ai remarqué que SpFileStream (qui ne met pas en œuvre IDisposable, ainsi le try / finally) préfère les chemins absolus à relative. C #.

   SpFileStream fs = null;
    try
    {
        SpVoice voice = new SpVoice();
        fs = new SpFileStream();
        fs.Open(@"c:\hello.wav", SpeechStreamFileMode.SSFMCreateForWrite, false);
        voice.AudioOutputStream = fs;
        voice.Speak("Hello world.", SpeechVoiceSpeakFlags.SVSFDefault);
    }
    finally
    {
        if (fs != null)
        {
            fs.Close();
        }
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top