Как получить звуковой вывод из текста с помощью командной строки?

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

Как получить вывод речи из введенного текста с помощью командной строки?

Также возможность изменения скорости речи, высоты, громкости и т.д. с помощью простой команды.

В порядке убывания популярности:

  • 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.

Некоторые другие вещи, которые я обнаружил практически необходимыми для полусенсорного опыта прослушивания, это;…

  1. Эти TTS программы не имеют интеллекта (ну, возможно, так же умны, как молодая бабуин…) .. так что им нужна помощь. и есть одна (и только одна Программа для чтения, которую я нашел, которая помогает в этом.. Приложение называется ReadPlease (2003 Pro)… Она позволяет вам специально модифицировать слова и группы слов, чтобы они произносились так, как вы хотите… Это отнюдь не идеально, но для меня это сделало разницу между тем, чтобы весь процесс был полезным или неполезным…

  2. Речь в 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:

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

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

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

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