音楽とかソフトとか

この記事は実装の進捗に応じて上書きしていきます。
とりあえずOREMO ver.2.0の構想とか進捗状況の雑多なメモです。

<OREMO ver.2.0 で追加したい主な機能>

・原音設定の一部のパラメータ(とりあえず左右ブランク)を自動決定。
・原音設定パラメータを手動で修正。

どちらもわぶでばのコードを流用して改造。

<パラメータの自動決定>

・わぶでばの自動ラベリング機能を使って発話開始点を検出し、左ブランク(オフセット)の位置とする。
 →実装済み(2/8の時点で)

・同じく、発話終了点を検出し、そこから左方向に移動して右ブランクの位置とする。
 →実装済み。(2/9の時点で)

・結果を波形画面に表示する。
 →実装済み(2/13の時点で)

・結果をoto.iniに保存する。
 →実装済み(2/13の時点で)

・左右ブランク以外のパラメータについてはおいおい考えます。「先行発声」のパラメータの意味をよく理解できていなかったりするので、勉強しないと。。(概念図や参考URLなどアドバイスありがとうございます。とても助かりました)

<パラメータの手動決定>

自動抽出結果の間違いを手修正できるようにする。というか、手動でパラメータの位置指定をできた方が良いかも?と思います。UTAU本体に既に付いている機能なので必要性は低いですが、もしやるのなら以下のような特徴を持ったものにしたいなぁと思います。

・波形のみでなくスペクトルやF0、パワーを見ながらパラメータ位置を決められる。
 →実装済み。

・わぶでばの手動ラベリングの使用感でパラメータ位置を決められる。
 →「左ブランク」を設定したい場所にマウスを持ってきてF1キーを押せばOK、F2を押したら「先行発声」が設定される、的な。個人的な好みですが、うまくいけば現状のUTAUの同機能より操作しやすくなるかも?

 →実装済み(とりあえずF1~F5のキーに割り当てました。2/10現在)。

  • F1 = 左ブランク
  • F2 = オーバーラップ
  • F3 = 先行発声
  • F4 = 子音部(固定範囲)
  • F5 = 右ブランク
  • F6 = 下矢印キーと同じ(次の音名へ)
  • F7 = 上矢印キーと同じ(前の音名へ)

 F6、F7は、沢山の音の原音設定をばっさばっさとやる際に、なるべく下矢印キーがF1~F6付近にあった方が良いだろうと思って用意しました。うまくいけばマウスを動かしつつF1、F2、…、F6を押して行くという操作の繰り返しになるんじゃないかと思います。

なお、OREMOの録音機能では、例えば録音済みの音を再収録したけど前の音が良かったというような場合にCtrl+↓、Ctrl+↑とすれば再収録音を破棄して以前保存したwavファイルを復帰させることができますが、原音パラメータ設定に関してはそのような機能は今のところありません。前回設定したパラメータを変更した後で元に戻したいと思ったなら、手動でパラメータを再修正して下さい。

さらに注意点として、手動では通常ありえない位置にパラメータを置くことができてしまいます(例えば左ブランク位置よりさらにオーバーラップを置くとか)。そのような状態のoto.iniをUTAUが読み込んだらどうなってしまうか分かりません。

・音を聴きながらパラメータ位置を決められる。
 →マウスを持ってきて何かキーを押すと、wavファイルの冒頭からマウス現在位置まで再生できるようにしたら、子音部がどの辺りまであるのかを耳で確認できるので、固定範囲のパラメータを決めるときに便利じゃないかと思います。

 →未実装

<原音パラメータの保存>

「ファイル」→「oto.iniの保存」を選ぶと、設定した原音パラメータを、保存フォルダのoto.iniに保存します。原音パラメータを修正した後でOREMOを終了する場合は「原音パラメータが未保存です。」と警告が出て、そこでoto.iniに保存することもできます。

<音叉機能の改良>

音叉機能を以下のように修正しました。

[ 窓の修正 ]
リピート再生ボタンを追加しました。これを押すと音が延々と再生されます。再生停止するには同じボタンをもう一度クリックして下さい(停止ボタンが無いのがちょっと紛らわしいかもしれません)。
oremo-onsa.png

[ ショートカット ]
窓にマウスがある状態では、以下のショートカットキーが使えます。

  • 上矢印または8・・・音叉を1音上げます。
  • 下矢印または2・・・音叉を1音下げます。
  • 左矢印または4・・・音叉を1オクターブ下げます。
  • 右矢印または6・・・音叉を1オクターブ上げます。
  • o         ・・・音叉のリピート再生/停止を切り替える

最後のショートカット「o」はメインの窓でも有効です。音叉を聴きながら録音する場合は、「o(音叉をリピート再生)」→「rを押して発声」→「o(音叉停止)」です。ただし、マイクに音叉音が入らないように密閉型ヘッドホンで小音量で聴く必要があると思います。またオンボードのサウンドカードなどでは、再生音が入力に混じらないかチェックした方が良いようです。手元のノートPCで、音叉をリピート再生しながらrで環境音を録音してみると、リピート再生しない場合より波形の振幅が若干大きくなり、よく聴くと音叉音が聴こえました。

<実装の現状、「動作切替」(2/10現在)>

(以前書いた内容からいくつか変更しました。さらに見かけを変更しました。機能は変更なしです(2/13))

原音パラメータを設定するのは中の人とは限りません。OREMOを使って中の人以外が作業する場合のことを考えて以下の窓を作りました。ツール→動作切替で以下の窓が出ます。

oremo-dousa.png

・「録音機能ON、原音設定機能OFF」
 デフォルトはこのモードです。録音ができて原音設定ができます。

・「録音機能OFF、原音設定機能ON」」
 原音設定のみできるモードです。中の人が公開した音声データの原音設定を他の人が行う場合にこのモードにすれば、不用意に音を上書きせずにすむかなと思って用意しました。

・「録音機能OFF、原音設定機能OFF」
 録音、原音設定いずれもできないモードです。波形やスペクトルを閲覧したり再生したりするモードです。

以上の3つは、録音ON/OFF、原音設定ON/OFFの2つにすれば良いじゃないかと今気づきました。。そのうちまた変更するかもしれません。

・「音名リストの更新」の「保存フォルダにあるwavファイルからリストを生成する」ボタン
 保存フォルダにあるwavファイルから音名リストを作ります。例えばモモの音データをダウンロードしてOREMOで見ようとするとtypelist.txtを書き換えて「A4ラ」などを書かないといけませんが、これを押せばtypelist.txt書き換えなしでリストを作り直します。

 ただし、wavファイル名からは音名、発声タイプの区別をしません。なので、発声タイプはなし、すべて音名リストのみになります(モモの場合音名に「あA4ラ」といったものが並びます。

・「reclist.txt,typelist.txtを読んで~」ボタン
 上の「音名リストの更新」を行ったりした後で、デフォルトの状態に戻すためのボタンです。ボタンを押すと改めてreclist.txtとtypelist.txtを読み込みます。

<実装の現状、「原音パラメータの自動推定」(2/10現在)>

上部メニューからツール→自動パラメータの自動推定で以下の窓が出ます。

oremo-paramsetting.png

わぶでば2.0の自動ラベリングの窓とほぼ同じ窓です。違いは、上から3番目の欄を「平均平滑化のサンプル数」からパワー抽出窓長にしたことです。意味合いは概ね同じです。各パラメータはモモ新音源の「あ*」を見ながら決めました。これを実行すると、保存フォルダにあるすべてのwavファイルから左右ブランクを求めます。結果例を3つ示します。

oremo-paramex.png

「あ」だけしか見ていませんが、どれもうまくいっているようでした。右ブランクの位置がもっと左にあった方が良いと思うなら、「最短発声時間」を長くとればいけるはずです。
子音のある音などはまったく検証していません。

なお現状では「実行」を押すと、ボタンが押された画像のままで、フリーズしたかのような時間が流れますがOREMOは頑張っています。進捗状況を表示させれば不安にならないと思いますが、未実装です。なので、「実行」ボタンを押したら、ボタン画像が押す前の状態に戻るまでとりあえず気長にお待ち下さい。

ちなみに、手元のPC(CPU=Pentium4 3.4GHz, RAM=3GB、OS=WinXP)で16個のモモのwavファイルを自動推定させたら3秒位かかりました。ということは1600個なら300秒=5分くらいでしょうか。。まだまったく試してませんが。

<実装の現状、その他>

画面構成を若干変えました。収録中の音を表示する欄が固定幅でしかも狭かったので、文字によって伸びるようにしました。これでそこそこの長さのセリフも全部表示できるはずです↓
oremo-msg.png

<公開時期>

突貫ぎみでテスト不足ですが、oto.ini保存もできるようになったので、開発版ということで公開します。
あまりテストをしていないこと、新機能に関するマニュアルが添付されていないことにご注意下さい。

スポンサーサイト

PageTop