Написать синтез речи

528
29 декабря 2016, 05:50

Хочу написать синтез речи. Опыт работы с С# WinFoms. Подскажите, пожалуйста, как быстро и с помощью чего это сделать? Если есть готовое решение - круто. Предложите хоть какие-то варианты.

Answer 1

Для синтеза используйте класс SpeechSynthesizer. Для поддержки русского языка вызовите метод SelectVoice() и укажите голос, который поддерживает русский язык. Список доступных голосов возвращает метод GetInstalledVoices(). Новые голоса можно доустановить в систему. Один из примеров голосов - Катерина (ScanSoft Katerina Full 22kHz) взять можно, например здесь

А вот большая подборка голосов http://forum.ru-board.com/topic.cgi?forum=5&topic=21094

Answer 2

В .NET есть стандартный класс SpeechSynthesizer.

Пример его использования:

  SpeechSynthesizer synth = new SpeechSynthesizer();
  synth.SetOutputToDefaultAudioDevice();
  synth.Speak("This example demonstrates a basic use of Speech Synthesizer");

Для того, чтобы узнать какие русские голоса установлены выполните код

var voices = synth.GetInstalledVoices(new CultureInfo("ru-RU"));

Если на русском голосов нет, то можно устанавливать голоса. Для установки русских голосов, качайте те, которые содержат в названии ru-RU.

Затем для установки следует использовать метод SetVoice.

Допустим у нас установлен голос на русском, тогда можно это сделать так:

synth.SelectVoice("Elena"); // если известно имя
synth.SelectVoice(voices[0].VoiceInfo.Name); // установить первый попавшийся

или воспользоваться методом SelectVoiceByHints.

Answer 3

Тоже интересовался этой темой, и на тот момент нашел довольно интересное решение от gunthercox на Github: https://github.com/gunthercox/SpeakForMe

Его суть заключалась в синтезе речи на основе Google Speech API посредством разложения на фонемы. Это один из способов - лично я его использовал для создания чат-бота, который говорил моим голосом :)

P.S. также в C# есть встроенный класс для работы с синтезом речи: SpeechSynthesizer.

READ ALSO
Помогите доделать сайт на mvc [требует правки]

Помогите доделать сайт на mvc [требует правки]

Для резюме хочу сделать простой сайт на mvc с отзывами, админпанелью

387
Как загружать файлы не упираясь в лимиты I/O?

Как загружать файлы не упираясь в лимиты I/O?

Проблема заключается в лимитах хостинга на чтение/запись, и при загрузке от 100 файлов(фоток) за раз, сервер упирается в лимиты и сбрасывает...

469
Как получить запись из .env

Как получить запись из .env

Добавляю в файлenv новое значение, как его получить в шаблоне или контроллере?

425
проблемы с денвером [требует правки]

проблемы с денвером [требует правки]

вам уже был знаком этот вопрос,но хочу повторитьсяв чём проблема и сможите помочь её исправить?

371