- Вопрос или проблема
- SVOX pico2wave
- SpeakIt!
- Simple Google™ TTS
- Piper
- gTTS, Google Text-to-Speech
- Другие
- Таблица сравнения бесплатного оффлайн-программного обеспечения CLI
- Piper
- pico2wave
- idiap/coqui-ai-TTS
- coqui-ai/TTS
- festival + festvox-us-slt-hts
- tortoise-tts
- Другие
- Simple Google™ TTS
- Verbify-TTS
- Ответ или решение
- Теория
- Примеры
- Применение
- Заключение
Вопрос или проблема
Я ищу простое в установке программное обеспечение для преобразования текста в речь для Ubuntu, которое звучит естественно. Я установил Festival
, Gespeaker
и другие, но ничего не звучит очень естественно. Все очень синтетично и сложно для понимания.
Есть какие-либо рекомендации?
SVOX pico2wave
sudo apt install libttspico-utils
Очень минималистичное TTS, звучит лучше, чем espeak или mbrola (по моему мнению). Некоторая информация здесь.
Я не понимаю, почему pico2wave редко обсуждается по сравнению с espeak или mbrola. Она маленькая, но звучит действительно хорошо (естественно). Без изменений вы услышите естественно звучащий женский голос.
И … по сравнению с Mbrola, она распознает единицы и произносит их правильно!
Например:
- 2°C → два градуса
- 2m → два метра
- 2kg → два килограмма
После установки я использую её в скрипте:
#!/bin/bash
pico2wave -w=/tmp/test.wav "$1"
aplay /tmp/test.wav
rm /tmp/test.wav
Затем запустите его с нужным текстом:
<имя_скрипта>.sh "hello world"
или прочитайте содержимое всего файла:
<имя_скрипта>.sh "$(cat <имя_файла>)"
Вот и все, чтобы иметь легкую, стабильно работающую TTS на Ubuntu.
Pico и espeak интересны и просты в использовании, но они не очень хороши. Основные голоса Festival тоже не очень хорошие. Однако Festival является речевой платформой на основе схемы, в которой несколько исследователей создали гораздо более качественные плагины-голоса. Вы можете легко превзойти качество pico2wave на стандартной Ubuntu, потому что один из таких голосов доступен в виде готового пакета.
Чтобы Festival звучал естественно, вот что нужно сделать:
sudo apt-get install festival
sudo apt-get install festvox-us-slt-hts
festival -i
festival> (voice_cmu_us_slt_arctic_hts)
festival> (SayText "Don't hate me, I'm just doing my job!")
Вы можете сделать это из командной строки, используя -b
(или --batch
) и заключая каждую команду в одиночные кавычки:
festival -b '(voice_cmu_us_slt_arctic_hts)' \
'(SayText "The temperature is 22 degrees centigrade and there is a slight breeze from the west.")'
Вы можете получить другие достаточно хорошие голоса из репозитория Nitech, но их установка сложна, и пути по умолчанию изменились, поэтому ссылки на имена файлов в комплектных файлов схем могут потребовать ручного редактирования для работы на стандартной Ubuntu.
SpeakIt!
Я считаю, что нашел лучшее бесплатное программное обеспечение для синтеза речи, используя расширение Google Chrome под названием “SpeakIt”. Это работает только в браузере Chrome на Ubuntu. Почему-то не работает с Chromium. SpeakIt предлагает два женских голоса, которые звучат очень реалистично по сравнению с другими. Есть по крайней мере еще четыре мужских и женских голоса, доступных в виде расширений Chrome, если вы поищете в Chrome Web Store, используя запрос “TTS”.
Использование: Для использования на сайте выделите текст, который вы хотите, чтобы он был прочитан, и либо щелкните правой кнопкой мыши и выберите “SpeakIt”, либо нажмите на значок SpeakIt на верхней панели Chrome.
У пользователей Firefox также есть два варианта. В разделе дополнений Firefox выполните поиск TTS, и вы найдете “Click Speak” и “Text to Voice”. Голоса не так хороши, как голоса SpeakIt для Chrome, но вполне пригодны для использования.
Расширение SpeakIt использует технологию iSpeech, и за цену $20 в год сайт может превращать текст в аудиофайлы MP3. Вы можете вводить текст, URL, RSS-ленты, а также документы, такие как TXT, DOC и PDF, и выводить в MP3. Вы можете создавать подкасты, встраивать аудио и т.д. Вот ссылка и пример их аудио (не знаю, как долго ссылка будет работать).
Simple Google™ TTS
Обновление с сайта проекта (2016): Этот проект в настоящее время не поддерживается и останется таковым в обозримом будущем.
Из-за отсутствия лучшей альтернативы я написал bash-скрипт, который взаимодействует с perl-скриптом Михаила Фапсо для предоставления TTS через Google Translate. Из описания проекта:
Целью является обеспечение простого в использовании интерфейса к выводу преобразования текста в речь через систему синтеза речи Google. Вариант резервного использования pico2wave автоматически обеспечивает синтезатор TTS в случае, если не будет найдена Интернет-связь.
На данный момент обертка поддерживает чтение из стандартного входа, простых текстовых файлов и выделенного текста X.
Основные особенности:
- онлайн-синтезатор TTS через Google Translate
- оффлайн-синтезатор TTS через pico2wave
- поддерживает разнообразие различных языков
- может читать из CLI, текстовых файлов и выделенного текста
- поддерживает чтение выделенного текста с фиксированным форматированием (например, PDF-файлы)
Установка и использование задокументированы на странице проекта.
Буду рад, если вы попробуете его. Отчеты об ошибках и любые другие отклики приветствуются!
Piper
Быстрая локальная нейронная система преобразования текста в речь. Обратитесь к сайту проекта для установки, загрузки голоса и использования. Например:
echo 'Welcome to the world of speech synthesis!' | \
./piper --model blizzard_lessac-medium.onnx --output_file welcome.wav
gTTS, Google Text-to-Speech
gTTS, библиотека Python и инструмент командной строки для взаимодействия с API Google Translate для преобразования текста в речь. Записывает данные
mp3
в файл, файлоподобный объект (строка байтов) для дальнейшей обработки аудио илиstdout
.
Недостатки: только CLI. Необходимо быть в Интернете, так как требуется запрос к общедоступной открытой точке доступа Google.
sudo -H pip install gTTS # Установка
Использование
gtts-cli 'hello' --output hello.mp3
gtts-cli -l es 'Nadie es patria, todos lo somos' | play -t mp3 -
Документация и больше примеров
Другие
Некоторые уже были упомянуты
-
Coqui.ia TTS. Установка:
pip install TTS
-
Mimic. Установка:
sudo apt-get install gcc make pkg-config automake libtool libasound2-dev git clone https://github.com/MycroftAI/mimic.git # займет некоторое время cd mimic ./dependencies.sh --prefix="/usr/local" # займет некоторое время ./autogen.sh ./configure --prefix="/usr/local" make # займет некоторое время make check
-
Mimic 3. Установка плагина:
sudo apt-get install libespeak-ng1 # Установка системных пакетов mycroft-pip install --upgrade pip # Убедитесь, что у вас установлена последняя версия pip mycroft-pip install mycroft-plugin-tts-mimic3[all] # Установка плагина mycroft-config set tts.module mimic3_tts_plug # Активация плагина mycroft-start all # Запуск mycroft
-
eSpeak + Gespeaker (GUI) (Исходный код Gespeaker)
Недостатки: Старое и некрасивое
sudo apt install espeak gespeaker
-
Firefox
-
Chromium/Brave/Chrome
-
tacotron и mimic2, основанные на статье Google
Я искал повсюду программное обеспечение для преобразования текста в речь для Ubuntu высокого качества. Его нет. Мои голосовые связки парализованы, поэтому мне понадобился TTS для добавления голосовых инструкций к моим Ubuntu видео. Вы можете получить коммерческое высококачественное программное обеспечение для преобразования текста в речь для Linux здесь. Оно просто очень дорогое. В итоге я купил Natural Reader для Windows (не работает в Ubuntu через Wine) за $40. Возможно, позже я получу Linux версию.
Я проводил исследования на тему лучших звучащих и легко настраиваемых голосов для преобразования текста в речь. Ниже приведен список того, что, по моему мнению, является 5 лучшими продуктами в порядке качества звучания. Большинство веб-сайтов, связанных с этими продуктами, имеют интерактивную демонстрацию, которая позволит вам составить собственное мнение.
- NeoSpeech
- iVona
- Acapela
- AT&T Natural voices
- CereProc Voices
Совместите инструменты SVOX (pico) с LibreOffice:
Инструменты SVOX (pico) легко установить и они приносят качественные голоса в Ubuntu. Установите их:
sudo apt-get install libttspico0 libttspico-utils libttspico-data
Вы можете использовать LibreOffice в сочетании с инструментами SVOX (pico), установив расширение “Read Text”, и вы получите “GUI” для этого отличного программного обеспечения для преобразования текста в речь:
Настройте параметры Read Text Extension с помощью Инструменты – Надстройки – Читать выделение…. Используйте /usr/bin/python в качестве внешней программы. Выберите строку команды, включающую токен (PICO_READ_TEXT_PY), вы можете попробовать некоторые из них.
Теперь вам остается только выбрать какой-либо текст в LO Writer, Calc, Impress или Draw и нажать на значок, добавленный в панель инструментов (улыбающееся лицо с речевым шаром).
Я нахожу голоса Nitech HTS в festival очень естественными и успокаивающими по сравнению с любыми другими голосами, которые я слышал. Смотрите ссылку о том, как настроить Nitech и другие звуки в festival. Я не нашел хорошего интерфейса, который я мог бы использовать для настройки этих голосов, но настройка их через festival.scm все еще работает. Это сообщение очень старое, и вам, возможно, потребуется найти фактический каталог установки, используя команду “locate festival”.
Вот что я сделал, чтобы иметь чистую естественную речь для PDF и других текстовых файлов (другие решения неестественные или они просто платные услуги). Это на самом деле обходной путь с использованием chromium или chrome, но работает быстро и просто.
- Установите расширение SpeakIt! на ваш chrome или chromium.
- Установите PDF Viewer, если вы используете chromium (chrome уже имеет бесплатный просмотрщик PDF) и проверьте параметры ‘Разрешить в режиме инкогнито’ и ‘Разрешить доступ к URL-файлам’ в настройках расширений chromium.
- Перетащите свой PDF в браузер.
- Теперь выделите некоторый текст, щелкните правой кнопкой мыши и выберите SpeakIt!, чтобы послушать действительно естественное преобразование текста в речь.
Существуют также способы открыть другие файлы, такие как .doc и .txt в chrome и сделать то же самое. Есть другие расширения для chrome, которые отображают PDF-файлы, проверьте, подходит ли вам что-то лучше. Кроме того, вы можете загружать все типы текстов в Google Drive и использовать SpeakIt!, чтобы он читался для вас. Другое расширение под названием ‘Speak text’ работает так же и имеет естественную речь.
Ищуя лучший движок TTS для использования в новом нарративном режиме firefox 49, я обнаружил pico tts (svox) – мой любимый движок TTS.
sudo apt install espeak libttspico0 libttspico-data libttspico-utils
Как изменить движок синтеза речи по умолчанию на системном уровне?
Люди на arch linux направили меня на правильный путь:
Раскомментируйте нужный модуль и сделайте его по умолчанию в настройках speech-dispatcher:
# sudo vim /etc/speech-dispatcher/speechd.conf
[...]
# -----НАСТРОЙКА МОДУЛЕЙ ВЫВОДА-----
# Каждая строка AddModule загружает модуль вывода.
#AddModule "espeak" "sd_espeak" "espeak.conf"
AddModule "pico-generic" "sd_generic" "pico-generic.conf"
[...]
#DefaultModule espeak
DefaultModule pico-generic
Перезапустите демон:
# sudo systemctl restart speech-dispatcher.service
НО, когда снова запускается firefox, ничего не происходит. Согласно ссылке выше (посты #10 и #16 на форуме arch) работает с festival (я не пробовал), но speech-dispatcher для pico не отображает доступные голоса. Он не работает.
Любая идея будет высоко оценена 😉
Таблица сравнения бесплатного оффлайн-программного обеспечения CLI
Я думаю, что на данном этапе нам нужна большая сводная таблица:
Инструмент | Кажется, звучит естественно | Вывод в файл | Мультиязычен | Протестировано на |
---|---|---|---|---|
pico2wave (libttspico-utils 1.0+git20130326-14) | да. Некоторые странные искажения, но в целом нормально. | да | -l fr-FR |
24.04 |
idiap/coqui-ai-TTS 0.24.1 + Tacotron2 | да. Звук отличается каждый раз. Большинство слов звучат потрясающе. Временные интервалы не верные. Иногда это совершенно безумно и это смешно. | --out_path tmp.wav |
24.04 | |
festival 2.5.0 + festvox-us-slt-hts 2010.10.25 | да. Не удивительно, но нормально. Легкое искажение голоса и пунктуационные ошибки. | нет | --language english |
24.04 |
spd-say (speech-dispatcher 0.12.0) | нет | нет | -l fr |
24.04 |
say (gnustep-gui-runtime 0.30.0) | нет | нет | нет | 24.04 |
espeak 1.48.15 | нет | --stdout > tmp.wav |
-v fr |
24.04 |
festival 2.5.0 | нет | нет | --language english |
24.04 |
svox nanotts d8b91f3 | нет | 24.04 | ||
espeak-ng 1.51 | нет | 24.04 | ||
piper | 24.04 | |||
toirtoise-tts 3.0.0 | 24.04 |
Пустая ячейка означает “неизвестно, не протестировано”.
Мои тестовые строки быстро:
en
: “Hello, my name is John Smith. What is your name?”fr
: “Bonjour, je m’appelle Jean Jacques. Tu t’appelles comment?”
“Кажется, звучит естественно” крайне субъективно и будет страдать от постоянного изменения задач AI по мере развития и привыкания к лучшим системам. На данный момент, возможно, можно считать это чем-то вроде “достаточно хорошего для неофициального озвучивания видео”.
Piper
Упомянуто ранее в: https://askubuntu.com/a/1466489/52975
В чистом virtualenv в Ubuntu 24.04 выполнение:
pip install piper-tts
выдает ошибку:
ОШИБКА: Невозможно установить piper-tts==1.1.0 и piper-tts==1.2.0, так как эти версии пакетов имеют конфликтующие зависимости.
отчет об ошибке: https://github.com/rhasspy/piper/issues/509
pico2wave
На Ubuntu 24.04:
sudo apt install libttspico-utils
pico2wave -w tmp.wav "Hello, my name is John Smith. What is your name?"
ffplay -autoexit tmp.wav
idiap/coqui-ai-TTS
https://github.com/idiap/coqui-ai-TTS
pipx install coqui-tts
tts --text "Hello, my name is John Smith. What is your name?" --pipe_out | aplay
Первый раз, когда вы вызываете, он устанавливает необходимую модель автоматически.
Звук начинает звучать через 5-10 секунд при каждом вызове, что неприемлемо для частых коротких предложений.
По умолчанию кажется, используется модель Tacotron2
: https://github.com/NVIDIA/tacotron2, но вы можете выбрать другие модели из CLI.
coqui-ai/TTS
Упомянуто ранее в: https://askubuntu.com/a/1447599/52975
Не поддерживает python 3.12 (Ubuntu 24.04), pip install TTF
завершается ошибкой. Отчет: https://github.com/coqui-ai/TTS/issues/3257 Коллаборация: https://github.com/coqui-ai/TTS/issues/3257#issuecomment-2096792618 говорит вместо этого использовать idiap/coqui-ai-TTS
Основываясь на сходстве README, кажется, что это форк https://github.com/mozilla/TTS
festival + festvox-us-slt-hts
Упомянуто в: https://askubuntu.com/a/908889/52975, протестировано на Ubuntu 24.04:
sudo apt install festvox-us-slt-hts
festival -b '(voice_cmu_us_slt_arctic_hts)' '(SayText "Hello, my name is John Smith. What is your name?")'
tortoise-tts
https://github.com/neonbjb/tortoise-tts
На Ubuntu 24.04:
virtualenv -p python3 .venv
. .venv/bin/activate
pip install tortoise-tts==3.0.0
завершается с ошибкой:
ОШИБКА: Не удалось собрать колесо для tokenizers
отчет об ошибке: https://github.com/neonbjb/tortoise-tts/issues/728
Другие
Нет простых инструкций по CLI:
Библиография:
- Как сделать вывод текста в речь, используя командную строку?
- https://www.reddit.com/r/MachineLearning/comments/12kjof5/d_what_is_the_best_open_source_text_to_speech/
- https://www.reddit.com/r/software/comments/176asxr/best_open_source_texttospeech_available/
- https://www.reddit.com/r/opensource/comments/19cguhx/i_am_looking_for_tts_software/
- https://www.reddit.com/r/LocalLLaMA/comments/1dtzfte/best_tts_model_right_now_that_i_can_self_host/
- https://www.reddit.com/r/LocalLLaMA/comments/1f0awd6/best_local_open_source_texttospeech_and/
Моя любимая программа для преобразования текста в речь называется Magic English, но, как и Natural Reader, упомянутый Джо Стайгером, это Windows-программа, и я не уверен, будет ли она работать под Wine.
Естественные голоса AT&T доступны онлайн в виде демонстрации, но это скорее обходной путь, чем решение…
Для этого я создал Intelligent Speaker – расширение для Google Chrome. Он может читать страницы даже без выделения (когда обнаружение текста корректно).
Simple Google™ TTS
Обновление с сайта проекта (2016): Этот проект в настоящее время не поддерживается и останется таковым в обозримом будущем.
Pico, mbrola, cmu, festival, flite, все ПРОИГРЫВАЮТ в 2017 году (они были потрясающими в 90-х годах). Естественная речь AT&T (которая потрясающая) несовместима с linux и не бесплатна, поэтому мы используем Google
git clone https://github.com/Glutanimate/simple-google-tts.git
sudo apt install xsel libnotify-bin libttspico0 libttspico-utils libttspico-data libwww-perl libwww-mechanize-perl libhtml-tree-perl so$
cd simple-google-tts
sudo ln -s `pwd`/simple_google_tts /usr/local/bin
simple_google_tts en "Text to speech is now installed"
cd -
Verbify-TTS
Да! Я столкнулся с той же проблемой, которую вы описываете. Год назад я создал собственную TTS, которую использую сам уже почти два года, и я открыл её исходный код.
Она работает оффлайн и бесплатно, используя AI-основные высококачественные голоса. Вы можете использовать её везде: Firefox браузер, PDF просмотрщик, chrome, LibreOffice и т.д.
Она поддерживает как Ubuntu, так и Windows.
Не стесняйтесь ознакомиться, я только что создал видеоурок с шагами по установке и демонстрацией: https://youtu.be/hb1ZVwUcPCU
Ссылка на скачивание и страница проекта: https://github.com/MattePalte/Verbify-TTS
Не стесняйтесь оставлять комментарии/открывать проблемы для обсуждения новых идей, проблем или конструктивной критики.
Надеюсь, это поможет вам.
На системах Linux вы можете выгрузить X selection (текст, который вы выбрали на экране в помощью мыши) в текстовый файл, затем прочитать его с помощью какого-либо TTS (в настоящее время я использую Python скрипт Google Translate gTTS):
#!/bin/bash
TXT="/tmp/speak.txt"
# сохраните выбранный текст X в файл
xclip -out > $TXT
# удалите смайлы
sed -i 's/ :[pP]/./' $TXT
sed -i 's/ :\//./' $TXT
sed -i 's/ :D/./' $TXT
sed -i 's/ ;D/./' $TXT
sed -i 's/ :(/./' $TXT
# Аббревиатуры:
sed -i 's/[^a-z]IPv6[^a-z]/I P версия 6/gi' $TXT
sed -i 's/[^a-z]MR[^a-z]/merge request/gi' $TXT
sed -i 's/[^a-z]btw[^a-z]/by the way/gi' $TXT
sed -i 's/[^a-z]WIP[^a-z]/work in progress/gi' $TXT
sed -i 's/[^a-z]CLI[^a-z]/command line/gi' $TXT
# Латинский
sed -i 's/i\.e\./that is/gi' $TXT
sed -i 's/e\.g\./for example/gi' $TXT
gtts-cli -f $TXT | play -t mp3 -
Свяжите этот скрипт с какой-либо клавишей, например, правой клавишей меню, и каждый раз, когда вы выбираете какой-либо текст в любой программе: Firefox, Thunderbird, LibreOffice Writer, PDF-просмотрщик или даже Terminal, вы услышите текст.
PS. вы можете также добавить параметр --slow
в gtts-cli.
.
Ответ или решение
Натуральное звучание технологии текст-в-речь (Text-to-Speech, TTS) стало важным элементом современных систем, особенно для пользователей, стремящихся к комфортному и интуитивно понятному взаимодействию с цифровыми устройствами. Для пользователей Ubuntu и других дистрибутивов Linux существует несколько решений, но не все из них обеспечивают достаточно высокое качество звучания. В этой статье мы рассмотрим различные возможности TTS-систем для Ubuntu, предлагая примеры, объясняя их особенности и рекомендации по применению.
Теория
TTS представляет собой технологию, которая преобразует текст в синтезированную устную речь. Основными критериями для оценки качества таких систем являются натуральность голоса, точность произношения, поддержка многоязычия и простота использования. Для пользователей Linux особенно важно наличие открытых решениqй, которые легко интегрируются в операционную систему и поддерживают широкий диапазон форматов.
Примеры
Наиболее часто упоминаемые решения в сообществе включают в себя:
-
SVOX Pico2Wave — легковесная и хорошо звучащая система TTS, превосходящая по качеству
espeak
иmbrola
. Она поддерживает правильное произношение единиц измерения, таких как градусы, метры и килограммы. -
Festival с голосами Nitech HTS — обеспечивают более естественное звучание, чем стандартные голоса Festival. Установка пакетов «festvox-us-slt-hts» выводит качество на более высокий уровень. Разработано множество исследовательских плагинов, которые могут значительно улучшить качество.
-
Google Chrome Extensions — «SpeakIt!» и прочие расширения для браузеров, которые используют передовые технологии обработки речи, обеспечивая высокое качество звука. Данные расширения удобны в использовании для текстов, просматриваемых через веб-браузеры.
-
gTTS (Google Text-to-Speech) — библиотека Python и утилита командной строки, взаимодействующие с API Google Translate. Применима для быстрого преобразования текста в формат mp3.
-
Piper и другие нейронные сети для локального использования — обеспечивают качественное синтезирование речи на основе современных AI решений, что позволяет получить действительно натуральное звучание.
-
Verbify-TTS — бесплатная офлайн-система на основе ИИ с высоким качеством голоса, поддерживающая как Ubuntu, так и Windows.
Применение
Для каждого из описанных решений может быть собственный подход к внедрению:
-
SVOX Pico2Wave: Идеально подходит для скриптов, которые требуют быстрого преобразования текста в аудиофайлы. Просто интегрируется в bash-скрипты для автоматизированного озвучивания текстов.
-
Festival с Nitech HTS: Является оптимальным выбором для пользователей, которые нуждаются в высоком качестве звука с возможностью тонкой настройки. Может быть интегрирован в системы, требующие природного озвучивания, например, системы помощи пользователям.
-
SpeakIt! и другие расширения Chrome: Эти средства будут полезны в браузере для пользователей, которые хотят озвучить контент веб-страниц. Их простота использования делает их удобными для широкой аудитории.
-
gTTS: Используйте для создания аудиокниг или озвучивания документов, которые требуют высококачественной речи. Удобно встраивается в процессы, где необходимо быстрое преобразование небольших объемов текста в аудио.
-
Verbify-TTS: Отличный выбор для пользователей, которые хотят иметь стабильное и качественное TTS решение, работающее без подключения к Интернету.
Заключение
Оптимальный выбор TTS для Ubuntu зависит от конкретных потребностей: от простоты установки и использования до качества звука и поддержки различных языков. Каждое из перечисленных решений предоставляет определенные преимущества и может быть адаптировано под конкретные задачи, будь то озвучивание документов, автоматизированные системы голосового управления или создания аудиофайлов для различных целей. Каждый может найти подходящее решение, ориентируясь на свои нужды и технические предпочтения.