トップ   新規 一覧 単語検索   ヘルプ   最終更新のRSS

KlattSynthesizer のバックアップ(No.1)


Miyazawa’s Pukiwiki?

Klatt Synthesizer の Python 版(pyklatt)を使ってみる

  • Klatt Synthesizer は音素の音響的パラメータを直に指定して音声合成ができる
    • 例えばフォルマントの値を直に指定して母音を合成する
    • 河原先生によれば、STRAIGHTはフォルマント値を指定した合成は対象外(可能ではあるはずだが、フォルマント周波数の定義そのものに懐疑的な立場とのこと)
  • オリジナルはFORTRAN版(?)
  • 以下の移植版がある
  • まずは Python 版を動かしてみよう。

Python をインストールする

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/ を合成してみる
    • data/ 以下に filelara.txt を置く
    • 実行
      python klatt.py ./data/lara.txt
    • filelara.wav ができる
  • /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), に書き換え
    • filelara2.wav ができる、上と変わっていないように聞こえるが一応変化しているようだ。

*1 Pyshon版は講義で作成したもののようで、完全に移植されているのかどうかは、確認が必要と思います。
*2 事前に svn の実行環境のインストールが必要かも