file2wave hoge.txt hoge.wav
とコマンドを打ち込めば、hoge.txt に記述したテキストから hoge.wav という音声合成ファイルを作成してくれるコマンドを作りたいと思いました。
小さいことはいいことだ、とはUNIXの言葉です。
ラズパイも小さいですが、Rasbian(ラズパイのOS)もUNIXの流れをくむDebianベースのOSなのでやはり大事(おおごと)にせず小さくいきたいものです。
AquesTalk Piはラズパイで音声合成ができるべんりな実行モジュールです。
AquesTalk Piをインストール後、
./AquesTalkPi -f talk.txt -o talk.wav
とすれば、talk.txt内の文字列をtalk.wavとして出力してくれて便利です。
ただ、この-fと-oオプションが面倒なのと忘れてしまったりするので、自分が分かりやすい名前のファイル名でシェルを作ってしまえば楽です。
わたしはfile2waveという名前のテキストファイルを作りました。(自分が分かりやすければ、ファイル名はなんでもいいです)
file2wave
#!/bin/bash
# ファイル内の文字列をWAVEファイルに変換
/home/pi/aquestalkpi/AquesTalkPi -f $1 -o $2
echo $1内の文字列を$2に出力しました。
3行目の /home/pi/aquestalkpi/ の部分は、わたしの環境でのAquesTalk Piをインストールしたディレクトリです。適宜おきかえてください。
シェルでは、$1は第2引数に指定した文字列、$2は第2引数に指定した文字列にそれぞれ置き換えられて実行されます。
作ったファイルはターミナル上で実行形式にしておきます。
chmod +x file2wave
このシェルの使い方は
file2wave hoge.txt hoge.wav
のような形で使います。
第1引数が音声合成させたい文章を記述したファイル名、第2引数が出力されるWAVE型式のファイル名です。
作ったシェルはラズパイのどのディレクトリからも呼び出せるような形にしておくと便利です。
もし、ラズパイのホームディレクトリが /home/pi だとして、file2waveを作ったディレクトリが /home/pi/myshell なら、ホームディレクトリの .profile ファイルの最後に以下のような感じで記述しておきます。
# 自作シェルへのパス設定
PATH="/home/pi/myshell:$PATH"
これでどこからでもfile2waveが呼び出せるようになります。
ちなみにAquesTalk Piを使うと、こんな感じの音声ファイルが作成できます。
basho.wav
コメント