vconnect @ ウィキ

合成規則

v.Connectの合成規則


誰でも思い付くようなことをまじめに書いてみる。

1.概要

 UTAUの先行発音・オーバラップを含むよう拡張したVSQから音符位置等を計算した後合成を行う。この段階での式に関しては対応パラメタを参照してください。
 合成は大まかに四段階の処理に分割される。ノート情報から音程情報の生成・ControlCurveの適用・音符間のモーフィング・音量エンベロープの適用の四段階で、音量エンベロープの適用はSTRAIGHTによる合成の後に行われる。単音節片合成なので、ツール側で一律に処理をした方が良いだろうと判断した部分に関しては以下のように比較的簡易(と言っても十分面倒臭いが…)な方法でアシストする形になっている。
 どこまで自動化するべきかというのは使用感から判断すれば良いだろう。

2.音程情報の生成法

 これに関しては詳細な文献がSingBySpeakingで公開されているので興味がある方はそちらを参照してみてください。大体これと一緒だし僕より説明分かりやすいと思うし。
 これらの制御にはPortamentDepthとPortamentoLengthが使用される。ただし、微細振動については音符情報の影響を受けないのでこの限りではない。本当に微細振動が必要かどうかは今後検討が必要と思う。

3.ControlCurveの適用

 ControlCurveの項を参照してください。

4.音符間のモーフィング

 v.ConnectのモーフィングはVer.0.6以降二段階で行われる形に修正した。簡単に言えば母音のモーフィングの後に子音のモーフィングを行う形になってした。母音同士のモーフィングに関しては資料が見当たらない上に調べてもいないので適当な時間(80ms)モーフィングする設定になっている。

a)母音モーフィング

 UTAU単独音音源の原音設定時には固定長終了時には母音が遷移しきっていると仮定した上で母音のモーフィングを行っている。
 ある音符の末尾の固定長(80ms、あるいは80ms以下の音符の場合音符長)間、次の音符のUTAU原音設定固定部終了時のスペクトルに向かって線形にスペクトルと非周期性成分をモーフィングしている。つまり、音符が終了するまでには次の音符の母音へと変化するようにしている。
 これは次の音への準備中に口腔内が次の母音の準備をするだろうという仮定の基に行っている。

b)子音モーフィング

 子音のモーフィングは母音のモーフィング後に行われる。こちらは単純にオーバーラップをし、重なった部分があればその部分を線形にモーフィングしている。オーバーラップは良くできた原音設定ならば変更する必要はあまり無いように感じる。もし発音が曖昧になるようであれば多少短くしても構わないだろう。

以下加筆中...