Chapter 10

MMVCのトレーニング用音声の録音方法

wok
wok
2023.03.20に更新

VC Helper を用いて MMVC のトレーニング用音声を録音する方法を説明します。
音声録音アプリへのリンク

解説動画はこちらです。

VC Helper の音声録音アプリの特徴

このアプリは次の特長があります。

(1) 事前設定不要
Github pages でサーバを動かしているため、ブラウザでアクセスするだけで使用可能です。アプリケーションのインストールなど一切の事前設定は不要です。

(2) 2 つの台本
現在 ITA コーパスの emotion と recitation の二つの台本が事前に登録されています。

(3) MMVC に適したデータ
MMVCのモデルのトレーニングに最適な 24000Hz, 16bit で録音します。

(4) ローカルにデータ保存
完全にクライアント(ブラウザ)上で動き、サーバへのデータアップロードは行いません。
データはブラウザ内に蓄積されます。

(5) ノイズキャンセル機能
ノイズキャンセル機能が組み込まれています。VC Helper のボイスチェンジャと同じ方式でノイズキャンセルを行っているため、トレーニングとボイスチェンジャ使用時で同質の音声を Input として使用するになります。これにより、ボイスチェンジャ変換精度を安定させることを期待することができます。

(6)) トレーニングアプリとの連携
作成したデータは Zip 形式で export され、そのままトレーニングアプリに使用することができます。

使い方

次の URL にアクセスして開始してください。
音声録音アプリへのリンク

次の画面が出てきたら"Click to start"をクリックしてください。
(サポートしていただける方は是非”Buy me a coffee”からお願いします。)
alt

マイクの使用許可確認が表示された許可してください。
a

画面構成

image

(1) マイク選択
プルダウンでマイクを選択することができます。

(2) スピーカー選択
プルダウンでスピーカーを選択することができます。

(3) 台本選択
プルダウンで台本を選択することができます。

(4) テキスト選択
矢印で録音するテキストを選択することができます。
ここで選択されたテキストが(7)テキストに表示されます。

(5) レコーダーコントロール
レコーダーをコントロールするボタンです。
詳細は後述します。

(6) エクスポート
データをエクスポートするボタンです。
詳細は後述します。

(7) テキスト
録音するテキストです。上にかな漢字まざりの文章が出ます。
下にひらがなのみの文章が出ます。

(8) 音声データエディタ
録音したデータから切り出す音声の範囲を指定します。
録音がされていない状態だと、上図のような文字列が表示されています。

録音がされていると音声波形が表示されます。

詳細は後述します。

レコーダーコントロール

レコーダコントロールは操作ミスがなくなるように、状況に応じてボタンの操作可否が変わるように設計されています。

image

(1) 初期状態
初期状態です。"record"が選択できます。録音された音声データが存在する場合は"play"も選択ができます。また、テキスト選択も可能です。

"record"を押すと録音中に遷移します。

(2) 録音中
録音している状態です。マイクでテキストを読み上げてください。
"stop"を押すと録音が終了し、確認中に遷移します。
この状態の時、"stop"以外のボタンは、押せません。

(3) 採否確認
録音したデータを確認する状態です。
音声データエディタで切り出し範囲を指定して、"keep"を押して保存してください。
"keep"か"dismiss"を押して、録音したデータの扱いを決定しないと他のテキストに遷移することができません。
"record"を押すと、録音中に遷移します。直前に録音したデータは破棄されます。
"play"を押すと、再生中に遷移します。
"keep"を押すと、ブラウザ内部のストレージにデータを保存します。ストレージに保存されていたデータは上書きされます。初期状態に遷移します。
"dismiss"を押すと、直前に録音したデータは破棄されます。ストレージに録音データが存在する場合は、それが再度ロードされます。

(4) 再生中
録音した音声データのなかで、音声データエディタでしていされた範囲が再生されます。
再生が終了すると、"play"ボタンを押すまえの状態に遷移します。
(既知のバグで戻らない場合があります。その場合は"stop"ボタンで戻ってください。)

音声データエディタ

録音が完了すると、音声波形が表示されます。

image

(3) の左右の枠をドラッグすることで音声の切り出し範囲を調整することができます。
image

なお、MMVC の仕様に合わせるため、1秒以下にすることはできません。
(非リアルタイムのテストに使用する音声も録音できるように、16 秒以上にはできるようにしています。)

また、(4)のボタンを押すことでメルスペクトログラムを表示することもできます。上段が録音データです。下段がノイズキャンセル後のデータです。
image

エクスポート

作成したデータを Zip ファイル(myvoice.zip)としてエクスポートします。
エクスポートされるデータは、次のものが含まれます。カッコ内はフォルダ名です。
(1) トレーニングで使う音声データ。ノイズキャンセル済み。切り出し範囲のみ。24000Hz, 16bit。(wav)
(2) トレーニングで使うテキストデータ。(text)
(3) 録音した生の音声データ。ノイズキャンセル"済み"。切り出しなし。48000Hz, 16bit。(vf)
(4) かな漢字交じりのテキストデータ。(readable_text)

(1)(2)は公式で配布されている音声データの形式と同じモノになります。dataset フォルダにそのまま回答すればトレーニングで使用可能になります。(別途、multi_speaker_correspondence.txtの設定は必要。)

また、本アプリを使用してトレーニングを行う場合は、エクスポートした Zip ファイルをそのまま使用することができます。(multi_speaker_correspondence.txtはアプリ内で設定できます。)

なお、解凍すると次のようなフォルダ構成になっています。

.
├── 00_myvoice
│   ├── readable_text
│   │   ├── emotion001.txt
│   │   ├── emotion002.txt
│   │   ├── <略>
│   │   ├── recitation001.txt
│   │   ├── recitation002.txt
│   │   <略>
│   ├── text
│   │   ├── emotion001.txt
│   │   ├── emotion002.txt
│   │   ├── <略>
│   │   ├── recitation001.txt
│   │   ├── recitation002.txt
│   │   <略>
│   ├── vf
│   │   ├── emotion001.wav
│   │   ├── emotion002.wav
│   │   ├── <略>
│   │   ├── recitation001.wav
│   │   ├── recitation002.wav
│   │   <略>
│   └── wav
│       ├── emotion001.wav
│       ├── emotion002.wav
│       ├── <略>
│       ├── recitation001.wav
│       ├── recitation002.wav
│       <略>
└── myvoice.zip

注意点

  1. 動作確認は windows+chrome のみです。chrome であれば他の OS でも使用できるとは思いますが動作確認はしていません。
  2. 私の知りうる範囲でなるべく高品質のデータを作成できるようにしていますが、ネイティブアプリと比べて同レベルになるかはわかりません。(ブラウザが介在しているので。)とはいえ、Web Audio API が提供されているなど等、ブラウザ業界の人々は音に関する熱量が高いように見えるので、おそらく遜色はないと思っている。
  3. サイトから離れてもデータを覚えていますが、ブラウザのデータを削除すると保存していたデータが消えてしまいます。ご注意ください。