Синтезаторы речи с русскими голосами
Содержание:
- Готовим поляну
- Мобильные приложения
- Бенчмарки по Скорости
- Программы для чтения текста голосом
- ESpeak
- Голосовой движок для Балаболки от Майкрософт с голосом Елена
- Голосовые движки: мужские и женские
- Translate.google.com — бесплатный сервис для перевода текста и его синтеза
- Онлайн-сервисы для озвучивания
- Что такое синтезаторы речи
- Нестабильность механизма внимания
- Как Попробовать
- Программы для озвучки текста
- VLC media player 2.2.1 [2015, Медиаплеер] 32/64-bit
- AVS Audio Editor
- Выводим текст через NVDA
Готовим поляну
Прежде чем писать и тестировать код, убедимся, что операционная система готова к синтезу речи, в том числе на русском языке.
Чтобы компьютер заговорил, нужны:
- голосовой движок (синтезатор речи) с поддержкой нужных нам языков,
- голоса дикторов для этого движка.
В Windows есть штатный речевой интерфейс Microsoft Speech API (SAPI). Голоса к нему выпускают, помимо Microsoft, сторонние производители: Nuance Communications, Loquendo, Acapela Group, IVONA Software.
Есть и свободные кроссплатформенные голосовые движки:
- RHVoice от Ольги Яковлевой — имеет четыре голоса для русского языка (один мужской и три женских), а также поддерживает татарский, украинский, грузинский, киргизский, эсперанто и английский. Работает в Windows, GNU/Linux и Android.
- eSpeak и его ответвление — eSpeak NG — c поддержкой более 100 языков и диалектов, включая даже латынь. NG означает New Generation — «новое поколение». Эта версия разрабатывается сообществом с тех пор, как автор оригинальной eSpeak перестал выходить на связь. Система озвучит ваш текст в Windows, Android, Linux, Mac, BSD. При этом старый eSpeak стабилен в ОС Windows 7 и XP, а eSpeak NG совместим с Windows 8 и 10.
В статье я ориентируюсь только на перечисленные свободные синтезаторы, чтобы мы могли писать кроссплатформенный код и не были привязаны к проприетарному софту.
По качеству голоса RHVoice неплох и к нему быстро привыкаешь, а вот eSpeak очень специфичен и с акцентом. Зато eSpeak запускается на любом утюге и подходит как вариант на крайний случай, когда ничто другое не работает или не установлено у пользователя.
Установка речевых движков, голосов и модулей в Windows
С установкой синтезаторов в Windows проблем возникнуть не должно. Единственный нюанс — для русского голоса eSpeak и eSpeak NG нужно скачать расширенный словарь произношения. Распакуйте архив в подкаталог espeak-data или espeak-ng-data в директории программы. Теперь замените старый словарь новым: переименуйте ru_dict-48 в ru_dict, предварительно удалив имеющийся файл с тем же именем (ru_dict).
Теперь установите модули pywin32, python-espeak и py-espeak-ng, которые потребуются нам для доступа к возможностям TTS:
pip install pywin32 python-espeak pyttsx3 py-espeak-ng
Если у вас на компьютере соседствуют Python 2 и 3, здесь и далее пишите «pip3», а при запуске скриптов — «python3».
Установка eSpeak(NG) в Linux
Подружить «пингвина» с eSpeak, в том числе NG, можно за минуту:
sudo apt-get install espeak-ng python-espeak
pip3 install py-espeak-ng pyttsx3
Дальше загружаем и распаковываем словарь ru_dict с официального сайта:
wget http://espeak.sourceforge.net/data/ru_dict-48.zip
unzip ru_dict-48.zip
Теперь ищем адрес каталога espeak-data (или espeak-ng-data) где-то в /usr/lib/ и перемещаем словарь туда. В моем случае команда на перемещение выглядела так:
sudo mv ru_dict-48 /usr/lib/i386-linux-gnu/espeak-data/ru_dict
Обратите внимание: вместо «i386» у вас в системе может быть «x86_64…» или еще что-то. Если не уверены, воспользуйтесь поиском:. find /usr/lib/ -name «espeak-data»
find /usr/lib/ -name «espeak-data»
Готово!
RHVoice в Linux
Инструкцию по установке RHVoice в Linux вы найдете, например, в начале этой статьи. Ничего сложного, но времени занимает больше, потому что придется загрузить несколько сотен мегабайт.
Смысл в том, что мы клонируем git-репозиторий и собираем необходимые компоненты через scons.
Для экспериментов в Windows и Linux я использую одни и те же русские голоса: стандартный ‘ru’ в eSpeak и Aleksandr в RHVoice.
Как проверить работоспособность синтезатора
Прежде чем обращаться к движку, убедитесь, что он установлен и работает правильно.
Проверить работу eSpeak в Windows проще всего через GUI — достаточно запустить TTSApp.exe в папке с программой. Дальше открываем список голосов, выбираем eSpeak-RU, вводим текст в поле редактирования и жмем на кнопку Speak.
Обратиться к espeak можно и из терминала. Базовые консольные команды для eSpeak и NG совпадают — надо только добавлять или убирать «-ng» после «espeak»:
espeak -v ru -f D:\my.txt
espeak-ng -v en «The Cranes are Flying»
echo «Да, это от души. Замечательно. Достойно восхищения» |RHVoice-test -p Aleksandr
Как нетрудно догадаться, первая команда с ключом -f читает русский текст из файла. Чтобы в Windows команда espeak подхватывалась вне зависимости от того, в какой вы директории, добавьте путь к консольной версии eSpeak (по умолчанию — C:\Program Files\eSpeak\command_line) в переменную окружения Path. Вот как это сделать.
Мобильные приложения
Перед описанием программ для озвучивания текста на смартфонах и планшетах хотелось бы уточнить одну деталь. Для того чтобы софт работал необходимо загрузить голосов движок Text-To-Speech для мобильных устройств. На новых гаджетах данная функция устанавливается вместе с операционной системой. Для старых устройств потребуется загрузка движка из Play Store. От пользователя нужно вбить их название в Play Store: Google TTS, Acapela, Ivona или SVOX TTS. Вы можете выбрать один из движков или загрузить их все сразу. Представленные движки являются абсолютно бесплатными для android пользователей.
SpeechText
SpeechText – приложение, позволяющее озвучивать введенный текст на любом из доступных языков. При желании библиотека языков расширяется самостоятельно. В SpeechText доступна функция сохранения озвученного текста в аудио формате на карте памяти.
Болтун
Болтун – отечественная программа для воспроизведения речи. Изначально утилита презентовалась, как карманный секретарь, способный записывать или озвучивать мысли. Однако благодаря обновлениям появилась функция перевода и озвучивания текста на многих языках. Дополнительно приложение может читать электронные письма, сообщения и воспроизводить любой выделенный фрагмент.
Речь в Текст — Текст в речь
Представленный мобильный сервис – удобная утилита, обладающая функцией обратной конвертации. Благодаря этой фишке вы можете не только слушать озвученный текстовый документ, но и надиктовать предложение для его преобразования в текст.
Voice Aloud Reader
Voice Aloud Reader – многофункциональная «говорилка», способная озвучивать текст из сторонних android приложений: браузеры, новостные статьи, полученные электронные письма и обрабатывать форматы программа для чтения EPUB, FB2, PDF и другие.
Бенчмарки по Скорости
После качества скорость является следующим определяющим свойством модели, для измерения скорости синтеза мы используем следующие простые метрики:
- RTF (Real Time Factor) — какую долю длительности аудио занимает синтез этого аудио;
- RTS = 1 / RTF (Real Time Speed) — насколько синтез «быстрее» риалтайма;
Метрики мы снимали на двух устройствах с помощью встроенных в PyTorch 1.8 утилит:
- CPU — Intel i7-6800K CPU @ 3.40GHz;
- GPU — 1080 Ti;
- При снятии метрик на CPU мы также ограничивали число используемых потоков;
Для моделей 16 kHz получаются такие показатели:
Батч | Устройство | RTF | RTS |
---|---|---|---|
1 | CPU 1 thread | 0.7 | 1.4 |
1 | CPU 2 threads | 0.4 | 2.3 |
1 | CPU 4 threads | 0.3 | 3.1 |
4 | CPU 1 thread | 0.5 | 2.0 |
4 | CPU 2 threads | 0.3 | 3.2 |
4 | CPU 4 threads | 0.2 | 4.9 |
— | ———— | — | — |
1 | GPU | 0.06 | 16.9 |
4 | GPU | 0.02 | 51.7 |
8 | GPU | 0.01 | 79.4 |
16 | GPU | 0.008 | 122.9 |
32 | GPU | 0.006 | 161.2 |
— | ———— | — | — |
Для моделей 8 kHz получаются такие показатели:
Батч | Устройство | RTF | RTS |
---|---|---|---|
1 | CPU 1 thread | 0.5 | 1.9 |
1 | CPU 2 threads | 0.3 | 3.0 |
1 | CPU 4 threads | 0.2 | 4.2 |
4 | CPU 1 thread | 0.4 | 2.8 |
4 | CPU 1 threads | 0.2 | 4.4 |
4 | CPU 4 threads | 0.1 | 6.6 |
— | ———— | — | — |
1 | GPU | 0.06 | 17.5 |
4 | GPU | 0.02 | 55.0 |
8 | GPU | 0.01 | 92.1 |
16 | GPU | 0.007 | 147.7 |
32 | GPU | 0.004 | 227.5 |
— | ———— | — | — |
Также при расчетах скорости мы были удивлены ряду вещей:
- Процессоры AMD показали себя сильно хуже;
- Удивительно, но бутылочным горлышком в нашем случае оказался именно такотрон а не вокодер (еще остается существенный потенциал ускорения всей системы в 3-4 раза, а может даже и в 10 раз, если получится квантизация и дополнительное сжатие);
- Более чем 4 потока CPU не помогают, равно как и батч больше 4;
Программы для чтения текста голосом
1. IVONA Reader
Сайт разработчика: www.ivona.com/
Одна из самых лучших программ для озвучивания текста.Позволяет вашему ПК читать не только простые текстовые файлы в формате txt, но и новости, RSS, любые веб-страницы в интернете, электронную почту и пр.
Кроме того, позволяет преобразовать текст в mp3 файл (который вы потом можете загрузить на любой телефон или mp3 плеер и слушать в дороге, например). Т.е. вы можете самостоятельно создавать аудио-книги!
Голоса программы IVONA очень похожи на реальный голос, достаточно не плохое произношение, не запинаются. Кстати, программа может быть полезна для тех, кто изучает иностранный язык. Благодаря ней можно слушать правильное произношение тех или иных слов, оборотов.
Поддерживает SAPI5, плюс к этому хорошо кооперируется с внешними приложениями (например, Apple Itunes, Skype).
Пример (текст воспроизведения одной моей недавней статьи)
Из минусов: некоторые незнакомые слова читает с неправильным ударением и интонацией. В целом же весьма не плохо, чтобы прослушать, например, параграф из книги по истории, пока идешь на лекцию/занятие — даже более чем!
2. Балаболка
Сайт разработчика: www.cross-plus-a.ru/balabolka.html
Программа «Балаболка», главным образом, предназначена для чтения вслух текстовых файлов. Для воспроизведения текста нужны, помимо программы, голосовые движки (синтезаторы речи).
Воспроизведение речи можно контролировать при помощи стандартных кнопок, подобных тем, что присутствуют в любой мультимедийной программе («воспроизвести/приостановить/остановить»).
Пример воспроизведения (тот же):
Минусы: некоторые незнакомые слова читает не правильно: ударение, интонация. Иногда, пропускает знаки препинания и не делает паузы между словами. Но в целом слушать можно.
Кстати, качество звучания сильно зависит от речевого движка, поэтому, в одной и той же программе звук воспроизведения текста может отличаться в разы!
3. ICE Book Reader
Сайт разработчика: www.ice-graphics.com/ICEReader/IndexR.html
Отличная программа для работы с книгами: чтение, каталогизирование, поиск нужной и пр. Помимо стандартных документов, которые могут читать и другие программы (TXT-HTML, HTML-TXT, TXT-DOC, DOC-TXT, PDB-TXT, LIT-TXT, FB2-TXT и т.д.) ICE Book Reader поддерживает файлы форматов: .LIT, .CHM и .ePub.
К тому же ICE Book Reader позволяет не только читать, но и отличная настольная библиотека:
— позволяет хранить, обрабатывать, каталогизировать книги (до 250000 тысяч экземпляров!);
— автоматическое упорядочивание вашей коллекции;
— быстрый поиск книги из вашей «свалки» (особенно актуально, если у вас много не каталогизированной литературы);
— ядро базы данных ICE Book Reader превосходит большинство программ подобного рода.
Так же программа позволяет озвучивать тексты голосом.
Lkя этого нужно зайти в настройки программы и настроить две вкладки: «Режим»(выбрать чтение голосом) и «Режим синтеза речи» (выбрать непосредственно сам голосовой движок).
4. Говорилка
Сайт программы: www.vector-ski.ru/vecs/govorilka/index.htm
Основные возможности программы «Говорилка»:
- Чтение текста голосом (открывает документы txt, doc, rtf, html и пр.);
- Позволяет записывать текст из книги в форматы (*.WAV, *.MP3) с повышенной скоростью — т.е. по сути создание электронной аудио-книги;
- Хорошие функции по регулировке скорости чтения;
- Авто прокрутка читаемого текста;
- Возможность пополнения словарей произношения;
- Поддерживает старые файлы из времен DOS (многие современные программы не могут прочитать файлы в подобной кодировке);
- Размер файла, из которого программа может прочитать текст: до 2 гигабайт;
- Возможность делать закладки: при выходе из программы, она автоматически запоминает место остановки курсора.
5. Sakrament Talker
Сайт разработчика: sakrament.by/index.html
С помощью Sakrament Talker можно превратить свой компьютер в «говорящую» аудио книгу! Программа Sakrament Talker поддерживает форматы RTF и TXT,может автоматически распознавать кодировку файла (наверное, иногда замечали, что некоторые программы открывают файл с «крякозабрами» вместо текста, так вот в Sakrament Talker такое невозможно!).
Кроме того Sakrament Talker позволяет воспроизводить достаточно большие файлы, быстро находить те или иные файлы. Озвученный текст можно не только прослушать на компьютере, но и сохранить в mp3 файл (который в последствии можно скопировать на любой плеер или телефон и прослушивать вдалеке от ПК).
В целом довольно не плохая программа, которая поддерживает все популярные голосовые движки.
ESpeak
Последняя в моём обзоре система синтеза речи — программа ESpeak — разрабатывается уже около 8 лет. Последняя версия — 1.48.04 от 6 апреля 2014. Данный голосовой синтезатор речи кроссплатформенный — есть версии под Windows, Linux, Mac OS X, и даже под RISC OS, хотя последние две уже давно не поддерживаются.
Отдельно отмечу, что eSpeak используется в мобильных операционных системах Android, правда имеет при этом ряд существенных ошибок.
Программа поддерживает пятидесяти различных языков, поддержка которых указывается при установке программы.
Один из главных минусов это голосового синтезатора — генерирование голоса только в файл формата WAV. Скачать программу бесплатно можно на официальном сайте.
Голосовой движок для Балаболки от Майкрософт с голосом Елена
У Майкрософта, кроме речевого стандарта Microsoft Speech API 4 и 5 версий, а также Microsoft Speech Platform, есть еще и синтезатор речи. Этот голосовой движок называется MS Server Speech TTS Voise RU Elena и соответствует стандарту речевых функций Microsoft Speech Platform. Русский голос Elena от Microsoft можно загрузить с оф. сайта компании Майкрософт внизу данной страницы https://programmywindows.com/ru/readers/balabolka без регистрирования и SMS. Дополнительно потребуется загрузить и установить Microsoft Speech Platform (MSP x86 или x64). После установки MSP и MS Server Speech TTS Voise RU Elena для нормальной работы этих компонентов с программой Balabolka необходимо обязательно перезагрузить компьютер.
Голосовые движки: мужские и женские
Движки синтеза речи — это специальное ПО, своего рода драйвера, необходимые для того, чтобы компьютер мог «заговорить» (т.е. для преобразования текста в речь). Движков сейчас в сети сотни: есть как платные, так и бесплатные. Наилучшее качество чтения, конечно же, показывают платные движки.
Важное замечание: движок синтеза речи не имеет никакого дизайна или интерфейса. После его установки в систему — вы не заметите ровным счетом никаких изменений! Чтобы работать с движком — вам нужна какая-нибудь программа для чтения текстов: Балаболка, Говорун, Ice Reader и пр., чуть выше я приводил те, которые «мне по душе» )
Вот поэтому, кстати, часто пользователи ругают ту или иную программу, что она не может прочитать русский текст (или вообще не может). Просто они забывают о необходимости установки речевого движка.
Пару слов про стандарты…
Голосовые движки могут быть выполнены в разных стандартах (так называемых), самые основные три: SAPI 4, SAPI 5 или Microsoft Speech Platform (примечание: почти в каждой программе для чтения, вы можете выбрать речевой движок).
SAPI 4
Добротный стандарт, был актуален десяток лет назад. На сегодняшний день устарел, и на современных компьютерах/ноутбуках его использование не оправдано.
SAPI 5
Почти все современные голосовые движки построены на этом стандарте (как платные, так и бесплатные). Наиболее популярный стандарт, можно найти движок с мужским, женским, детским голосами.
Microsoft Speech Platform
Microsoft Speech Platform – большой набор инструментов для разработчиков, которые позволяют реализовывать возможность преобразования текста в речь.
это набор инструментов, позволяющих разработчикам различных приложений, реализовывать в них возможность преобразования текста в голос.
Примечание! Чтобы синтезатор речи работал, необходимо:
Microsoft Speech Platform — Runtime – серверная часть платформы, предоставляющая API для программ;
Microsoft Speech Platform — Runtime Languages – языки для работы серверной части.
Более подробно об этом здесь — https://msdn.microsoft.com/en-us/library/hh361572.aspx
Несколько голосовых движков
Тext-to-speech engines Дигало // Николай
Сайт: http://www.digalo.com/index.htm
Очень популярный русский голосовой движок (голос мужской!). Подойдет для большинства программ, которые умеют читать текст голосом. На мой скромный взгляд, один из лучших общедоступных движков для синтеза речи (на русском языке). Кроме русского, кстати, на сайте разработчика доступны движки еще для нескольких языков. Минус: без регистрации работает всего две недели.
Acapela // Голосовой движок (модуль) Алена
Сайт: http://www.acapela-group.com/
Алёнка — относительно новый русский женский речевой движок от компании Acapela. Работает по стандарту SAPI-5 с частотой 22 КГц. Некоторые пользователи считают, что голос у «Алены» приятнее, чем у «Николая».
Голосовой движок (модуль) Катерина 2
Компания разработчик: ScanSoft RealSpeak
Довольно неплохой речевой движок с женским голосом. После доработки движка, он стал сопоставим с «Николаем». Существенному обновлению подверглась фонетическая база движка, изменен алгоритм постановки ударений (что положительно сказалось на звучании), устранена проблема со скоростью произношения.
RHVoice
Сайт: http://tiflo.info/rhvoice/
RHVoice — это многоязычный синтезатор речи с открытым исходным кодом. Можно использовать в ОС Windows и Linux. Синтезатор совместим с SAPI5. Разработчик синтезатора — Ольга Яковлева.
Кстати, движок основан на речевой базе, записанной дикторами. Русские голоса «Елена» и «Ирина» доступны для скачивания на официальном сайте.
IVONA Tatyana/Maxim
Сайт: https://www.ivona.com/us/about-us/voice-portfolio/
Станет ли движок самым используемым — не знаю, время покажет!
Кстати, как думаете, будет ли когда-нибудь разработан речевой движок, который не отличишь от голоса обычного человека? Или может он уже есть, а я о нем не слышал… (скиньте название!)
Translate.google.com — бесплатный сервис для перевода текста и его синтеза
Гугл переводчик является одним из самых популярных и наилучших сервисов, который предоставляет комплекс самых разных услуг. Например, всем известный переводчик имеет функцию озвучивания веденного текста, причем на всех поддерживаемых языках. Качество озвучки местами низкое, но в целом приемлемое. Если вы переводите печатный текст в речь для изучения языка, то синтезатор Google Translate подойдет вам идеально
Самое важное в этом сервисе то, что он является простым и доступным каждому пользователю в сети Интернет
Для озвучки набранного текста нажмите на кнопку в виде динамика.
Как синтезировать текст в Translate.google.com
Для того, чтобы воспользоваться сервисом от Гугл:
- Перейдите на страницу https://translate.google.com;
- Выберите необходимый язык, нажав кнопку «Определить язык»;
- Затем введите текст в окне там, где выбирали язык;
- Теперь нажмите на пиктограмму граммофона внизу окна, и вы сможете услышать воспроизведение текста женским голосом.
Недостатком его является отсутствие возможности скачать воспроизведенный синтез речи в файле на свой компьютер. Также нет каких-либо настроек голоса или выбора исполнителя.
Онлайн-сервисы для озвучивания
Acapela
Acapela – это иностранный сервис, способный озвучить текст на 35 языках и диалектах. Примечательно, что портал озвучивает иностранные слова с характерным акцентом (например, русские слова читает англичанин). На сайте представлена демонстрационная версия продукта с ограниченным размером до 300 символов. Еще одним минусом послужит требования каждый раз соглашаться с условиями сайта. Для русской локализации предлагается один вариант озвучки текста – голосовой движок Alyona.
Linguatec
Сервис Linguatec предлагает ознакомиться с демонстрационной версией продукта. Здесь также имеется до 40 вариантов озвучки текста голосом. В сравнении с предыдущим сайтом на Linguatec представлено два голоса: женский «Милена» и мужской «Юрий». Ограничение на количество символом в демо-версии 250 знаков.
Text-to-Speech
Text-to-Speech – еще один портал, способный озвучить текст голосом онлайн. Обладает более продвинутыми настройками: скорость речи диктора, размер шрифта, машинный перевод. Для людей с ограниченными возможностями предоставлена экранная клавиатура. К сожалению, для русскоговорящего пользователя предоставлен всего один женский голос.
Google Translator
– фирменный переводчик от корпорации Google. Одной из функций сервиса является озвучивание переведенного или оригинального предложения. При наличии микрофона можно набирать слова голосом. Если вы желаете сохранить результат перевода и его звуковое сопровождение в «избранные», то авторизуйтесь в Gmail. Сервис Google Translator переводит и озвучивает тексты в пределах 5000 символов. Единственный минус – это голосовой движок, который больше походит на речь робота.
IVONA
Сайт IVONA – это презентационная страница, демонстрирующая голосовые движки. Данный сервис является польской разработкой и предлагает четыре варианта озвучки. Во всех язык по 2-3 голоса. В русском сегменте присутствует два голосовых движка «Максим» и «Татьяна». К сожалению, возможность опробовать сервис бесплатно отсутствует. Единственное, что может пользователь без покупки подписки – прослушать шаблонное приветствие голосовых движков.
Яндекс переводчик
Яндекс переводчик – отечественный аналог переводчика от Google. Имеет в распоряжении аналогичные инструменты: перевод, озвучивание перевода, генератор голоса, экранную клавиатуру и сохранение в избранное. Единственно, что отличает Яндекс переводчик от зарубежного аналога – максимальное количество символов, достигающие отметки в 10 000 знаков.
Oddcast
Портал Oddcast – наиболее интересный онлайн синтезатор речи для озвучивания с точки зрения интерфейса. Здесь помимо сухого звука присутствуют анимированные дикторы. Кроме того виртуальные дикторы следят за указателем мышки. Дополнительно на сайте регулируются эффекты речи. Имеется опция частичного изменения звучания. Русский язык в Oddcast представлен тремя движками: «Дмитрий», «Милина» и «Ольга». Из недостатков можно выделить ограничение на максимальное количество символов в 300 знаков и не самый удобный интерфейс для ввода.
ISpeech
Сайт ISpeech обладает минималистским интерфейсом, с которым разберется даже начинающий пользователь. Все что нужно сделать: ввести пару предложений и выбрать язык. Дополнительно регулируется скорость чтения текста голосом и выбор голосового движка. При желании озвученный результат можно сохранить на ПК. Максимальное число символов – 150.
2уха
2уха – интересный отечественный сайт, где помимо узконаправленного форума имеется раздел по преобразованию документа в аудио файл, который записывается в формате mp3 или awb. В настройках перед обработкой запроса настраиваются дополнительные параметры: скорость чтения, высота тона голоса, громкость, тип голосового движка и чтение знаков препинания. Результат конвертации высылается на электронную почту через несколько минут. Рекомендуем пройти авторизацию через социальные сети, чтобы не проходить ввод кода перед отправкой запроса (проверка на робота). Минус портала заключается в невозможность моментально озвучить текст в онлайн режиме.
Что такое синтезаторы речи
Синтезатор речи — это программное обеспечение, которое превращает текст в голос. Процесс преобразования проходит в несколько этапов:
- Подготовка текста: перевод чисел в слова, расшифровка сокращений, разделение на фразы.
- Составление фонетической конструкции на основании словарей, встроенных в систему.
- Расчет данных для достижения плавного перехода и создания правильной интонации.
- Воспроизведение звука.
Синтезаторы речи поддерживают разные языки, что позволяет их использовать в том числе для переводов. С их помощью можно научиться правильно произносить слова на иностранных языках, создавать аудиокниги, озвучивать видеоролики, презентации, документы, а также просто воспроизводить вслух любые тексты на родном языке, если есть проблемы с речью или зрением.
Работа синтезатора занимает доли секунды — стоит только набрать текст, как робот готов прочитать его вслух.
Синтезаторы превращают массивы текста в аудиопоток, воспроизведением которого можно управлять: ставить на паузу, перематывать, менять громкость и скорость чтения.
Нестабильность механизма внимания
Решение этой проблемы потребовало изучения статей по теме и имплементацию методик, представленных в них. Вот что мы нашли:
- Diagonal guided attention (DGA) – здесь идея простая: так как в синтезе, в отличие от машинного перевода, соответствие выходов энкодера и декодера последовательное, то есть система воспроизводит звуки по мере их появления в тексте, то давайте штрафовать матрицу внимания тем больше, чем больше она отступает от диагонального вида. Можно, конечно, возразить, «а что если звук тянется и на линии внимания появляется полка», но мы решили не рассматривать подобные экстремальные случаи. В качестве бонуса получаем ускорение процесса схождения матрицы внимания;
- Pre-alignment guided attention – в этой статье изложен более сложный подход: требуется с помощью стороннего инструмента (например, Montreal-Forced-Aligner) получить временные метки каждой фонемы на аудиозаписи и составить из них матрицу внимания, которая будет являться для системы целевой;
- Maximizing Mutual Information for Tacotron – авторы статьи утверждают, что подобные артефакты в матрице внимания возникают из-за недостаточной связи декодера с текстом. Для укрепления этой связи вводится модуль примитивного предсказания текста из итоговой мел-спектрограммы (эдакая asr в миниатюре) и расчёт ошибки с помощью CTC. Также ускоряет сходимость матрицы внимания.
После проведённых экспериментов можем сказать, что первый вариант определённо выигрывает по соотношению (положительный эффект/затраченные усилия). В качестве доказательства приведём запись, синтезированную моделью, обученной с DGA, из текста длиной 560 символов (без учёта токенов ударения) без его разбиения:
Как видите, на протяжении всей записи движок уверенно держал своё внимание: фраза не «разваливается», не возникает артефактов и мычания
Как Попробовать
Все модели опубликованы в репозитории silero-models, там также есть примеры запуска синтеза в colab. Для полноты приведем минималистичный пример (да, это действительно так просто):
На данный момент поддерживаются следующие спец-символы: . Кроме того, для большинства спикеров русского языка в тексте для озвучивания были использованы метки ударения (символ перед ударной гласной, при тестировании таких моделей пока еще нужно ставить ударение вручную):
Спикер | С ударением |
---|---|
aidar | да |
baya | да |
ksenia | да |
irina | да |
natasha | да |
ruslan | да |
lj | нет |
thorsten | нет |
gilles | нет |
tux | нет |
В будущем мы планируем перевести все модели на более простой и унифицированный формат, не требующий ударений. Чтобы не запутаться, в файле, который описывает все наши модели, явно указан набор токенов для каждой модели и пример фразы для генерации.
Программы для озвучки текста
Если вам нужно постоянно озвучивать большие объемы текста из электронных документов, то самый удобный вариант — установить специальные приложения, которые умеют работать с файлами разного формата.
Балаболка
Балаболка — бесплатная программа озвучки для Windows от российских разработчиков. Она поддерживает работу с любыми голосовыми движками, установленными в системе. В ее интерфейсе есть стандартные инструменты для управления воспроизведением: пауза, остановка, перемотка, изменение скорости и громкости.
«Балаболка» умеет читать вслух текст из буфера обмена, произносить набираемые на клавиатуре фразы, озвучивать содержимое редактора или загруженных в нее файлов в форматах AZW, AZW3, CHM, DjVu, DOC, DOCX, EML, EPUB, FB2, FB3, HTML, LIT, MOBI, ODP, ODS, ODT, PDB, PDF, PPT, PPTX, PRC, RTF, TCR, WPD, XLS, XLSX.
Результат обработки «Балаболка» сохраняет как аудиофайл в форматах WAV, MP3, MP4, OGG и WMA. У нее также есть возможность сохранения текста внутри файлов MP3 для дальнейшего отображения в виде субтитров в медиапроигрывателе.
Govorilka
Govorilka — ещё одна программа для озвучки с минималистичным интерфейсом. Поддерживает голосовые движки устаревшего стандарта SAPI 4, в том числе на иностранных языках.
По умолчанию Govorilka озвучивает текст голосом стандартного движка Microsoft. В ее составе есть инструменты управления, традиционные для программ такого типа: воспроизведение, пауза, остановка, изменение скорости, громкости и высоты голоса. Одновременно в ней можно открыть до 8 вкладок с разными фрагментами текста.
Несмотря на простоту и устаревший интерфейс, «Говорилка» всё еще актуальна. Она умеет распознавать текстовые документы в разных форматах объёмом до 2 Гб и сохранять результат обработки в MP3 и WAV.
eSpeak
eSpeak — бесплатная программа для озвучки текста, доступная на Windows, macOS, Linux и Android. Она использует голосовые движки, установленные в системе, а также добавляет к ним несколько своих.
Версия этого приложения для Windows имеет максимально простой интерфейс и управление. Текст, который нужно прочитать, достаточно вставить в поле посредине окна, а затем нажать “Speak”.
Максимальный размер текста здесь явно не определен, но приложение справляется с большими объёмами. Также у него есть возможность читать тексты из файлов с расширением TXT, другие форматы не поддерживаются.
Для управления скоростью чтения в eSpeak используется ползунок Rate. Если вы хотите сохранить прочитанный текст в аудиофайл, нажмите на кнопку «Save to .wav» и задайте имя записи.
В мобильной версии приложения для Android аналогичная функциональность, разве что нет возможности сохранить текст в аудио.
Acapela TTS
Acapela Group разрабатывает программы для всех популярных операционных систем: Windows, macOS, Linux. Android, iOS. Среди главных достоинств этого софта — поддержка большого количества языков и отличное качество голоса. Мощные движки хорошо обучены и имеют развёрнутую справочную базу, которая позволяет им говорить правильно и выразительно.
Однако все продукты Acapela коммерческие. Установить приложение на компьютер или телефон можно бесплатно, но без купленного голосового движка в них нет никакого смысла. Стоимость одного пакета — 3,99 евро. Прежде чем оплачивать покупку, вы можете прослушать демо голоса с произвольным текстом, чтобы определить, подходит ли вам такое звучание.
ICE Book Reader Professional
Если вы ищите программу, которая будет озвучивать целые книги, то попробуйте ICE Book Reader Professional. Это приложение поддерживает различные форматы текстовых документов: TXT, HTML, XML, RTF, DOC и DOCX, PALM (.PDB и .PRC), PSION/EPOC (.TCR), Microsoft Reader (.LIT), Microsoft HELP files (.CHM) и FictionBook файлы (все версии) (.FB2, .XML). А для чтения в нем используются голосовые движки стандарта SAPI 4 и 5.
Программа умеет превращать книги в MP3/WAV-файлы. Это значит, что вы можете из любого произведения, доступного в текстовом формате, сделать аудиокнигу.
Скорость преобразования текста в голос в этом приложении увеличивается за счёт одновременного использования нескольких модулей синтеза речи.
VLC media player 2.2.1 [2015, Медиаплеер] 32/64-bit
Год выпуска: 2015Жанр: МедиаплеерРазработчик: VideoLANСайт разработчика: http://www.videolan.org/Язык интерфейса: Мультиязычный (русский присутствует)Тип сборки: StandardРазрядность: 32/64-bitОперационная система: Windows XP, Vista, 7, 8, 8.1, 10 Описание: VLC Media Player — универсальный плеер, способный воспроизводить практически любые существующие на сегодняшний день форматы файлов: MPEG-1, MPEG-2, MPEG-4, DivX, XviD, H.264, MP3, OGG и другие, обычные DVD и VCD диски, а также музыкальные. Одной из его особенностей является возможность проигрывания практически любого типа потокового …
Программы / Программы для работы с Мультимедиа / Кодеки и Медиаплееры
Подробнее
AVS Audio Editor
Достаточно понятной и при этом бесплатной является программа для работы с голосом AVS Audio Editor. В её арсенале присутствует возможность работы с огромным числом форматов, например, MP3, ALAC, FLAC, WAV, M4A, WMA, AAC, MP2, AMR, OGG и пр. Производители позаботились, чтобы аудио редактор выполнял широкий функционал, включая объединение файлов, обрезку, разделение на части, микширование.
Оператору в работе помогает установленная шкала времени с высокой дискретностью промежутков. В последних версиях появилась возможность практически хирургического вмешательства в файлы для блокировки шипения, свиста, треска и других звуков. Если есть необходимость в использовании аудиоэффектов, то в AVS Audio Editor предусмотрен такой набор:
- смешивание нескольких дорожек;
- установка задержки;
- хорус (хоровое звучание);
- реверберация (постепенное уменьшение звука).
Запись может вестись из нескольких источников, например, через микрофон, от проигрывателя виниловых пластинок, с выхода звуковой карты. Сохранять готовый проект или продукт получится в любом формате. Для установки требуются минимальные характеристики железа, такие как процессор 1.86 ГГц или выше, оперативка от 1 Гб, Microsoft DirectX 9.0c или более поздней версии.
Выводим текст через NVDA
Мы научились озвучивать приложение с помощью установленных в системе синтезаторов. Но что если большинству пользователей эта фишка не нужна, и мы хотим добавить речь исключительно как опцию для слабовидящих? В таком случае не обязательно писать код озвучивания: достаточно передать текст интерфейса другому приложению — экранному диктору.
Одна из самых популярных программ экранного доступа в Windows — бесплатная и открытая NVDA. Для связи с ней к нашему приложению нужно привязать библиотеку nvdaControllerClient (есть варианты для 32- и 64-разрядных систем). Узнавать разрядность системы вы уже умеете.
Еще для работы с экранным диктором нам понадобятся модули ctypes и time. Создадим файл nvda.py, где напишем модуль связи с NVDA:
import time, ctypes, platform
# Загружаем библиотеку клиента NVDA
bit = platform.architecture()
if bit == ’32bit’:
clientLib = ctypes.windll.LoadLibrary(‘nvdaControllerClient32.dll’)
elif bit == ’64bit’:
clientLib = ctypes.windll.LoadLibrary(‘nvdaControllerClient64.dll’)
else:
errorMessage=str(ctypes.WinError(res))
ctypes.windll.user32.MessageBoxW(0,u»Ошибка! Не удалось определить разрядность системы!»,0)
# Проверяем, запущен ли NVDA
res = clientLib.nvdaController_testIfRunning()
if res != 0:
errorMessage=str(ctypes.WinError(res))
ctypes.windll.user32.MessageBoxW(0,u»Ошибка: %s»%errorMessage,u»нет доступа к NVDA»,0)
def say(msg):
clientLib.nvdaController_speakText(msg)
time.sleep(1.0)
def close_speech():
clientLib.nvdaController_cancelSpeech()
Теперь эту заготовку можно применить в коде основной программы:
import nvda
nvda.say(‘Начать игру’)
# … другие реплики или сон
nvda.close_speech()
Если NVDA неактивна, после запуска кода мы увидим окошко с сообщением об ошибке, а если работает — услышим от нее заданный текст.
Плюс подхода в том, что незрячий пользователь будет слышать тот голос, который сам выбрал и настроил в NVDA.