Mac OS X "say" -Befehl in Ubuntu?

61

Gibt es ein Äquivalent zum Terminal-Befehl "say" des Mac in Ubuntu 9.10?

Roflwaffel
quelle
3
Nebenbei bemerkt: eine schöne Liste englischer Sätze, in denen Mac OS X den Kontext recht gut versteht, wie "Mein Name ist Dr. Smith und ich lebe von Smith Dr.", "Der Soldat hat beschlossen, sein Dessert in der Wüste zu desertieren". , "Der Wachmann lässt Sie passieren, wenn Sie eine gültige Genehmigung vorweisen" und "An den Hängen des Mount Rainier ist es viel regnerischer" unter macosxhints.com/comment.php?mode=view&cid=107211
Arjan

Antworten:

65

espeak sollte standardmäßig als Text-to-Speech-Engine unter Linux installiert sein.

Sie sollten in der Lage sein, es von der Kommandozeile aus zum Sprechen zu bringen, indem Sie Folgendes tun:

echo "Text to speak"|espeak

Sie können espeak auch starten, indem Sie einfach espeakselbst eingeben und dann jede Textzeile eingeben, die gesprochen werden soll, gefolgt von der Eingabetaste.

Andere TTS-Engines für Linux, die Sie sich ansehen können:

Espeak ist verfügbar unter (sollte aber standardmäßig installiert sein!):

Meta Bergman
quelle
3
Wenn Sie möchten, dass dies den Befehl say direkt ersetzt, können Sie eine Funktion verwenden: function say () {echo "@" | espeak; }
Jason Axelson
Unter Linux ist Mint NICHT standardmäßig installiert;)
Daveoncode
1
Espeak ist unter Ubuntu nicht standardmäßig installiert.
jasonszhao
29
alias say='echo "$1" | espeak -s 120 2>/dev/null'

Dann können Sie verwenden:

say 'How are you doing?'

Erläuterung:

-s 120 #to make it slower than default
2>/dev/null #to eliminate error masseges on the console
Rodvlopes
quelle
1
Dies scheint nicht zu funktionieren, wenn ich .bashrc aus einem Skript
quelle
6

Es gibt eine Reihe von Sprachsynthesizern, die in karmic installiert werden können. Die meisten, die ich ausprobiert habe, haben eine Konsolenversion.

Suchen Sie in synaptic nach "Speech", um die vollständige Liste zu erhalten. Das espeakPaket funktioniert wie say.

Seth
quelle
3

Installieren Sie dann den Speech-Dispatcher zusammen mit einem Synthesizer (Flite, Festival usw.)

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

Damit wird der von Ihnen konfigurierte Synthesizer verwendet.

Mit -p -25 wird die Tonhöhe nach Wunsch verringert. -e benutzt stdin

user104502
quelle