- Вопрос или проблема
- SVOX pico2wave
- Дополнительное чтение
- Сравнительная таблица
- Piper
- pico2wave
- idiap/coqui-ai-TTS
- coqui-ai/TTS
- festival + festvox-us-slt-hts
- tortoise-tts
- Другие
- Piper
- Ответ или решение
- 1. Использование espeak
- Установка
- Озвучивание текста
- Настройка параметров
- 2. Использование festival
- Установка
- Озвучивание текста
- Настройка параметров
- 3. Использование spd-say
- Установка
- Озвучивание текста
- Настройка параметров
- 4. Использование pico2wave
- Установка
- Озвучивание текста и сохранение в файл
- 5. Использование Python и gTTS
- Установка
- Озвучивание текста
- Заключение
Вопрос или проблема
Как получить вывод речи из введенного текста с помощью командной строки?
Также возможность изменения скорости речи, высоты, громкости и т.д. с помощью простой команды.
В порядке убывания популярности:
-
say преобразует текст в слышимую речь с помощью движка речи GNUstep.
sudo apt-get install gnustep-gui-runtime say "привет"
-
festival общий многоязычный синтезатор речи.
sudo apt-get install festival echo "привет" | festival --tts
-
spd-say отправляет запрос на вывод текста в речь в процесс speech-dispatcher
sudo apt-get install speech-dispatcher spd-say "привет"
-
espeak это многоязычный программный синтезатор речи.
sudo apt-get install espeak espeak "привет"
espeak
это отличный маленький инструмент.
Мне просто нравится с ним экспериментировать в командной строке. Вы можете обнаружить, что он конфликтует с Pulseaudio, поэтому я использую более длинную версию, которая исключает необходимость правильно его настраивать.
sudo apt-get install espeak
espeak --stdout "это тест" | paplay
espeak --help
покажет вам параметры для настройки скорости чтения, высоты, голоса и т.д.
Когда вы делаете свои заметки, сохраните их как текстовый файл, а затем:
echo "это мои заметки" > text.txt
espeak --stdout -f text.txt > text.wav
paplay text.wav # вы должны услышать "это мои заметки"
Затем вы можете поэкспериментировать с ffmpeg и другими, чтобы сжать это с PCM в нечто более управляемое, например MP3 или OGG. Но это другая история.
Из man spd-say
:
NAME spd-say - отправить запрос на вывод текста в речь в speech-dispatcher SYNOPSIS spd-say [options] "некоторый текст" DESCRIPTION spd-say отправляет запрос на вывод текста в речь в процесс speech-dispatcher, который обрабатывает его и в идеале выводит результат в аудиосистему. OPTIONS -r, --rate Задает скорость речи (между -100 и +100, по умолчанию: 0) -p, --pitch Задает высоту речи (между -100 и +100, по умолчанию: 0) -i, --volume Задает громкость (интенсивность) речи (между -100 и +100, по умолчанию: 0)
Таким образом, вы можете получить текст в речь с помощью следующей команды:
spd-say "<введите текст>"
Пример:
spd-say "Добро пожаловать в Ubuntu Linux"
Вы также можете установить скорость речи, высоту, громкость и т.д. смотрите man-страницу.
Python Google Speech :
pip install google_speech
google_speech "Тест hello world"
Svox из Android :
apt-get install svox-pico
pico2wave --wave=test.wav "Тест hello world"
play test.wav
Svox Nanotts :
git clone https://github.com/gmn/nanotts.git
cd nanotts
make
./nanotts -v en-US "Тест hello world"
Ссылка на ресурс: Сравнение синтезаторов речи
Источник поста: Linuxhacks.org
Раскрытие информации: я являюсь владельцем Linuxhacks.org
Mbrola не работает с версии 11.10.
Инструменты SVOX (pico) легко устанавливать, легко использовать и обеспечивают качественные голоса в Ubuntu. Установите их:
sudo apt-get install libttspico0 libttspico-utils libttspico-data
Еще проще, вы можете использовать LibreOffice в комбинации с инструментами SVOX (pico), установив расширение “Читать текст” и получить “GUI” для этого отличного ПО TTS:
Настройте параметры расширения Read Text с помощью Инструменты – Расширения – Читать выбор…. Используйте /usr/bin/python в качестве внешней программы. Выберите параметр командной строки, который включает токен (PICO_READ_TEXT_PY).
SVOX pico2wave
Вот что я использую. И это звучит естественно, это легко понять, и оно распознает единицы (м, °C, кг и т.д.).
Вот мой первый пост о pico2wave.
Все, что вам нужно сделать, это: зайти в Центр программ Ubuntu и искать “pico”. Вы найдете 4 или 5 записей с “Small Footprint Ling…”. Установите их.
Возможное использование pico2wave описано в моем первом посте (следуйте по ссылке выше).
И еще один GUI для espeak: gespeaker
. Он использует как espeak
, так и mbrola
движки. Кроме того, у него больше опций, чем у espeak-gui
.
Следующее не является решением FLOSS, но вы можете найти его полезным. (это wine решение),
Я лично очень увлечен TTS, я использую его довольно часто… например, слушая скучное изложение, с которым я никогда бы не стал связываться иначе (потому что мне нужно налить еще одну чашку кофе… 🙂
Несколько вещей, которые я обнаружил на этом пути .. или, можно сказать, вещи, которые я не открыл на этом пути… Если сказать прямо: каждое программное обеспечение для TTS с открытым исходным кодом, которое я пробовал, оставляет желать лучшего и, следовательно, непригодно для любого полу-продолжительного прослушивания…
В настоящее время я использую NaturalVoices от ATnT. Он доступен только для Windows (возможно, для Mac), но работает под wine
в Ubuntu .. (у него есть незначительная проблема, когда иногда нужно щелкнуть на панели, когда я ухожу от читателя… Это незначительная проблема по сравнению с преимуществом, полученным от качества речи NaturalVoices.
Некоторые другие вещи, которые я обнаружил практически необходимыми для полусенсорного опыта прослушивания, это;…
-
Эти TTS программы не имеют интеллекта (ну, возможно, так же умны, как молодая бабуин…) .. так что им нужна помощь. и есть одна (и только одна Программа для чтения, которую я нашел, которая помогает в этом.. Приложение называется
ReadPlease (2003 Pro)
… Она позволяет вам специально модифицировать слова и группы слов, чтобы они произносились так, как вы хотите… Это отнюдь не идеально, но для меня это сделало разницу между тем, чтобы весь процесс был полезным или неполезным… -
Речь в Natural Voices “нормальная”, но немного скучная. Есть и другие хорошие продукты, но, к сожалению, они все для Windows)..
Иногда звучит удивительно хорошо .. но, о боже, сначала это больно! .. так что #2 это *терпение… и много обновлений вашего списка “особых слов”… Под терпением я имею в виду, что вы (я) на самом деле привыкли к особенностям речи моего особого бабуина :)… и, кстати, в настоящее время у меня около 3000 слов, которые теперь звучат “человечески” достаточно, чтобы я больше не корчился, когда слышу их.3.. “Следуй за прыгающим мячом” … Поскольку голос никогда не будет таким же хорошим, как у настоящего оратора, иногда нужно прояснять .. . Программа чтения, которую я использую, имеет одну функцию, из-за которой я даже терплю её неуклюжий интерфейс…. У нее есть опция “выбрать слово, которое сейчас читается”.. Многие читалки имеют это, но ReadPlease сохраняет текущую строку точно в центре экрана .. Это бесценно, чтобы иметь возможность видеть впереди и позади, чтобы быстро перечитать то, что вы только что пропустили (поэтому автоцентрирование текущей строки – это хорошо)…
Вот и все, что я испытал.. Я сейчас собираюсь сделать кофе, и пока я это делаю, я буду слушать это, чтобы увидеть, как это “читается”…. TTS удивительно хорошо подбирает опечатки (я делаю много опечаток)…
Если что-то столь же хорошее, как ATnT NaturalVoices появится в репозитории Ubuntu, я немедленно займусь этим.
Вот ссылка на некоторые образцы Natural Voices: я использую “MIke”
Для festival
(голос мне кажется более естественным):
sudo apt-get install festival
echo "привет" | festival --tts
Настройка высоты и скорости:
создайте ~/.festivalrc
со следующим содержанием:
(Parameter.set 'Audio_Command "play -b 16 -c 1 -e signed-integer -r $SR -t raw $FILE tempo 1.5 pitch -100")
(Parameter.set 'Audio_Method 'Audio_Command)
Смотрите также http://www.solomonson.com/content/ubuntu-linux-text-speech
Обновление: попробовал на другом компьютере с Ubuntu. Пришлось установить пакет движка речи на английском языке, чтобы правильно работать с festival:
sudo apt-get install festvox-kallpc16k
Также play
– это команда cli, которая поставляется с пакетом sox
:
sudo apt-get install sox
Хотя вы уже приняли ответ, я хотел бы упомянуть festival
, который мне тоже очень нравится. Этот пост на форумах Ubuntu содержит много информации о том, как настроить очень хорошие голоса для него.
Представляю espeak-ng
– многоязычный программный синтезатор речи:
espeak-ng "текст для чтения"
espeak-ng -f "~/файл для чтения"
Он использует стандартный английский голос, но доступны многие другие голоса для других языков и даже диалектов, и их можно вывести с помощью espeak-ng --voices
(для всех) или, например, espeak-ng --voices=en
(для английского). Их можно задать с помощью -v
вместе с либо сокращением языка, либо именем файла, например, для шотландского или суахили:
espeak-ng -v en-gb-scotland "текст для чтения" # название языка
espeak-ng -v bnt/sw "текст для чтения" # имя файла: “bnt” для банту, “sw” для суахили
Доступно много других опций, например, -s
для скорости и -w
, чтобы записать вывод в файл сома, смотрите man-страницу, связанную ниже.
Дополнительное чтение
espeak-ng
(“ng” для “следующего поколения”) – это активно развиваемый форк оригинального espeak
синтезатора речи, смотрите главу История на Wikipedia. Оба доступны из официальных источников через пакет espeak
или espeak-ng
соответственно.
Сравнительная таблица
Я думаю, что нам нужна большая сводная таблица, обращая особое внимание на любые инструменты, которые звучат более-менее естественно, учитывая нашу продолжающуюся “революцию глубокого обучения” 2024 года (проблема с этим кембрийским взрывом в том, что пакеты ломаются каждую неделю и работают только на определенных системах).
Инструмент | Звучит более-менее естественно | Вывод в файл | Многоязычный | Тестировался на |
---|---|---|---|---|
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-сказать (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 | |||
tortoise-tts 3.0.0 | 24.04 |
Пустая ячейка означает “неизвестно, не протестировано”.
Мои тестовые строки:
en
: “Привет, меня зовут Джон Смит. Как вас зовут?”fr
: “Bonjour, je m’appelle Jean Jacques. Tu t’appelles comment?”
“Более-менее естественно” является, конечно, крайне субъективным и будет страдать от постоянного изменения целей ИИ по мере их развития и привыкания к лучшим системам. На данный момент, возможно, я бы считал это чем-то вроде “достаточно хорошего для неформального озвучивания видео”.
Piper
Упоминался ранее в: https://askubuntu.com/a/1466489/52975
На Ubuntu 24.04 в чистом виртуальном окружении с:
pip install piper-tts
выдает ошибку:
ERROR: Cannot install piper-tts==1.1.0 and piper-tts==1.2.0 because these package versions have conflicting dependencies.
отчет об ошибке: https://github.com/rhasspy/piper/issues/509
pico2wave
На Ubuntu 24.04:
sudo apt install libttspico-utils
pico2wave -w tmp.wav "Привет, меня зовут Джон Смит. Как вас зовут?"
ffplay -autoexit tmp.wav
idiap/coqui-ai-TTS
https://github.com/idiap/coqui-ai-TTS
pipx install coqui-tts
tts --text "Привет, меня зовут Джон Смит. Как вас зовут?" --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 "Привет, меня зовут Джон Смит. Как вас зовут?")'
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
выдает ошибку:
ERROR: Failed building wheel for tokenizers
Другие
Нет простых инструкций 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/
Инструмент gTTS отличен для генерации аудиофайлов из текста. Он использует API Google Translate для преобразования текста в речь и генерирует mp3 файлы.
Учитывая, что он использует pip
для установки, я настоятельно рекомендую установить Miniconda, а затем использовать conda
для создания окружения, где вы можете установить gTTS. Вы можете скачать Miniconda здесь.
gTTS репозиторий GitHub и документация.
Обновление на 2023 год. Pico2wave – это очень легкая утилита, однако эти два звучат очень естественно:
Аудио сравнений бесплатного Linux TTS 2022. – YouTube
Piper
Быстрая, локальная нейронная система преобразования текста в речь. Проверьте сайт проекта для установки, загрузки голоса и использования. Например:
echo 'Добро пожаловать в мир синтеза речи!' | \
./piper --model blizzard_lessac-medium.onnx --output_file welcome.wav
Balabolka под Wine работает отлично (для меня) с голосами SAPI4 (голоса SAPI5 не обнаруживаются на моей системе Linux). Он может открывать файлы и начинать чтение.
Вот ссылка на запись Balabolka в AppDB Wine.
Ответ или решение
Чтобы получить звук речи из введенного текста с помощью командной строки в Linux, существует множество инструментов и утилит, которые вы можете использовать в зависимости от ваших потребностей и предпочтений. В этой статье мы рассмотрим несколько популярных решений для озвучивания текста и изменения таких параметров, как скорость речи, тон, громкость и т. д.
1. Использование espeak
espeak
— это многоязычный программный синтезатор речи, который легко устанавливается и предоставляет множество опций для настройки.
Установка
sudo apt-get install espeak
Озвучивание текста
espeak "Привет, мир!"
Настройка параметров
Вы можете настроить скорость, тон и громкость с помощью следующих опций:
-s
— установить скорость речи (в значениях от 80 до 450)-p
— установить тон (в значениях от 0 до 99)-a
— установить громкость (от 0 до 200)
Пример использования:
espeak -s 150 -p 50 -a 200 "Это пример текста с настройками."
2. Использование festival
festival
— это система синтеза речи, которая обеспечивает более естественное произношение по сравнению с espeak
.
Установка
sudo apt-get install festival festvox-kallpc16k
Озвучивание текста
echo "Добро пожаловать в Linux" | festival --tts
Настройка параметров
Для настройки можете создать файл ~/.festivalrc
с параметрами, например:
(Parameter.set 'Audio_Command "play -b 16 -c 1 -e signed-integer -r $SR -t raw $FILE tempo 1.2 pitch -20")
(Parameter.set 'Audio_Method 'Audio_Command)
3. Использование spd-say
spd-say
— это команда для отправки запроса синтеза речи в процессе speech-dispatcher
.
Установка
sudo apt-get install speech-dispatcher
Озвучивание текста
spd-say "Здравствуйте, мир!"
Настройка параметров
Вы можете также изменять параметры с помощью опций:
-r
— скорость речи-p
— тон речи-i
— громкость
Пример:
spd-say -r -50 -p 20 "Привет, как дела?"
4. Использование pico2wave
pico2wave
— это легковесный инструмент, который создает звуковые файлы из текста.
Установка
sudo apt-get install libttspico-utils
Озвучивание текста и сохранение в файл
pico2wave -w output.wav "Привет! Это тест."
play output.wav
5. Использование Python и gTTS
Если вы предпочитаете использовать Python, gTTS
(Google Text-to-Speech) может быть отличным выбором.
Установка
pip install gTTS
Озвучивание текста
Создайте файл с кодом:
from gtts import gTTS
import os
tts = gTTS("Привет, мир!", lang='ru')
tts.save("output.mp3")
os.system("mpg321 output.mp3")
Заключение
Теперь у вас есть различные инструменты для реализации текстов в речь с помощью командной строки в Linux. Вы можете выбрать тот, который наиболее подходит под ваши требования. Каждое из предложенных решений включает функции настройки, чтобы вы могли контролировать такие параметры, как скорость, громкость и тон речи. Эти инструменты могут быть полезны для разработчиков, тестировщиков и всех, кто хочет улучшить свою работу с текстом и аудио.