Comando "dizer" do Mac OS X no Ubuntu?

61

Existe um equivalente ao comando de terminal do Mac "say" no Ubuntu 9.10?

roflwaffle
fonte
3
Como um aparte: uma boa lista de frases em inglês nas quais o Mac OS X entende muito bem o contexto, como "Meu nome é Dr. Smith e moro no Smith Dr.", "O soldado decidiu abandonar sua sobremesa no deserto" , "O guarda permitirá que você passe se você mostrar uma permissão válida" e "Está muito mais chuvoso nas encostas do Monte Rainier" em macosxhints.com/comment.php?mode=view&cid=107211
Arjan

Respostas:

65

O espeak deve ser instalado por padrão como mecanismo de conversão de texto em fala no Linux.

Você deve conseguir falar da linha de comando fazendo algo assim:

echo "Text to speak"|espeak

Você também pode começar a falar apenas inserindo- espeakse e, em seguida, insira cada linha de texto que deseja falar seguida de enter.

Outros mecanismos TTS para Linux, você pode ver:

O Espeak está disponível em (mas deve ser instalado por padrão!):

Meta Bergman
fonte
3
Se você quisesse substituir diretamente o comando say, poderia usar uma função: function say () {echo "@" | falar; }
Jason Axelson 29/07
no Linux Mint NÃO é instalado por padrão;)
daveoncode 26/06
1
O Espeak não está instalado por padrão no Ubuntu.
jasonszhao
29
alias say='echo "$1" | espeak -s 120 2>/dev/null'

Então você pode usar:

say 'How are you doing?'

Explicação:

-s 120 #to make it slower than default
2>/dev/null #to eliminate error masseges on the console
rodvlopes
fonte
1
isto não parecem funcionar quando i fonte .bashrc de um script
Chovy
6

Existem vários sintetizadores de fala disponíveis para instalação no karmic, a maioria dos que tentei possui uma versão para console.

Procure por "Fala" em sináptico para obter a lista completa. O espeakpacote funciona como say.

Seth
fonte
3

instale o despachante de fala junto com um sintetizador (flite, festival, etc) e depois

alias say='echo "$1" | spd-say -p -25 -e'

que usará o sintetizador que você configurou.

O -p -25 está definindo o tom mais baixo ... altere conforme desejado. -e usa stdin

user104502
fonte