Ieri sera ho scaricato l'SDK 5.1 di Microsoft Speech rilasciato il 3 Marzo 2009 e devo dire che mi è piaciuto parecchio (Link).
Referenziando la "System.Speech" si hanno a disposizione i due namespace “System.Speech.Synthesis” e “System.Speech.Recognition”.
Nel primo namespace, Synthesis, è definita la classe SpeechSynthesizer, istanziandola e richiamando il metodo Speak è possibile riprodurre la stringa di testo passata come parametro, ecco un esempio:
using (var synthesizer = new SpeechSynthesizer())
{
synthesizer.SetOutputToDefaultAudioDevice();
synthesizer.Speak("Master of contracts.");
}
Tra le varie modalità di utilizzo è possibile impostare come output anziché in audio device un file, ecco l’esempio:
using (var synthesizer = new SpeechSynthesizer())
{
synthesizer.SetOutputToWaveFile(@"c:\temp\test1.wav");
synthesizer.Speak("Master of contracts.");
}
Il metodo GetInstalledVoices restituisce l’elenco delle voci installate sul pc:
using (var synthesizer = new System.Speech.Synthesis.SpeechSynthesizer())
{
synthesizer.SetOutputToDefaultAudioDevice();
foreach (var voice in (from v in synthesizer.GetInstalledVoices() where v.Enabled select v))
{
synthesizer.SelectVoice(voice.VoiceInfo.Name);
synthesizer.Speak("Master of contracts.");
}
}
La classe SpeechRecognizer serve invece per effettuare il riconoscimento vocale.
Riccardo.