За Яндекс сказать не могу, у меня работает.
А для встроенного нужно определить, какие голоса существуют по умолчанию и вписать вместо установленного
Вот сниппет для определения голосов
SpeechSynthesizer synth = new SpeechSynthesizer();
foreach (InstalledVoice voice in synth.GetInstalledVoices())
{
VoiceInfo info = voice.VoiceInfo;
string AudioFormats = "";
foreach (SpeechAudioFormatInfo fmt in info.SupportedAudioFormats)
{
AudioFormats += String.Format("{0}\n",
fmt.EncodingFormat.ToString());
}
project.SendInfoToLog("Имя голоса: " + info.Name, true);
}