Linuxで動作するテキスト読み上げアプリケーション

オープンソースなテキスト読み上げアプリケーションをまとめました。


1 eSpeak

Linuxはespeakパッケージをインストールします。

$ sudo apt-get install -y espeak

OSXはeSpeakのサイトからOSX用のバイナリをダウンロードします。

$ unzip espeak-1.45.04-OSX.zip
$ cd espeak-1.45.04-OSX/espeak-1.45.0
$ sudo cp -a espeak-data /usr/share/
$ cp speak ~/bin/espeak

引数に文字列を渡すか標準入力経由で文章を入力します。

$ espeak "Hello, World"
$ espaek < hello.txt

2 SVOX Pico

Linuxはlibttspico0パッケージとlibttspico-utilsパッケージをインストールします。

$ sudo apt-get install -y libttspico-utils

pico2waveコマンドは引数に文字列を渡して文章を入力します。-wオプションは拡張子.wavのファイルしか受け付けません。

$ pico2wave -w=hello.wav "Hello, World"

標準入力経由で文章を入力するには、以下のようなラッパースクリプトを使えば良いと思います。

#!/bin/sh

TMP=`mktemp -t mypico2wave.sh.XXXXXX.wav`
trap "rm $TMP* 2>/dev/null" 0

while read line; do
  pico2wave -w=${TMP} "${line}"
  aplay ${TMP}
done

exit 0

3 festival

Linuxはfestivalパッケージをインストールします。

$ sudo apt-get install -y festival

ファイル名を指定するか標準入力経由で文章を入力します。

$ festival --tts "Hello, World"
$ festival --tts < hello.txt

4 実行例

Youtubeに各アプリの音声をアップロードしました。