母音のホルマント合成
1. scvs コマンドの使い方
音声生成の source-filter モデルに基づき, ホルマントと基本周波数を与えて母音を合成する scvs というコマンドを用意しています1。 このコマンドを用いて合成母音を作成することにより,ホルマントの変化によって, 母音の音韻性(韻質)がどのように変化するのかを確認することができます。
母音合成の手順は次のとおりです。 scvs の一般的な使い方(オプション指定の方法)は, コマンド名 scvs のみをタイプすれば表示されます。
合成する母音のホルマント周波数と帯域幅を記述したパラメータファイルを用意します。 例えば,次の値を書いたテキストファイル file _par.txt を作ります。 テキストファイルの作成にはメモ帳 (コマンド名は notepad) 等を使うことができます。
450 50 1450 70 2450 110 3300 250 3750 200 4900 1000
ここで,ファイルの 1 行目は合成母音の第 1 ホルマントの周波数 (F1) と帯域幅に, 2 行目は第 2 ホルマントの周波数(F2)と帯域幅になります。 第 3 ホルマント以降も同様です。 したがって,このパラメータファイルからは,6 個のホルマントを持つ母音が合成されます。
母音の音韻性を決定する主な特徴は F1,F2,F3 ですので,違う母音を作りたければ, これらのみを変更すれば十分です。 中でも F1 と F2 が音韻性に与える影響が大きいので,F3 を固定しても構いません。
なお,F4 以降のフォルマントは音韻性に大きな影響を与えませんが,スペクトルの高域にエネルギーを持たせてスペクトル形状を自然なものにします。削除はしないでください。
パラメータファイル file _par.txt を作成したら(ファイル名の途中に空白はいれないでください), 次の形式で scvs コマンドを実行し,母音を合成します。
scvs -s 16000 -f file_par.txt -g file_tf.txt file.wav
これにより, file.wav に WAVE 形式の母音データが, file.txt にテキスト形式の母音データが入ります。 file.wav を wavesurfer 等で再生すれば,合成音を聴くことができます。 file _tf.txt には,音源・声道・放射をあわせたフィルタの周波数特性がテキスト形式で格納されます。
scvs における基本周波数(声の高さ)のデフォルト値は 110 Hzです。 これを変更するにはオプション -F0 を使います。 例えば -F0 150 をオプションとして(コマンド名のあとに)付加すれば, 母音の基本周波数は 150 Hz になります2。
2. 実習課題
(準備)この実習資料の第 1 章に示した内容のパラメータファイルを作り,合成母音を作成しなさい。 基本周波数は scvs のデフォルト値 (110 Hz) とする。 合成母音の音と波形を wavesurfer で確認するとともに, ホルマント周波数を調べ, パラメータファイルに指定した値と比べてみなさい。
また,可能であれば,フィルタの周波数特性を GNUPLOT で描画し確認してみなさい。 GNUPLOT を起動して, file _tf.txt の内容を折れ線グラフで描画してみれば,母音合成時のフィルタの周波数特性を図示できる。
自分で発声した母音
/a/
から求めた基本周波数 F0 とホルマント周波数 (F1 と F2) を使って母音を合成しなさい。F1 と F2 は scvs のパラメータファイルに記述し, F0 は scvs のオプションで指定する。 ホルマント帯域幅と F1, F2 以外のホルマント周波数は第 1 章のパラメータファイルの値をそのまま使うこと。 音や波形,スペクトル等を元の音声と比較しなさい。
- 講義資料 p.14 のホルマント分布図を参考にして,
/a/
以外の母音を生成し,波形や音,スペクトルを確認しなさい。