Как преобразовать текст в речь, используя командную строку?

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

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

9 ответов

Решение

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

  • say преобразует текст в слышимую речь с помощью речевого движка GNUstep.

    sudo apt-get install gnustep-gui-runtime
    say "hello"
    
  • Фестиваль общей многоязычной системы синтеза речи.

    sudo apt-get install festival
    echo "hello" | festival --tts
    
  • spd-say отправляет запрос вывода текста в речь в диспетчер речи

    sudo apt-get install speech-dispatcher
    spd-say "hello"
    
  • espeak - это многоязычный программный синтезатор речи.

    sudo apt-get install espeak
    espeak "hello"
    

От man spd-say:

НАЗВАНИЕ
       spd-say - отправляет запрос вывода текста в речь в диспетчер речи

СИНТАКСИС
       spd-say [options] "некоторый текст"

ОПИСАНИЕ
       spd-say отправляет запрос вывода текста в речь в процесс диспетчера речи, который обрабатывает его и в идеале выводит результат
       к аудиосистеме.

ОПЦИИ
       -r, --rate
              Установите скорость речи (от -100 до +100, по умолчанию: 0)

       -p, --pitch
              Установите высоту речи (от -100 до +100, по умолчанию: 0)

       -i, --volume
              Установите громкость (интенсивность) речи (от -100 до +100, по умолчанию: 0)

Следовательно, вы можете получить текст в речь с помощью следующей команды:

spd-say "<type text>"

Пример:

spd-say "Welcome to Ubuntu Linux"

Вы также можете установить скорость речи, высоту, громкость и т. Д., См. Справочную страницу.

Python Google Speach:

pip install google_speech

google_speech "Test the hello world"

Svox от Android:

apt-get install svox-pico

pico2wave --wave=test.wav "Test the hello world"
play test.wav

Свокс Наноттс:

git clone https://github.com/gmn/nanotts.git
cd nanotts
make

./nanotts -v en-US "Test the hello world"

Ссылки - Wiki:

Сравнение речевых синтезаторов

За festival (голос кажется мне более естественным):

sudo apt-get install festival

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

sudo apt-get install festvox-kallpc16k

Также play это команда Cli, которая поставляется с sox пакет:

sudo apt-get install sox

Ноябрь 2017 Ubuntu 16.04

Для моего проекта cron рабочие места, которые могут говорить, espeak самый простой.

sudo apt-get update
sudo apt-get install espeak

Для первой части, чтобы заставить систему говорить, время требует одного входа cron

0 * * * * /home/username/scripts/saytime

saytime:

#!/bin/bash
echo "\`$(date +%H)\` Hundred" | espeak

Он может получать ввод через stdio, например так:

cat textfile | espeak -s 100

Для справки, здесь выбраны параметры командной строки для eSpeak:

espeak [варианты] [""]

-a

 Amplitude, 0 to 200, default is 100

 Word gap. Pause between words, units of 10mS at the default speed

-k

 Indicate capital letters with: 1=sound, 2=the word "capitals",

 higher values indicate a pitch increase (try -k20).

-l

 Line length. If not zero (which is the default), consider

 lines less than this length as end-of-clause

-п

 Pitch adjustment, 0 to 99, default is 50

-s

 Speed in words per minute, 80 to 450, default is 175

-v

 Use voice file of this name from espeak-data/voices

-w

 Write speech to this WAV file, rather than speaking it directly

-z

   No final sentence pause at the end of the text

--voices =

 List the available voices for the specified language.

 If <language> is omitted, then list all voices.

Встретить espeak-ng - Многоязычный программный синтезатор речи:

espeak-ng "text to read"
espeak-ng -f "~/file to read"

Он использует английский голос по умолчанию, но есть множество других голосов для других языков и даже доступных диалектов, и их можно перечислить с espeak-ng --voices (для всех) или например espeak-ng --voices=en (для английского). Они могут быть установлены с -v вместе с сокращением языка или именем файла, например, для шотландского или суахили:

espeak-ng -v en-gb-scotland "text to read" # language name
espeak-ng -v bnt/sw "text to read" # file name: “bnt” for Bantu, “sw” for Swahili

Есть много других доступных вариантов, например -s для скорости и -w чтобы записать вывод в волновой файл, см. ссылку на страницу руководства ниже.

дальнейшее чтение

espeak-ng ("Нг" для "следующего поколения") - активно развивающийся форк оригинала espeak программное обеспечение синтезатора речи, см. главу "История" в Википедии. Оба доступны из официальных источников через пакет espeak или же espeak-ng соответственно.

Обновление на 2023 год. Pico2wave — очень легкая утилита, однако эти две звучат очень естественно:

Аудио сравнение бесплатной Linux TTS 2022. - YouTube

Инструмент gTTS отлично подходит для генерации аудио файлов из текста. Он использует API преобразования текста в речь Google Translate и генерирует mp3-файлы.
Учитывая, что он использует pip для установки я настоятельно рекомендую установить Miniconda, а затем использовать conda создать среду, в которой вы можете установить gTTS. Вы можете скачать Miniconda отсюда:

https://docs.conda.io/en/latest/miniconda.html

GitHub репозиторий для gTTS:

https://github.com/pndurette/gTTS

И вы можете найти документацию gTTS здесь:

https://gtts.readthedocs.io/en/latest/

Пайпер

Быстрая локальная нейронная система преобразования текста в речь. Проверьте проект сайта на предмет установки, загрузки голоса и использования. Например:

      echo 'Welcome to the world of speech synthesis!' | \
  ./piper --model blizzard_lessac-medium.onnx --output_file welcome.wav
Другие вопросы по тегам