2014年6月13日金曜日

初めての音声合成・その①

歌唱合成ソフトは
ALT(これは使えないのでノーカウントかな?)やAquesTone、CeVIO、Sinsy、UTAU、VOCALOIDなど、
少し調べただけでも数多く存在する。

ちょっと自分でもやってみたくなったので、めも。
(その幾つまで続くのやら……。)


歌唱合成にも色々と方式があるのだが、
今回はとりあえず、フォルマント合成を見ていく事にする。


(1)C言語で音声合成もどき ~WAVファイルを生成する~
(2)C言語で音声合成もどき ~母音の生成~
基本波形の生成


音声合成
音声合成(2)
音声合成(3)
ニコニコ動画にデモが上がっていて、
音声合成で歌わせてみる in C言語 Part1
音声合成で歌わせてみる in C言語 Part2



これは違う方式だったかな?
TD-PSOLA 法
Nakloid
ニコニコでは
【歌声合成システム】Nakloid【作ってみた】

結局の所、
Rosenberg波(ローゼンバーグ波)(これが人間の声帯の数理モデル……らしい)
を生成して、そのRosenberg波の中から第1~第Nフォルマントに相当する
周波数成分をそれぞれIIRフィルタ(デジタル方式に置けるバンドパスフィルタ……だと思う。)
で取り出して、第1~第Nまで足し算すればいいのかな?
……良く分からない。

Rosenberg波を使うのは、Rosenberg波が
三角波のフーリエ級数展開と同じように、
基本周波数とその2倍、3倍、4倍、……と多くの周波数成分を持っているから、だとおもう。
人間の声も共鳴によって、基本周波数とその2倍、3倍、4倍、……の周波数をもっており、
そのため、人の声帯の代用として扱える……のかな?
もしかしたら、Rosenberg波を使わずとも、sinを延々と足して同様のスペクトル分布としたり、
単純に三角波を作ってからローパスフィルタを掛けても良いかもしれない。
フーリエ級数展開
フーリエ級数展開(デジタル信号処理)


平均的な発生の周波数について
母音の発音とホルマントの関係
人間の声の周波数

声帯の発する基本周波数(声帯振動数)について。
音響学★


UTAUやVOCALOIDの方式だと、また随分と方法が違って、
実際に録音した声の周波数を変更したりと、それはそれで大変そう。


ところで、
http://takeno.iee.niit.ac.jp/~shige/math/lecture/info2/info2.html
の「人間は重ね合わされた音の位相のずれまでを認識しているわけではない」
って本当なのか?
つまり、スペクトルが同じなら、波形は関係ないと……???

0 件のコメント:

コメントを投稿