KlattSynthesizer
Last-modified: 2016-02-09 (火) 02:11:04
Top / KlattSynthesizer
Klatt Synthesizer の Python 版(pyklatt)を使ってみる †
- Klatt Synthesizer は音素の音響的パラメータを直に指定して音声合成ができる
- 例えばフォルマントの値を直に指定して母音を合成する
- オリジナルはFORTRAN版(?)
- 以下の移植版がある
- まずは Python 版を動かしてみよう。
Python をインストールする †
- Pythonインストールと環境設定
- Python の Ver2 と Ver3 でコードの書き方が違う とのこと。Pyklatt パッケージは Ver2 対応なので、Python 2.7.10 - 2015-05-23 Windows x86-64 MSI installer をダウンロードした(2015/07/03時点)
- 環境変数PATHの設定 まで完了。
- test1-1.pyの実行 に成功。
pyklatt をインストールする †
- pyklatt > Source を参照し、コマンドプロンプトで以下を実行*2
svn checkout http://pyklatt.googlecode.com/svn/trunk/ pyklatt-read-only
- カレントディレクトリに pyklatt-read-only ディレクトリが作られる。
試しに使う †
- pyklatt-read-only/ ディレクトリに移動して以下を実行
python klatt.py ./data/cat.txt
- output.wav が生成される。
- pyklatt-read-only/data.txt 以下に合成用のサンプルテキストがあるが、文字化け?のために変な合成音になる。
- pyklatt-read-only/src/ipa.py に合成用の音素名リストと、各音素のパラメータが記述されている。
- /la/, /ra/ の合成パラメータを変えてみる
- Yamada & Tohkura, 1992 によれば、F2 は 920[Hz](/r/) ⇔ 1280[Hz](/l/)、F3 は 1200[Hz](/r/) ⇔ 3000[Hz](/l/) の間で変化させたとのこと。これを再現してみる。
- ipa.py を見て以下のパラメータを書き換える
273行目 /r/ 'freq (1-6)': (300, 1600, 2600, 3300, 3750, 4900), から 'freq (1-6)': (300, 920, 1200, 3300, 3750, 4900), に書き換え 615行目 /l/ 'freq (1-6)': (310, 1050, 2880, 3300, 3750, 4900), から 'freq (1-6)': (310, 1280, 3000, 3300, 3750, 4900), に書き換え
- lara2.wav ができる、上と変わっていないように聞こえますが、一応変化しているようです。