Преобразователи текста в речь (Text-to-speech, TTS) – это программы синтеза речи, которые преобразуют записанный в электронном документе текст (например, в текстовом файле или на веб-странице) в человеческую речь. Они помогают людям с ослабленным зрением читать тексты с электронных носителей, также они могут быть использованы для улучшения восприятия текстовых сообщений. Кроме этого, их еще можно использовать для создания устройств для слабовидящих людей, например, "умных" тростей, которые помогают им ориентироваться в окружающем пространстве, озвучивая им названия улиц, названия зданий и т.д.
В данной статье мы попытаемся сравнить наиболее популярные свободно распространяемые преобразователи текста в речь (Text-to-Speech Converters), которые можно установить на плату Raspberry Pi – eSpeak, Festival, Google TTS, Pico и PYTTSX3. Ранее программу eSpeak мы использовали на нашем сайте в проекте говорящего будильника на Raspberry Pi в стиле "железного человека". Также можете посмотреть проект преобразователя текста в речь на основе платы Arduino.
Необходимые компоненты
- Плата Raspberry Pi (купить на AliExpress) с установленной Raspbian Buster.
- Громкоговоритель (колонка).
- Aux кабель.
Установка необходимых пакетов на Raspberry Pi
Прежде чем переходить к установке на плату Raspberry Pi программ преобразования текста в речь, на нее сначала необходимо установить несколько аудио пакетов, чтобы задействовать возможности получения аудио сигнала с Raspberry Pi. Но перед этим желательно установить самые последние обновления на плату:
1 2 |
sudo apt-get update sudo apt-get upgrade |
Затем установим утилиты для работы со звуком под названием alsa. Этот пакет содержит различные инструменты для настройки аудио устройств при помощи ALSA (Advanced Linux Sound Architecture). Установить этот пакет можно с помощью следующей команды:
1 |
sudo apt-get install alsa-utils |
Далее установим аудио/видео плеер MPlayer:
1 |
sudo apt-get install mplayer |
Примечание: не забудьте выбрать разъем 3.5 mm в качестве аудио выхода. Для этого введите команду ‘sudo raspi-config’, откроется панель настроек, в ней выберите "System Options", "Audio", "Force 3.5mm ('headphone') jack" и затем "Finish".
После этого поочередно рассмотрим наиболее популярные программы преобразования текста в речь для платы Raspberry Pi:
- eSpeak Text-to-Speech.
- Festival Text-to-Speech.
- Google Text-to-Speech.
- Pico Text-to-Speech.
- PYTTSX3.
1. eSpeak
eSpeak – это компактная программа синтезирования речи на английском языке с открытым исходным кодом, доступная для операционных систем Linux и Windows. Это современная и простая в использовании (по сравнению с другими аналогичными продуктами) программа. Но некоторые недостатки у нее все же присутствуют. Установить eSpeak можно с помощью следующей команды:
1 |
sudo apt-get install espeak |
Затем можно протестировать ее работу с помощью команды:
1 |
espeak “Hello Everyone” |
Изменение настроек eSpeak
Выше был рассмотрен простейший пример использования eSpeak. В этой программе можно изменить настройки голоса, уровня звука, скорости, акцента и задержки между словами.
Можно протестировать работу eSpeak с: женским голосом, акценте (выделении) на заглавных буквах (-k), медленной речи (-s) с низким уровнем звука (-a). Для ее теста можно использовать следующую команду:
1 |
espeak -ven+f2 -k5 -s150 -a 100 -g10 "Hi, Welcome to Circuit Digest Tutorial" |
В этой команде:
eSpeak: запуск программы eSpeak.
-ven+f2: указание на то, какой язык используется. ‘en’ обозначает английский язык, а f2 – женский голос 2. Вы можете выбрать между различными мужскими и женскими голосами: +m1,+m2,+m3,+m4,+m5,+m6,+m7, and +f1,+f2,+f3,+f4.
-s150: указывает скорость звука. По умолчанию – 175.
-a 200: указывает уровень (громкость) звука. Может изменяться в диапазоне от 0 до 200.
-g10: указывает на величину паузы между словами. “g” в данном случае – это сокращение от английского словосочетания “word gap”.
2. Festival
Festival – это еще один открытый в использовании инструмент для преобразования текста в речь. Он разработан центром исследования технологий речи в Великобритании (Centre for Speech Technology Research in the UK) и предлагает фреймворк (framework) для построения систем синтеза речи. Festival поддерживает британский английский (British English), американский английский (American English) и испанский языки. Воспроизводимый им голос похож на "грубый" голос робота, но качество звука у него лучше чем в eSpeak.
Для установки Festival используйте команду:
1 |
sudo apt-get install festival |
Протестировать работу Festival можно с помощью команды:
1 |
echo “Hi, Welcome to Circuit Digest Tutorial” | festival --tts |
3. Google Text to Speech
Движок Google Text to Speech не может работать в офлайн режиме в отличие от рассмотренных программ Festival и eSpeak. Во время своей работы он передает текст на серверы Google, на которых формируется голосовой файл. Этот файл затем возвращается на плату Raspberry Pi и воспроизводится с помощью MPlayer. Google Text-to-Speech имеет наилучшее качество звука среди всех известных инструментов преобразования текста в речь, но его недостаток заключается в том, что он требует интернет соединения для своей работы.
Для его тестирования сначала создайте файл speech.sh с помощью команды:
1 |
nano speech.sh |
Добавьте следующие строчки в этот файл и затем сохраните его с помощью CTRL+X > Y.
1 2 3 |
#!/bin/bash say() { local IFS=+;/usr/bin/mplayer -ao alsa -really-quiet -noconsolecontrols "http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=$*&tl=en"; } say $* |
После этого установите необходимые разрешения для вашего скрипта с помощью команды:
1 |
chmod u+x speech.sh |
И, наконец, протестируйте работу инструмента Google Text to Speech с помощью команды:
1 |
./speech.sh “Hi, Welcome to Circuit Digest Tutorial” |
4. Pico Text to Speech
Сервис Pico Text-to-Speech (TTS) использует инструмент TTS binary от компании SVOX для воспроизведения текста. Он требует установки в систему библиотеки pico TTS. На операционной системе Debian это можно сделать с помощью команды sudo apt-get install libttspico-utils. В Debian Buster этого пакета (библиотеки) нет, но вы можете скачать и установить эти пакеты вручную с использованием следующих команд:
1 2 3 |
wget http://ftp.us.debian.org/debian/pool/non-free/s/svox/libttspico0_1.0+git20130326-9_armhf.deb wget http://ftp.us.debian.org/debian/pool/non-free/s/svox/libttspico-utils_1.0+git20130326-9_armhf.deb sudo apt-get install -f ./libttspico0_1.0+git20130326-9_armhf.deb ./libttspico-utils_1.0+git20130326-9_armhf.deb |
Протестировать работу Pico text-to-speech можно с помощью команды:
1 |
pico2wave -w lookdave.wav "Hi, Welcome to Circuit Digest Tutorial" && aplay lookdave.wav |
В текущий момент Pico TTS поддерживает британский английский (British English), американский английский (American English), испанский, голландский, французский и итальянский языки. Языковые коды для использования этих языков следующие: en-GB, en-US, es-ES, de-DE, fr-FR и it-IT. Для воспроизведения текста на итальянском языке можно использовать команду:
1 |
pico2wave -l it-IT -w lookdave.wav "Hi, Welcome to Circuit Digest Tutorial" && aplay lookdave.wav |
5. PYTTSX3
pyttsx3 – это библиотека преобразования текста в речь, написанная на языке Python. Она может работать в офлайн режиме и совместима с Python 2 и 3. Звук, воспроизводимый с помощью PYTTSX, недостаточно чистый. Для установки PYTTSX3 используйте следующую команду:
1 |
pip install pyttsx3 |
Можно использовать следующий фрагмент кода для тестирования PYTTSX3 с настройками по умолчанию.
1 2 3 4 |
import pyttsx3 engine = pyttsx3.init() engine.say("Hi, Welcome to Circuit Digest Tutorial") engine.runAndWait() |
Заключение
В данной статье мы рассмотрели установку и тестирование пяти приложений для преобразования текста в речь на Raspberry Pi. В качестве вывода из результата сравнения этих систем можно отметить следующее:
- Google Text to Speech имеет наилучшее качество звука, но требует интернет соединения для своей работы. Все остальные рассмотренные программы поддерживают работу в офлайн режиме;
- Pico TTS обеспечивает очень хорошее качество звука и поддерживает большое количество языков;
- Festival также обеспечивает хорошее качество звука;
- eSpeak прост в использовании и имеет много настроек, позволяющих настроить его работу в необходимом режиме, но качество звука у него не очень хорошее.