Это то, что мне нужно, чтобы сделать простое приложение для преобразования текста в речь. Это нормально работает.
static void Main(string[] args)
{
SpeechSynthesizer ss = new SpeechSynthesizer();
string file = @"C:\test.wav";
ss.SetOutputToWaveFile(file, new SpeechAudioFormatInfo(16000, AudioBitsPerSample.Sixteen, AudioChannel.Mono));
PromptBuilder pb = new PromptBuilder();
pb.StartVoice("Microsoft David Desktop");
pb.AppendSsmlMarkup("Hello world");
pb.EndVoice();
ss.Speak(pb);
Console.ReadLine();
}
Теперь мой вопрос в том, могу ли я использовать голос, отличный от голосов Microsoft, для произнесения текста вслух. Как L&H Michael или Michelle, голоса, совместимые с SAPI.
Я пробовал делать это с L&H Майклом или Мишель, но вместо этих голосов приложение просто использует голос Microsoft по умолчанию.





Я в основном использую SAPI SDK 11 или System.Speech, но пробовали ли вы использовать .GetInstalledVoices, чтобы убедиться, что вы установили то, что ожидаете, а затем используйте .SelectVoice, чтобы установить это. Вот пример для .GetInstalledVoices: https://msdn.microsoft.com/en-us/library/system.speech.synthesis.voiceinfo(v=vs.110).aspx и отсюда в стеке: как я могу изменить пол и возраст синтезатора голоса в C#?. Используйте .SelectVoice вместо .SelectVoiceByHints, если вам нужен конкретный голос:
synthesizer.SelectVoice("Microsoft Server Speech Text to Speech Voice (en-US, Helen)");