Синтез речи на C# в Windows

soprano

Client
Регистрация
25.08.2011
Сообщения
808
Благодарностей
867
Баллы
93
Для генерации аудио из текста на русском пользуюсь такой конструкцией.
Всё работает нормально, ролик создаётся.
C#:
                    SpeechSynthesizer synch = new SpeechSynthesizer();
                    if (!Directory.Exists(pathFolder + @"\audio\")) Directory.CreateDirectory(pathFolder + @"\audio\");

                    string voiceName = "Elena";
                    if (voiceName != string.Empty) synch.SelectVoice(voiceName);

                    synch.SetOutputToDefaultAudioDevice();
                    synch.SetOutputToWaveFile(pathFolder + @"\audio\audio.wav",
                    new SpeechAudioFormatInfo(32000, AudioBitsPerSample.Sixteen, AudioChannel.Mono));

                    System.Media.SoundPlayer m_SoundPlayer = new System.Media.SoundPlayer(pathFolder + @"\audio.wav");

                    PromptBuilder builder = new PromptBuilder();
                    builder.AppendText("English text");

                    synch.Speak(builder);
                    synch.Dispose();
Понадобилось озвучить английский текст. И тут пошли траблы.
Текст озвучивается тем же русскоязычным диктором, что и русский.

Получается так https://www.sendspace.com/file/7sslkd

Английский язык в синтезаторе речи системы стоит, и везде, где только можно в винде.
Голоса новые устанавливал, выбирал - ничего..
Английский диктор по умолчанию в системе выбран.
Здесь ставлю голос диктора
C#:
string voiceName = "Microsoft David";
Всё не то. Или показвает ошибку, что такого голоса нет, или же озвучивает русскоязычная тётка.
Пробовал такой вариант
C#:
synch.SelectVoiceByHints(VoiceGender.Male, VoiceAge.Adult, 0, CultureInfo.GetCultureInfo("en-US"));
Ничего не меняется.
Второй день бьюсь без успеха.
Нужна помощь именно с этим вариантом озвучки.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 386
Благодарностей
3 309
Баллы
113
Должен быть метод для получения имеющихся дикторов, по индексу уже и передавать имя требуемого (если есть).
Так же с языками и прочим.
 

soprano

Client
Регистрация
25.08.2011
Сообщения
808
Благодарностей
867
Баллы
93
Вот получаю голоса
70584

Выбираю один из пяти верхних английских, всё равно озвучивает русский диктор.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)