テキストから話し声を再生する。いわゆるTextToSpeech。
情報源
手順
- インストール
1. インストール
私はAquesTalk Piのサイトからダウンロードできなかった。昔はスクロールしたら同意してDownload
ボタンが有効になったと思ったが……。以下コマンドもNotFound。公開やめたのかな?
wget http://www.a-quest.com/download/package/aquestalkpi-20130827.tgz wget http://www.a-quest.com/download/package/aquestalkpi-20130827.tar.gz
仕方ないので昔ダウンロードしたファイルを使う。
解凍(展開)して環境変数パスを通す。
ヘルプ
$ AquesTalkPi --help ERR: invalid parameter USAGE: AquesTalkPi [-h] [-s speed] [-g volume] [-b] [-v f1|f2] [-k] [-o out.wav] [-f file | text] $ man AquesTalkPi AquesTalkPi というマニュアルはありません マニュアルページが利用できない場合のヘルプについては 'man 7 undocumented'を見てください。
使ってみる
パス指定必須……
$ AquesTalkPi "おはよう" | aplay ERR: cannot find or initialize Dictionary(200) aplay: playback:2787: リードエラー
エラー。絶対パスで指定すると成功する。
~/root/sys/env/tool/aquestalkpi/AquesTalkPi こんにちは | aplay
あるいは相対パス。
cd ~/root/sys/env/tool/aquestalkpi
./AquesTalkPi こんにちは | aplay
AquesTalkPi こんにちは | aplay
つまり選択肢は以下。
cd
する。AquesTalkPi
インストールパスに。- 絶対パス指定する
環境パスを通して名前だけで実行するとエラー……。以下のようにすると良いか?
AqTk="${HOME}/root/sys/env/tool/aquestalkpi/AquesTalkPi" $AqTk ".不便やな" | aplay
最初の一文字の音が小さい
バグ? 最初に句点をつけてやると改善する。,
, 、
, .
でも可。
AquesTalkPi 。こんにちは | aplay
おそらく,
, 、
のほうが空白時間が短い。
AquesTalkPi ",こんにちは" | aplay
引数
引数 | 意味 | 値 | default | 例 |
---|---|---|---|---|
-s |
速さ | 50 〜300 |
100 |
AquesTalkPi -s 150 ",こんにちは" | aplay |
-g |
音量 | 0 〜100 ※1 |
100 |
AquesTalkPi -g 50 ",霊夢だよ | aplay |
-v |
声種 | f1 ,f2 ※2 |
f1 |
AquesTalkPi -v f2 ",魔理沙だよ。" | aplay |
- ※1 音量は
100
までらしいが、200
まで対応しているように聞こえる。ただし音割れする - ※2 他に声種がないか試したが無さそう
引数 | 意味 | 値 | default | 例 |
---|---|---|---|---|
-f |
ファイルから読む(先頭1行のみ) | `` | `` | AquesTalkPi -f /tmp/a.txt | aplay |
-o |
ファイルへ出力する | `` | `` | AquesTalkPi ",こんにちは" -o /tmp/work/a.wav ※3 |
- ※3
AquesTalkPi ",こんにちは" > /tmp/work/a.wav
と同じ
引数 | 意味 | 値 | default | 例 |
---|---|---|---|---|
-k |
音声記号列を入力する ※4 | `` | `` | AquesTalkPi -k "ユックリ_シテイッテネ?" | aplay |
-t |
音声記号列を出力する ※4 | `` | `` | AquesTalkPi -t "頑張れ頑張れできるできる気持ちの問題だって!" |
微調整したいときに使えそう。
- リンク切れ
音声記号
上記参照。細かいところは任せる。
文法
今日はお日柄も良く こんにちわおひがらもよく こんにちわ/おひがらもよく こんにち/わ/おひがらもよく こ'んにち/わ/おひがらもよく こ'んにち/わ/おひがら/も/よく こ'んにち/わ/おひがら/も/よ'く
- アクセント区は
/
で区切る。 - ひとつのアクセント区にはひとつのアクセントのみ。
ざっくり概要は以下。
- ひらがなで表記する
- カタカナ
- 無声化
_ス
,_ク
とする- 逆にデフォルトで無声化される
す
などをス
とすると有声音になる
- ガ行鼻濁音
カ゜
とすると鼻濁音になるガ
とすると破裂音になる
- 無声化
- 数字
でんわば'んごーわ、<NUM VAL=01-2345-6789>です。
ぱ'いわ、<NUM VAL=3.1415926535897932>。
きの'ーわ、<NUMK VAL=321162567>+でした。
のこり+じ'かんわ、あ'と/<NUMK VAL=10 COUNTER=ふん>です。
- アルファベット
こーどば'んごーわ、<ALPHA VAL=AT-3568P>です。
ERR:(106) invalid onsei-kigou-retsu. .こーどば'んごーわ、<ALPHA VAL=AT-3568P>です。
- 拗音
び'ーるを、ぐい'っと;のみた'いな。
ぃ
はエラーになるのでい
にする
例
AqTk="${HOME}/root/sys/env/tool/aquestalkpi/AquesTalkPi" $AqTk ".今日はお日柄もよく" | aplay $AqTk -k ".こんにちわおひがらもよく" | aplay $AqTk -k ".こ'んにち/わ/おひがら/も/よ'く" | aplay
アクセントの箇所を操作して正しいイントネーションで伝える。
$AqTk ",今日はお日柄もよく、" | aplay $AqTk -t ",今日はお日柄もよく、" 、/キョ'ーワ/オヒガラモ+ヨ'_ク、
「今日」が「きょう」になる。大体正しいが、この場合は「こんにち」と読ませたい。そんなときは-k
を使う。
アクセントの箇所を操作して正しいイントネーションで伝える。
$ $AqTk ",今日はお日柄もよく、" | aplay $ $AqTk -t ",今日はお日柄もよく、" 、/キョ'ーワ/オヒガラモ+ヨ'_ク、
「今日」が「きょう」になる。大体正しいが、この場合は「こんにち」と読ませたい。そんなときは-k
を使う。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
$ uname -a Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux