В синтезе речи в Windows 10 происходит что-то действительно странное.
Во-первых, даже Windows отображает количество установленных языков на городских и классических панелях управления.
В приложении Metro отображается 5 установленных языков, а в классической панели управления - только 3.
Мне нужно использовать язык Microsoft Павел, но мое приложение его просто не видит!
SpeechSynthesizer ss = new SpeechSynthesizer();
var installed_voices = ss.GetInstalledVoices();
for (int i = 0; i < installed_voices.Count; i++)
Console.WriteLine(GetVoiceInfoDesc(installed_voices[i].VoiceInfo));
static string GetVoiceInfoDesc(VoiceInfo vi)
{
return vi.AdditionalInfo["Name"] + " (ID = " + vi.AdditionalInfo["Language"] + ", " + vi.AdditionalInfo["Age"] + ", " + vi.AdditionalInfo["Gender"] + ", " + vi.Culture + ")";
}
В приведенном выше коде отображаются только 3 установленных языка.
Кроме того, когда я использую
ss.SelectVoiceByHints(VoiceGender.Male, VoiceAge.Adult, 0, CultureInfo.CreateSpecificCulture("ru-RU"));
Я по-прежнему слышу женский голос Ирина.
Я тестировал голос Павел, он действительно установлен и что-то говорит.
Я использую .net 4.0 C#. Есть идеи, что здесь происходит?
@Simonare - Да ...





Проблема в том, что некоторые языки по неизвестной причине могут использоваться только в приложениях для метро и не могут быть обнаружены через SAPI.
Мы можем исправить это, изменив реестр.
Это пример исправления голоса Павла в Windows 10 x64, который я взял откуда-то из Интернета:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Speech\Voices\Tokens\MSTTS_V110_ruRU_PavelM]
@ = "Microsoft Pavel Mobile - Russian (Russia)"
"419" = "Microsoft Pavel Mobile - Russian (Russia)"
"CLSID" = "{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}"
"LangDataPath"=hex(2):25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,00,5c,00,53,\
00,70,00,65,00,65,00,63,00,68,00,5f,00,4f,00,6e,00,65,00,43,00,6f,00,72,00,\
65,00,5c,00,45,00,6e,00,67,00,69,00,6e,00,65,00,73,00,5c,00,54,00,54,00,53,\
00,5c,00,72,00,75,00,2d,00,52,00,55,00,5c,00,4d,00,53,00,54,00,54,00,53,00,\
4c,00,6f,00,63,00,72,00,75,00,52,00,55,00,2e,00,64,00,61,00,74,00,00,00
"VoicePath"=hex(2):25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,00,5c,00,53,00,\
70,00,65,00,65,00,63,00,68,00,5f,00,4f,00,6e,00,65,00,43,00,6f,00,72,00,65,\
00,5c,00,45,00,6e,00,67,00,69,00,6e,00,65,00,73,00,5c,00,54,00,54,00,53,00,\
5c,00,72,00,75,00,2d,00,52,00,55,00,5c,00,4d,00,31,00,30,00,34,00,39,00,50,\
00,61,00,76,00,65,00,6c,00,00,00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Speech\Voices\Tokens\MSTTS_V110_ruRU_PavelM\Attributes]
"Age" = "Adult"
"DataVersion" = "11.0.2013.1022"
"Gender" = "Male"
"Language" = "419"
"Name" = "Microsoft Pavel Mobile"
"SharedPronunciation" = ""
"Vendor" = "Microsoft"
"Version" = "11.0"
Ридми говорит: «Спасибо Нонне Лаврухиной».
У меня была та же проблема, и я пробовал несколько решений, но ни одно из них не помогло. Моим требованием было не иметь определенные голоса в Windows 10, поэтому я поискал другие ресурсы и нашел это.
Я попытался установить некоторые из них, и мое приложение распознает их как установленные, и они работают должным образом. Может быть, ты найдешь там голоса, которые тебе подходят. Удачи!
Может ты ссылку дал не ту? Это для Microsoft Speech Platform - Runtime Languages (Version 11) .
@Kosmos, если вы нажмете кнопку загрузки и прокрутите вниз, вы увидите, какие языки доступны для загрузки. Например MSSpeech_TTS_ru-RU_Elena.msi
вы пробовали это с повышенным разрешением?