Итак, в прошлый раз мы остановились на голосовом движке для создания аудио — файлов. Речь велась об опенсорсном голосовом движке, который позволит нам уйти от необходимости озвучивать что-либо самостоятельно. RHVoice (по этому названию мы можем найти и скачать этот движок) дает в наше полное распоряжение аж четыре варианта голоса. На тембр и интонацию можно подобрать под себя, что чертовски приятно. И пускай этот движок во многом уступает по качеству звука и грамотности выговора своим платным товарищам (типа движка от acapela group), после некоторых манипуляций с звуком на выходе мы можем получить вполне внятное аудио-сообщение, которое донесет до человека все, что мы хотели сказать.
Первое, что нам необходимо сделать, скачать и установить голосовой движок. Введя название в любом поисковике, мы сможем скачать эту чудо-машину. Процесс установки не занимает много времени, через пару кликов на кнопку «Next» и несколько минут, после чего наш компьютер научится говорить.
Для разработки нам понадобится Visual Studio. Для демонстрации работы нам будет достаточно консольного приложения. Создаем новый проект. Первое, что нам нужно сделать, это добавить ссылку на System.Speech. Указываем using System.Speech.Synthesis. Большего нам не понадобится.
Теперь напишем простейшую программу, которая будет озвучивать вводимый нами текст.

Подобный код будет работать и давать нам на выходе .wav файл в папке debug нашего проекта. Рассмотрим настройки, которые предоставляет нам подобная программа:
- SpeechSynthesizer.SelectVoice() — отвечает за выбор голоса, которым будет озвучено сообщение. Для выбора конкретного звучания передается имя голоса.
- SpeechSynthesizer.Rate — темп, с которым будет говорить наша программа. Изменяется в диапазоне от -10 до 10. Чем ниже указывается это свойство, тем медленнее будем говорить. Однако следует учитывать, что значения меньше -4 на выходе дадут нечто вроде «пьяного робота», а при значение больше 7 скорости могут позавидовать и начинающие хип-хоп исполнители.
- SpeechSynthesizer.Volume — громкость звучания. Указывается в пределах от 0 до 100. Думаю, тут пояснения излишни.
- SpeechSynthesizer.SetOutputToWaveFile(path). Используется для указания пути, по которому должен быть сохранен аудио-файл. Стоит заметить, что для данный подход дает нам файлы с расширением .wav. Если использован этот метод, мы не услышим сообщение от программы.
- SpeechSynthesizer.Speak(text). Именно эта команда отвечает за запуск озвучивания указанного текста. Если до нее не был указан метод SetOutputToWaveFile, мы незамедлительно услышим то, что написали, в обратном случае по указанному нами пути появится соответствующий файл.
Это, так сказать, минимальный набор необходимый для того, чтобы программа звучала. Для обеспечения большей гибкости мы можем дать пользователю возможность выбирать голос, темп и громкость для сообщения. Что ж, поздравляю, мы создали своё приложение для озвучивания текста, которое нам очень пригодится в дальнейшем.