Это из нескольких минут игры, так что будьте бдительны. Хорошо сработало для меня. Я заметил, что SpFileStream (который не реализует IDisposable, то есть try / finally) предпочитает абсолютные пути относительным. 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();
}
}