・何をしているのか
UTAUコアの処理をSTRAIGHTに投げているだけです。他に難しいことは一切していません。STRAIGHTはモーフィングできるので、連続音をモーフィングから作れないだろうかと思ったんです。
実際の作業ははちゅねのないしょを入れたボカロエディタからテキストVSQを吐き出して、そのトラックデータとUTAUの音声セットを使って音を繋げています。STRAIGHTライブラリでは音声モーフィングが非常に手軽に扱えるので、各ノート間はモーフィングによりできるだけ滑らかに繋げています。苦手な子音はあるみたいです。
ただ、聞かせるにはどうも周波数の微妙な震えに対してフォルマントがそれほど変化しないという要素が必要らしく、基本周波数が真っ直ぐなので機械っぽいです。要するにもう少し頑張れたろうと言う話。
何がしたかったかといえば、既存資源を簡単に利用できる形が欲しかった。VSQ突っ込めば歌声のWavが出てくるのが理想。
-UTAUの原音設定ファイルから各波形の解析、STF(StraightFile)形式に。
-テキストVSQの読み込み。
-ノート情報と原音設定から音符の位置と長さを決定。
--Location=NoteTick-Prepronounce
--Length=NoteLength+Prepronounce+NextNote'sOverlap
-ノートの長さに合わせて時間伸縮。計算結果を元に切り張りしていく。
-オーバーラップ時にはSpectrumと非周期成分を線形に合成。
-オーバーラップ前(約50ms)から次のノートへのピッチベンド
--超!適当!!
-PitchBendとPitchBendSensitivityとVibratoの反映
--Vibratoの式は適当だがVSQにVibratoが入ってれば反映される。
-Dynamicsの反映。ただなんか、変。DYN下げでBREが同時に上がる感じ。
-地味にAccentとDecayに対応してる。ボカロほど効果的ではないが。
結局個別ノートの波形データを作っては繋げてるだけです。
STRAIGHTに最適化するなら、母音+子音の個別波形を合成する方が多分より滑らかに繋がると思うんだけど、僕は研究的な意味合いより楽器が欲しかったのでUTAU原音設定とVSQでさっくり合成するほうを選びました。
この方法での利点は、UTAUの音声セットなど既存のデータをSTRAIGHT技術が持つ高品質な合成エンジンを使用して合成できることで、吐き出されたWAVEは若干音が細くなるもののほぼ元のファイルと同じ音質です。その代わり時間とHDD食います。テトが2GBにふとr…じゃない増えました。
もう少し合成の質的な部分は詰められたかなーとか思いつつ、お預けを食らった犬だったのでちゃっちゃき妥協しました。ラ行ナ行は敵です。
しかしVocaloidの設定もUTAUの設定もよくできてるなぁと痛感しました。素晴らしいソフトがあったから試せることであって、非常に感謝しております。