Текст в речь с естественным звучанием?

Вопрос или проблема

Я ищу простое в установке программное обеспечение для преобразования текста в речь для 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 -

Документация и больше примеров

Другие

Некоторые уже были упомянуты

Я искал повсюду программное обеспечение для преобразования текста в речь для Ubuntu высокого качества. Его нет. Мои голосовые связки парализованы, поэтому мне понадобился TTS для добавления голосовых инструкций к моим Ubuntu видео. Вы можете получить коммерческое высококачественное программное обеспечение для преобразования текста в речь для Linux здесь. Оно просто очень дорогое. В итоге я купил Natural Reader для Windows (не работает в Ubuntu через Wine) за $40. Возможно, позже я получу Linux версию.

Я проводил исследования на тему лучших звучащих и легко настраиваемых голосов для преобразования текста в речь. Ниже приведен список того, что, по моему мнению, является 5 лучшими продуктами в порядке качества звучания. Большинство веб-сайтов, связанных с этими продуктами, имеют интерактивную демонстрацию, которая позволит вам составить собственное мнение.

  1. NeoSpeech
  2. iVona
  3. Acapela
  4. AT&T Natural voices
  5. 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, но работает быстро и просто.

  1. Установите расширение SpeakIt! на ваш chrome или chromium.
  2. Установите PDF Viewer, если вы используете chromium (chrome уже имеет бесплатный просмотрщик PDF) и проверьте параметры ‘Разрешить в режиме инкогнито’ и ‘Разрешить доступ к URL-файлам’ в настройках расширений chromium.
  3. Перетащите свой PDF в браузер.
  4. Теперь выделите некоторый текст, щелкните правой кнопкой мыши и выберите 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:

Библиография:

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

Примеры

Наиболее часто упоминаемые решения в сообществе включают в себя:

  1. SVOX Pico2Wave — легковесная и хорошо звучащая система TTS, превосходящая по качеству espeak и mbrola. Она поддерживает правильное произношение единиц измерения, таких как градусы, метры и килограммы.

  2. Festival с голосами Nitech HTS — обеспечивают более естественное звучание, чем стандартные голоса Festival. Установка пакетов «festvox-us-slt-hts» выводит качество на более высокий уровень. Разработано множество исследовательских плагинов, которые могут значительно улучшить качество.

  3. Google Chrome Extensions — «SpeakIt!» и прочие расширения для браузеров, которые используют передовые технологии обработки речи, обеспечивая высокое качество звука. Данные расширения удобны в использовании для текстов, просматриваемых через веб-браузеры.

  4. gTTS (Google Text-to-Speech) — библиотека Python и утилита командной строки, взаимодействующие с API Google Translate. Применима для быстрого преобразования текста в формат mp3.

  5. Piper и другие нейронные сети для локального использования — обеспечивают качественное синтезирование речи на основе современных AI решений, что позволяет получить действительно натуральное звучание.

  6. Verbify-TTS — бесплатная офлайн-система на основе ИИ с высоким качеством голоса, поддерживающая как Ubuntu, так и Windows.

Применение

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

  • SVOX Pico2Wave: Идеально подходит для скриптов, которые требуют быстрого преобразования текста в аудиофайлы. Просто интегрируется в bash-скрипты для автоматизированного озвучивания текстов.

  • Festival с Nitech HTS: Является оптимальным выбором для пользователей, которые нуждаются в высоком качестве звука с возможностью тонкой настройки. Может быть интегрирован в системы, требующие природного озвучивания, например, системы помощи пользователям.

  • SpeakIt! и другие расширения Chrome: Эти средства будут полезны в браузере для пользователей, которые хотят озвучить контент веб-страниц. Их простота использования делает их удобными для широкой аудитории.

  • gTTS: Используйте для создания аудиокниг или озвучивания документов, которые требуют высококачественной речи. Удобно встраивается в процессы, где необходимо быстрое преобразование небольших объемов текста в аудио.

  • Verbify-TTS: Отличный выбор для пользователей, которые хотят иметь стабильное и качественное TTS решение, работающее без подключения к Интернету.

Заключение

Оптимальный выбор TTS для Ubuntu зависит от конкретных потребностей: от простоты установки и использования до качества звука и поддержки различных языков. Каждое из перечисленных решений предоставляет определенные преимущества и может быть адаптировано под конкретные задачи, будь то озвучивание документов, автоматизированные системы голосового управления или создания аудиофайлов для различных целей. Каждый может найти подходящее решение, ориентируясь на свои нужды и технические предпочтения.

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

Капча загружается...