Chapter 02

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

wok
wok
2023.02.12に更新

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. サイトから離れてもデータを覚えていますが、ブラウザのデータを削除すると保存していたデータが消えてしまいます。ご注意ください。