Comment enregistrer le texte à la parole en tant que wav avec Microsoft SAPI?
-
12-09-2019 - |
Question
Je dois transformer un texte en parole, puis enregistrez-le sous forme de fichier wav.
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();
}
}