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

54

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

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

    
задан Pandya 24.07.2014 в 09:05
источник

4 ответа

83

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

  • скажем , преобразует текст в звуковую речь с использованием речевого механизма GNUstep.

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

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

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

    sudo apt-get install espeak
    espeak "hello"
    
ответ дан Sylvain Pineau 24.07.2014 в 09:28
источник
9

От man spd-say :

NAME
       spd-say - send text-to-speech output request to speech-dispatcher

SYNOPSIS
       spd-say [options] "some text"

DESCRIPTION
       spd-say  sends text-to-speech output request to speech-dispatcher process which handles it and ideally outputs the result
       to the audio system.

OPTIONS
       -r, --rate
              Set the rate of the speech (between -100 and +100, default: 0)

       -p, --pitch
              Set the pitch of the speech (between -100 and +100, default: 0)

       -i, --volume
              Set the volume (intensity) of the speech (between -100 and +100, default: 0)

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

spd-say "<type text>"

Пример:

spd-say "Welcome to Ubuntu Linux"

Вы также можете установить скорость передачи, шаг, громкость и т. д. , см. man-страницу.

    
ответ дан Pandya 24.07.2014 в 09:05
3

Для 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)

См. также Ссылка

Обновление: попробовали на другом компьютере ubuntu. Если бы установить английский речевой пакет для работы с фестивалем должным образом:

sudo apt-get install festvox-kallpc16k

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

sudo apt-get install sox     

ответ дан d9k 18.11.2017 в 22:43
2

Ноябрь 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
     

-g

 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
     

-p

 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
  

- голоса =

 List the available voices for the specified language.

 If <language> is omitted, then list all voices.
    
ответ дан SDsolar 18.11.2017 в 03:30