音楽とかソフトとか

setParam ver.2.0-b110708を上げました→ ダウンロード

<主な変更点>
- (追加) 単独音のパラメータ自動推定機能の拡充(詳細は後述します)。
- (修正) 一覧表窓でESCを押すと窓が閉じるバグを修正した。
- (修正) 発声タイミングチェック試聴で20個より多く同時指定した場合にエラー窓が正しく出ない問題を修正した。



<単独音のパラメータ自動推定>

以前のバージョンでは「ツール」→「テスト中」の中にあった自動推定機能を今回ある程度完成に近づけてみました。それに伴い「テスト中」の看板を外しました。使い方は以下のとおりです。

【起動方法】

複数のやり方があります。

・音源フォルダを選択→「パラメータを自動的に生成する」→「単独発声データ(setParamで推定)」

・「ツール」→「パラメータ自動推定(単独音用)」

・一覧表窓でセルを選択(複数選択可)して右クリック→「パラメータ自動推定(単独音用)」

【設定】

起動すると以下の設定窓が現れます。
設定窓

項目名説明適用する主なパラメータ
「パワー抽出間隔」~「窓の種類」パワー値を求める際の各種パラメータ。全パラメータ
発声中のパワー最小値無音部分のパワー値より少し大きい値を指定して下さい。左右ブランク
最短発声時間パワー値が「発声中のパワー最小値」以上の状態が「最短発声時間」以上持続したとき、発声中であるとみなします。発声の長さに応じて変更して下さい。左右ブランク
発声中のパワーの揺らぎ子音部から右ブランクの間で音量が何dB揺らいで良いかを指定します。固定範囲、右ブランク
無音中のパワー最大値この値より小さいところは無音であるとみなします。詳細はややこしいのでここでは省略しますが、通常は「発声中のパワー最小値」と同じ値を入れておくと良いと思います。左ブランク
母音のパワー最小値有声子音+母音(「な」「ら」など)の場合、この値以上になった所を先行発声位置とします。先行発声
最短無音時間パワー値が「無音中のパワー最大値」以下の状態が「最短無音時間」以上持続したとき、無音であるとみなします。左ブランク
子音長(固定範囲)の最小値子音部の長さの最小値です。UTAUでは子音部=0だとエラーになるので0に近い値を指定しておきます。固定範囲
推定対象自動推定を行いたいパラメータを指定します。チェックを入れたパラメータのみ推定値で上書きされます。
※その他F0に関するパラメータも先行発声の位置決めに利用します。設定値はこの窓でなく「詳細設定」で設定したものが使われます。先行発声

※以前のバージョンとの違い:今回のバージョンでは「母音のパワー最小値」と「その他」を追加しました。

【推定の実行】

「全wavに対して実行」: フォルダ全体に自動推定を適用します。
「選択範囲に対して実行」: 一覧表窓で選択したセル(複数選択可)のwavにのみ自動推定を適用します。

【推定の流れ】

    [左ブランク位置]
  1. パワー曲線を左端から右にたどり、値が「発声中のパワー最小値」以上の状態で「最短発声時間」以上持続する場所まで移動する。その場所をuttSとおく。

  2. そこから左へ戻り、パワー値が「無音中のパワー最大値」以下の状態で「最短無音時間」以上持続する場所まで移動する。その場所を左ブランク位置にする。

  3. [発声が減衰し始める位置を求める]
  4. パワー曲線を右端から左にたどり、値が「発声中のパワー最小値」以上の状態で「最短発声時間」以上持続する場所まで移動する。その場所をuttEとおく。

  5. [中央付近の平均パワーを求める]
  6. uttSuttEの中央付近にあるパワー30個から平均パワーを求める。この辺りは、母音発声中で音を伸ばしている場所に相当すると考えました。

    ※シンセサイザのエンベロープのような図で考えるとサスティンの部分に相当すると考えています。そうすると、子音部はサスティンの左端、右ブランクはサスティンの右端に相当するとみなせます。ただし音声は発声音量に揺らぎが混じるので、「発声中のパワーの揺らぎ」でどの程度音量が揺らいで良いかをあらかじめ指定しておきます。

  7. [右ブランクを求める]
  8. uttSuttEの中央から右にたどり、パワー値と平均パワーとの差が「発声中のパワーの揺らぎ」より大きく揺らいだ場所まで移動する。その場所を右ブランク位置にする。(ただし本バージョンでは、パワー値が平均パワー値より下回った場合のみ停止条件をチェックするようにしてみました)

  9. [固定範囲(子音部)を求める]
  10. uttSuttEの中央から左にたどり、パワー値と平均パワーとの差が「発声中のパワーの揺らぎ」より大きく揺らいだ場所まで移動する。その場所を固定範囲にする。(ただし本バージョンでは、パワー値が平均パワー値より下回った場合のみ停止条件をチェックするようにしてみました)

  11. [先行発声を求める]
  12. F0を抽出し、有声開始位置(F0データを抽出できる最初の点の位置)を求める。次に有声開始位置から更に右にたどりパワーが「母音のパワー最小値」以上になる場所を探す。その場所と左ブランク位置のうちより右にあるものを先行発声位置とする。

  13. [オーバーラップを求める]
  14. オーバーラップは現在未実装です。設定窓でチェックを入れた場合は0に設定されます。





<その他>

先行発声の自動推定の例ということで、櫻歌ミコ単独音Lite版の「ま」から「ん」の発声タイミングチェック音を録音しました→こちらで聴けます

自分で数個の音源を試した限りでは、パラメータ設定を適切に行えばそこそこいけるように思いました。設定をより良いものにするためには何度かトライ&エラーを繰り返すことになります。

オーバーラップは未実装ですが、最初に「りぶあん」で自動推定し、次に本機能を適用するという手は考えられます。

数年前(ver. 2.0-b091104のとき)に実装したソースと説明文を今回いじったのですが、分かりにくいものになっているかもしれません。特にアルゴリズムは図解した方が分かりやすかったかもしれませんね(そしてパラメータ設定もややこしいので、設定窓でも窓右側に表示させるとか…)。

また、今回先行発声の実装が一番大きかったのですが、連続音も同じ原理で自動推定できないかなぁと思っております。一モーラ目の先行発声を自動推定し、それに合わせて後続モーラの先行発声もずらすようなイメージです。OREMOの自動録音はタイミングがずれるのでそこを自動補正できないかなと。
スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する