テキストデータを読み上げてくれるサービスは最近増えてきました。Google翻訳などは翻訳後に、読み上げも行ってくれます。しかし大量のデータを一括処理したい場合や、テキストデータを音声ファイルへ変換したい時はコマンドラインから実行できると便利です。eSpeak NGは英語及び多言語に対応した音声合成エンジンです。ライセンスフリーの日本語音声合成エンジンとしては、Open JTalkが有名で、音声品質も高いですが日本語のみ対応で英語を入力してもアルファベット読みになってしまいます。eSpeak NGは対応言語が100言語以上と多言語に対応しているのが特徴なので、音声データを必要とするソフトの開発や他言語学習に利用してみては如何でしょうか?
eSpeak NGのインストールは以下のコマンドで行います。
$ sudo apt install espeak-ng
eSpeak NGのデフォルト言語は英語なのでパラメータ無しに文字列を与えると英語で発音してくれます。入力にファイルを使用したい場合は -f オプション、-w オプションを使用すると wav 形式の音声データを出力します。
$ espeak-ng "Hello"
$ cat input_data.txt
Hello
$ espeak-ng -f input_data.txt
$ espeak-ng -f input_data.txt -w out.wav
出力されたファイルを再生する。
$ aplay out.wav
–voices オプションで、対応している言語の一覧を表示します。例えば、日本語は ja、中国標準語(普通話)は、cmn なので以下のように実行します。
$ espeak-ng --voices
$ espeak-ng -v ja "こんにちは"
$ espeak-ng -v cmn "你好"
+m or f (1,2,3…指定可能な数字最大値は言語、性別により異なります)を追加すると声を男性(m)、女性(f)に切り替えることができます。-s オプションでは、音声スピード(デフォルト175)を変更できます。値を大きくするほど読み上げスピードが上がります。
$ espeak-ng -v ja+m1 "こんにちは"
$ espeak-ng -v ja+f2 "こんにちは"
$ espeak-ng -s 200 -v ja "こんにちは"