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

Чтобы глаза поберечь, появилась идея слушать аудиокниги. Какое же было мое разочарование после нескольких попыток это сделать.
Что же мне не понравилось при озвучке людьми:
скорость чтения - я привык к гораздо более быстрой подачи информации.
лишняя эмоциональность чтецов, игра голосом когда не надо. Мое воображение и воображение человека, который читает книгу различно, и часто не совпадает.
Плавающая громкость чтения, когда чтец играет голосом, особенно заметно в машине или в общественном транспорте.
Часто попадаются чтецы, голос которых раздражает, их вообще невозможно слушать.
Далеко не все книги есть в аудио версии.
Поиск решения привел меня к компоненту 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.
Некоторые полезные ссылки: