音楽とかソフトとか

OREMO ver. 2.0-b091104を公開しました→こちら

<主な変更点>
- (追加) 自動収録した連続音のパラメータ自動生成機能を追加
- (追加) 先行発声に関する試聴機能を追加
- (追加) 単独音のパラメータ自動推定(テスト中)で、左右ブランクに加えて子音部も推定
- (修正) 単独音のパラメータ自動推定(テスト中)で、右ブランクの決定法を変更
- (修正) 行をControl-iで複製する際にパラメータに空欄がある場合のバグを修正。

全部setParamの更新です。あまり検証できてない箇所もあるのですが、先行発声の試聴機能などは便利かもしれません。
以下詳細です。長くなるので折りたたみます。



<1.自動収録した連続音のパラメータ自動生成機能>

自動収録した連続音声のパラメータを自動生成できるようにしました。基本的には飴屋さんが以前実装されたrengenのクローンです(若干違いがあります)。

手順を追って説明します。

1-1. setParamを起動し、保存フォルダを指定すると次の窓が出ます。

処理フォルダ選択後の窓

1-2. 「パラメータを自動的に生成する」を選ぶと次の窓が出ます。

音声データの種類選択

1-3. 「連続発声データ」を選ぶと次の窓が出ます。なお「単独発声データ」を選んだ場合は単独音用の自動推定ツール(りぶあん)を起動します。

パラメータ設定窓

1-4. 上の設定窓で、収録条件に沿って設定します。まず窓上部の「収録テンポ」と「発声開始位置」を指定して下さい。

1-5. 「収録テンポから各パラメータを初期化」を押して下さい。すると収録テンポ値を基に窓下部の4つのパラメータ値が設定されます。

1-6. 必要に応じて下部4つのパラメータ値を修正して下さい。

※なお、rengenと違い、デフォルトでは右ブランク位置=後続音の左ブランク位置ではなく、右ブランク位置=後続音のオーバーラップ位置になるようにしています。こうすることでオーバーラップ値の分だけ左右ブランク間が広くなり、音を伸ばしたときに多少はブザー音になりにくくなると期待しています。ベストなのはスペクトルを見ながら数値を手修正することだと思います。

1-7. 「パラメータ生成」を押して下さい。設定値に応じて一覧表に値が入力されます。

なお、再度パラメータをいじって生成し直したい場合などは、「ツール」→「原音パラメータの自動生成(連続音用)」で設定窓を出せますので、1-4以降の操作を行って下さい。




<2.先行発声に関する試聴機能>

[前置き]
UTAUを使った動画でときどき発声タイミングのずれた音の混じった作品がありますが、先行発声の値が正しくないことが原因だと思います。先行発声は、ある意味パラメータの中でも耳につきやすいものかもしれません。また、先行発声を自動的に決めるのは結構難しいです。基本的には子音部と母音部の境界に付ければ良いと思いますが、そもそも境界が曖昧だったりして厄介です。

先行発声を手動で決める方法としては、飴屋さんがブログのこちらの記事でクリック音と同時再生する方法を説明されています。

今回この方法に相当する機能を実装してみました。結果例を先に書くと、「F8」を押せば次のような音声が再生されます。

- 例1 (正しく設定できている場合の例)
- 例2 (先行発声値がおかしい場合の例)

上の例のように、デフォルトでは100BPMの速さで最初に3回クリック音がして、4回目で先行発声に合わせて音声が再生されます。発声タイミングが明らかにおかしい場合は先行発声値がおかしいと判断できます。

なお、再生する音声の左ブランクより左側はカットされます。また先行発声位置から一拍分より右側もカットされます。

以下、使い方の説明です。

[設定]
テンポなどを変更する場合は「オプション」→「発声タイミングチェックの設定」を選ぶと次の設定窓が出ます。
発声タイミングチェックの設定窓

クリック音クリック音のwavファイルを指定。
テンポクリック音のテンポを指定(単位はBPM)
最初に何回クリックを鳴らすか発声前に鳴らすクリック音の回数。
音声とクリックの音量バランス発声の音量を0~1で指定します。0にすると無音になります。


上記の設定を変更したら忘れずに「OK」か「適用」を押して下さい。押すまでは変更が反映されません。

[チェック法その1]
F8 を押して下さい。現在表示中の波形の発声タイミングを試聴できます。

[チェック法その2]
パラメータ一覧表で、マウスをドラッグするかSHIFT+上下矢印キーで複数の音を指定し、F8を押すと、複数の音を連続試聴できます。




<3.単独音のパラメータ自動推定(テスト中)>

一つ前のバージョンで、テストとして「ツール」→「テスト中」→「左右ブランクの自動推定(単独音用)」の機能を復旧させましたが、右ブランク決定その他について少しご指摘いただきました。

それで右ブランク値の決め方の変更、機能追加してみました。

[試し方]
「ツール」→「テスト中」→「左右ブランク、子音部の自動推定(単独音用)」で次の設定窓が開きます。
自動推定(テスト中)の設定窓

<前バージョンと同じパラメータ>
「パワー抽出間隔」~「窓の種類」パワー値を求める際の各種パラメータ。
発声中のパワー最小値この値以上の部分は発声中の可能性があります。
最短発声時間パワー値が「発声中のパワー最小値」以上の状態が「最短発声時間」以上持続したとき、発声中であるとみなします。
無音中のパワー最大値この値より小さいところは無音であるとみなします。詳細はややこしいのでここでは省略しますが、通常は「発声中のパワー最小値」と同じ値を入れておくと良いと思います。
最短無音時間パワー値が「無音中のパワー最大値」以下の状態が「最短無音時間」以上持続したとき、無音であるとみなします。

<今回加えたパラメータ>
発声中のパワーの揺らぎ子音部から右ブランクの間で音量が何dB揺らいで良いかを指定します。詳細は後述。
推定対象自動推定を行いたいパラメータを指定します。例えば「りぶあん」で先に自動推定を行い、本ツールで一部のパラメータのみ推定を上書きするときなどに利用します。


<推定の流れ>

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

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

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

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

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

  7. [右ブランクを求める]
  8. uttSuttEの中央から右にたどり、パワー値と平均パワーとの差が「発声中のパワーの揺らぎ」より大きく揺らいだ場所まで移動する。その場所を右ブランク位置にする。

  9. [子音部を求める]
  10. uttSuttEの中央から左にたどり、パワー値と平均パワーとの差が「発声中のパワーの揺らぎ」より大きく揺らいだ場所まで移動する。その場所を子音部にする。





これらの機能はまだ十分に検証できていませんので、お使いの前にoto.iniのバックアップを取ることをお勧めします。

<ToDo>
- 波形画面の縮尺変更(スクロールバーの実装か拡大窓の実装)
- aiff対応
スポンサーサイト

PageTop

コメント


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