TTS для ИТ

от автора

Категорически приветствую коллег.
Хочу поделиться опытом использования TTS для  быстрого создания аудиокниг из текстовых форматов.

Постановка задачи

В те давние, давние годы, когда слово «удаленка» было из области  фантастики, а путь на работу и обратно занимал заметную часть жизни, чтение книг было практически единственным способом не свихнуться в пути. Особенно остро вставал вопрос в командировке. Это приводило к тому, что до половины веса багажа составляли бумажные тома. При переезде я отнес три здоровенных рюкзака в ближайшую библиотеку, и это только те книги, перечитывать которые я точно не планировал.

Годы шли и наконец настал день, когда я приобрел Palm IIIc, заменивший стопку книг в багаже. Потом было чтение книг на крохотном экране телефона Samsung M75, затем первый андроид. К сожалению, пока развивалась техника, я не молодел, глаза стали сдавать.

PALM IIIc

PALM IIIc

Чтобы глаза поберечь, появилась идея слушать аудиокниги. Какое же было мое разочарование после нескольких попыток это сделать.

Что же мне не понравилось при озвучке людьми:

  • скорость чтения — я привык к гораздо более быстрой подачи информации.

  • лишняя эмоциональность чтецов, игра голосом когда не надо. Мое воображение и воображение человека, который читает книгу различно, и часто не совпадает.

  • Плавающая громкость чтения, когда чтец играет голосом, особенно заметно в машине или в общественном транспорте.

  • Часто попадаются чтецы, голос которых раздражает, их вообще невозможно слушать. 

  • Далеко не все книги есть в аудио версии.

Поиск решения привел меня к компоненту TTS (Text To Speech). Из доступных приложений я остановился на замечательной OpenSource программе RHVoice Ольги Яковлевой.

Пробовал платные предложения, но сильного повышения качества не обнаружил (по крайней мере на тот момент). Программа требует персональной настройки. Из недостатков, что режут мне слух с установками этой программы по умолчанию, это ударения передОхнул, вместо передохнУл. Поэтому  рекомендую подключать словарь. Периодически встречаются другие косяки озвучки, но я как-то привык и этого уже не замечаю.

Данная программа доступна для Windows, Linux и Android. Доступность для Mac не проверял, бо с ним не работал. Такая доступность очень удобна, так как позволяет использовать одни и те же настройки как на компе с разными ОС, так и на телефоне.

Не торопитесь плеваться с первой попытки прослушать фрагмент текста. Для нормального результата нужно подобрать три параметра:

  • голос

  • скорость

  • тембр

Например, я в последнее время использую следующие установки для русского языка:

  • Голос Anna

  • Скорость 105%

  • Тембр 80%

Получается четкий, разборчивый  мужской голос 🙂. Скорее всего, ваши установки будут другими, т.к. на вкус и цвет все фломастеры разные.

Периодически в дистрибутиве появляются новые голоса, например раньше я использовал голос Aleksandr, да и качество озвучки повышается от версии к версии.
Более менее актуальный список голосов RHVoice с комментариями можно посмотреть тут

C  чего начать (Windows)?

Для начала устанавливаем SAPI5 поддержку TTS RHVoice. К сожалению, под Windows требуется установка каждого голоса отдельно.

Качаем готовые русские голоса Aleksandr, Aleksandr-HQ, Anna.
Внимание! Выбирайте SAPI5 (не NVDA!),  с github.
Дополнительно, качаем английские голоса Alan, Clb и устанавливаем их. 

Прямые ссылки на голоса приводить не стал, так как они ведут на файлы вида RHVoice-voice-<Language>-<Voice name>-<version>-setup.exe.

После установки, чтобы познакомиться с TTS, начните с программы Balabolka.
В этом случае вы сможете интерактивно поиграться с голосами, скоростью и тембром, чтобы выбрать наилучший результат для Ваших ушей.

Дополнительно, Если планируете в будущем автоматизировать процесс генерации аудиокниг, рекомендую скачать консольное приложение balabolka_console и консольную утилиту для извлечения текста из файлов.

Далее все просто: вставляем текст для проверки и подбираем голос, скорость и тембр.

Экран "Балаболки"

Экран «Балаболки»

К сожалению, под Windows SAPI5 шкалы настройки этих параметров указываются не в %, а в относительной шкалах -10..+10 с 0 в середине, причем шаг шкалы целочисленный. То есть установить скорость +0.5 не получится.

Используя меню «Сервис», можно запустить полуавтоматическое преобразование текстовых книг в аудио файлы.

C  чего начать (Linux)?

Если у Вас в дистрибутиве уже доступен данный TTS, то просто устанавливаете его.
Например для ubuntu 22.04 (все необходимые голоса уже будут установлены):

sudo apt install rhvoice rhvoice-english rhvoice-russian lame xsltproc

Если Вам не повезло, и в дистрибутивах RHVoice нет, то можно скомпилировать.

Дополнительно, можно установить словари/препроцессоры от  г-на vantu5z.

Начинаем подбирать параметры под свое ухо, вот пример подбора параметров для моей дражжжжжайшей половинки:

$ fc -l 100 | grep RHVoice-test 346     cat b.test | RHVoice-test -R 360 -p anna -r 105 -t 100 -v 130 -q max -o - | aplay 347     cat b.test | RHVoice-test -R 360 -p anna -r 105 -t 90 -v 130 -q max -o - | aplay 348     cat b.test | RHVoice-test -R 360 -p anna -r 105 -t 80 -v 130 -q max -o - | aplay 349     cat b.test | RHVoice-test -R 360 -p alexander-hq -r 105 -t 80 -v 130 -q max -o - | aplay 351     cat b.test | RHVoice-test -R 360 -p aleksandr-hq -r 105 -t 80 -v 130 -q max -o - | aplay 352     cat b.test | RHVoice-test -R 360 -p aleksandr-hq -r 110 -t 80 -v 130 -q max -o - | aplay 353     cat b.test | RHVoice-test -R 360 -p aleksandr-hq -r 130 -t 80 -v 130 -q max -o - | aplay 354     cat b.test | RHVoice-test -R 360 -p aleksandr-hq -r 130 -t 90 -v 130 -q max -o - | aplay 355     cat b.test | RHVoice-test -R 360 -p aleksandr-hq -r 130 -t 100 -v 130 -q max -o - | aplay 356     cat b.test | RHVoice-test -R 360 -p aleksandr-hq -r 130 -t 80 -v 130 -q max -o - | aplay 357     cat b.test | RHVoice-test -R 360 -p aleksandr-hq -r 130 -t 70 -v 130 -q max -o - | aplay 358     cat b.test | RHVoice-test -R 360 -p aleksandr-hq -r 130 -t 60 -v 130 -q max -o - | aplay 359     cat b.test | RHVoice-test -R 360 -p aleksandr-hq -r 130 -t 70 -v 130 -q max -o - | aplay 360     cat b.test | RHVoice-test -R 360 -p aleksandr-hq -r 130 -t 60 -v 130 -q max -o - | aplay 361     cat b.test | RHVoice-test -R 360 -p aleksandr-hq -r 120 -t 60 -v 130 -q max -o - | aplay 362     cat b.test | RHVoice-test -R 360 -p aleksandr-hq -r 110 -t 60 -v 130 -q max -o - | aplay

Как только параметры подобраны, можно двигаться дальше.

Для автоматического преобразования форматов fb2 или txt, я использую свой скрипт fb2mp3.sh
Для его использования скопируйте его и файлы deutf8.sh, fb2txt.xslt в директорию $HOME/bin.

Что выполняет этот скрипт:

1) Устанавливает переменные окружения:
TEXTSPLIT_SIZE=20000
PARALLEL_COUNT=8
TXT_TO_WAV
WAV_TO_MP3
Если в текущей директории есть имя rena, устанавливает ее настройки, если нет, то мои.

 2) Ищет fb2 или txt файлы начиная с текущей директории.

3) Создает поддиректорию по имени файла (без расширения).

4) режет полученный текст на куски TEXTSPLIT_SIZE. Для установленного по умолчанию размера в 20000 байт, для кодировки UTF-8, время каждого mp3 файла получается около 10 минут. Дополнительно на этом этапе вырезает из текста спецсимволы, url линки заменяет на слово link. Поверьте, слушать невозможно что-то вроде такой абракадабры:
«https://site.domain/a/1wK3oT3chhCKzQEHTDCtGkzpZRX777nbKYwCBdV»

5) В параллельном режиме запускает потоки преобразования полученных txt файлов в mp3

6) создает m3u файл 

7) удаляет техническую директорию txt

8) Ищет следующую книгу

После того, как срипт отработает, остается скопировать полученные файлы на телефон и используя любой проигрыватель mp3/m3u начать прослушивать книгу.

На Android я использую приложение Mort Player Audio books. Хотя это очень старое приложение и уже не поддерживается, оно оказалось очень удобным для этих целей.

Android

Я предпочитаю просто прослушивать подготовленные mp3 файлы, но есть возможность использовать RHVoice напрямую, для этого:

1) устанавливаете приложение RHVoice
2) Заходите в него, и скачиваете нужные голоса для русского языка.
3) Установите флажок «наилучшее качество речи».
4) Можно добавить словарь и прописать его в файле RHVoice.conf
5) заходите в настройки системы, ищите настройку: «озвучивание текста»
6) устанавливаете движок синтеза речи на RVoice
7) Настраиваете нужный голос, скорость, тембр по умолчанию.

В дальнейшем, озвучивание будет доступно например в FB Reader или приложении author.today.

Некоторые полезные ссылки:

  1. Домашняя страница проекта

  2. Дистрибутивы RHVoice для Windows

  3. Программа «Балаболка» для Windows

  4. Хороший справочник по голосам RHVoice

  5. Дополнительные словари и препроцессоры для RHVoice

  6. Мой скрипт fb2mp3.sh https://github.com/whiterat1962/fb2mp3 


ссылка на оригинал статьи https://habr.com/ru/articles/729220/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *