NNSVS とは、オープンソースの機械学習ライブラリである Pytorch をベースとした研究用歌声合成ライブラリである。簡単に言えば、NEUTRINO のようなソフトウェアを作るためのライブラリである。
以前から統計的音声合成フレームワークであるnnmnkwiiやWaveNet のフリーな実装を発表していた山本りゅういち氏により 2020 年 4 月より開発が開始された。合成方法は Vocaloid や UTAU のような波形接続型ではなく Sinsy や NEUTRINO のような統計的音声合成である。結果の再現性が重視されており、レシピという形でデータの準備から音声合成まで行うスクリプトが提供されている。
公式が提供しているのは東北きりたん、謡子、JSUT (Japanese speech corpus of Saruwatari-lab)、PJS (Phoneme-balanced Japanese Singing-voice corpus)、おふとん P 歌声データベース、夏目悠李/男声歌声データベース、御丹宮くるみ歌声データベース用の 7 つのレシピだが、他に有志により 黒っぽいど/黒昴宿 -AI- の学習済みモデル、Haruqa(AI) 用の学習済みモデルが公開されている。
統計的音声合成は波形接続型の音声合成のように録音された音声の小片を組み合わせて使用するのではなく、録音されたデータから音の高さや口やのどの形など、実際の音声の生成に関係していると思われる要素を数値で抽出し (音響特徴量)、その数値と楽譜の関係を機械学習の手法で学習・予測することで音声を合成する。学習方法として Sinsy で使用されている隠れマルコフモデル (HMM) が長く使用されてきたが、最近では NEUTRINO のようにニューラルネットワーク (DNN) を使用する方法が広まっている。
NNSVS は楽譜と音声データからタイムラグ (楽譜と実際の発声のタイミングの差) 、継続長 (各音素の持続時間)、音響特徴量の 3 つをニューラルネットワークによって学習するが、デフォルトで使用されている音響特徴量用のニューラルネットワーク (音響モデル) はかなりの確率で音の高さを外す。これはおふとん P 歌声データベースや御丹宮くるみ歌声データベース用のように童謡をを主体とした学習データよりも、夏目悠李/男声歌声データベースのようなオールジャンルの学習データで特に顕著である。あまりの音程の外しっぷりに NEUTRINO のような流暢で自然な歌声を期待していた場合は深く落胆するかもしれない。
しかし音の高さに関しては 2020年11月に NNSVS の公式リポジトリにマージされた 混合密度ネットワークと呼ばれる手法を使うとかなり安定する。また現在 国立情報学研究所の Wang Xin 博士 (NEUTRINO で使用されている Neural Source-Filter waveform models の第一著者でもある) の論文に基づいて Shallow Autoregressive モデルの実装が進められており歌声合成への応用の検証が行われている。
NNSVS 本体は python プログラムでレシピはシェルスクリプトのため、 python と bash などの UNIX 由来のツールが必要になる。使用法は Google Colaboratory を使うか自分の PC を使うかの 2 通りに大別され、また自分の PC を使う場合は PC に直接 Linux をインストールする、Windows subsystem for Linux (WSL) を使う、Windows 用の python と MSYS2を使うパターンの 3 つが考えられる。
MacOS での利用は NVIDIA が CUDA 10.2 で MacOS のサポートを終了したため長期的にはあまりお勧めではないが、おそらく WSL 程度の労力で利用可能であると推測される。
1 の音声データは Python が扱うことのできるフォーマットであればなんでも良い。個人作成の歌声データベースでは東北きりたんと同様に50曲程度収録していることが多いが、謡子のように30曲30分程度の小規模なデータベースでも歌声合成は可能である。音声データは多ければ多いほど良いが、その分楽譜や単音素ラベルファイル作成に必要な労力も増える。最低何曲必要かは学習データの質にも依ると思われるが、合計6分程度の不十分な学習データでは深夜の外国のラジオのような音質になる。
2、3の楽譜および単音素ラベルファイルに関して、NNSVS では楽譜の情報(言語/音楽特徴量)を抽出するのに Sinsy の楽譜変換機能を使って MusicXML ファイルを HTS フルコンテキストラベルファイルに変換して利用している。そして両者に含まれる音素の種類と数は厳密に一致している必要がある。既存の歌声データベースを使って NNSVS 用のレシピを作成するための作業と必要な労力はほぼこのすりあわせに集中しており、例えば作者のkiritan_singingを見るとその苦労のあとが垣間見える。
一部の個人制作の歌声データベースでは UTAU の setParam や oto.ini を使用してこれらのファイルが作成されており、有志により作業手順をまとめた技術文書の準備が進行中である。
参考: How to build a new voicedb? · Issue #22 · r9y9/nnsvs
cp -r egs/pjs egs/<自作の歌声データベースの名前>
bash run.sh --stage 0 --stop_stage 6
もし自作の歌声データベースの単音素ラベルファイルと MusicXML から変換された HTS フルコンテキストラベルファイルの内容に齟齬がある場合は、レシピはステージ 0 (データの準備)の段階で停止する。よくある原因として音素の表記のゆれや撥音の前の母音の数 (Sinsy の撥音の扱いはクセがある)が挙げられる。両者の差異がなくなるまで単音素ラベルファイルか MusicXML ファイルを手作業で修正する。もしレシピが最後まで実行されると、学習の検証用および最終的な評価用に選んだ曲が egs/&amp;amp;amp;amp;amp;amp;lt;自作の歌声データベースの名前&amp;amp;amp;amp;amp;amp;gt;/svs-world-conv/exp/&amp;amp;amp;amp;amp;amp;lt;自作の歌声データベースの歌い手の名前&amp;amp;amp;amp;amp;amp;gt;/synthesis/ 以下のディレクトリに出力される。UTAU | Sinsy | NEUTRINO | NNSVS | |
---|---|---|---|---|
作者(敬称略) | 飴屋/菖蒲 | 名古屋工業大学 | SHACHI | 山本りゅういち |
合成方式 | 波形接続型 | 統計的音声合成 | 統計的音声合成 | 統計的音声合成 |
学習方式 | HMM/DNN | DNN | DNN | |
ソースコード | クローズドソース | 修正 BSD ライセンス (DNN 部分は未公開) | クローズドソース | MIT ライセンス |
入力方式 | ust | MusicXML | MusicXML | MusicXML, HTSフルコンテキストラベルファイル |
ユーザインターフェイス | 公式で GUI を配布 | Web サービスあり | 調声支援ツールなど外部ツールあり | コマンドライン |
kadotanimitsuru氏のオリジナル曲のセルフカバー
ロモット氏のオリジナル曲
台湾の Maplestyle 氏のカバー
上記以外にも soundcloud で #NNSVS タグで検索すると多くの作品を聴くことができる。
ニコニコ上に関連コミュニティやチャンネルはないが、 Discord 上に情報交換用のサーバがあり質疑応答や制作物の供覧が行われている。また海外の UTAU 音源製作者やユーザも参加している。
おふとん P 歌声データベース、夏目悠李/男声歌声データベース、御丹宮くるみ歌声データベース用のレシピは2020年11月4日に NNSVS の公式リポジトリにマージされたため、前2者に関しては公式のレシピを使用することが推奨される。御丹宮くるみ歌声データベース用のレシピに関しては上述のくれいじー氏のリポジトリで収録音源やレシピの改善が行われており、その成果を享受したい場合はくれいじー氏のレシピを使用すると良い。
掲示板
2 ななしのよっしん
2020/12/06(日) 16:43:36 ID: ypCm0nGoA8
https://
これってNNSVS音源をUTAUで使えるって認識で間違いない?
UTAUのUIで使えるのはつよそう
3 ななしのよっしん
2021/04/25(日) 18:07:11 ID: 6Y3/wgE+fb
>>sm38625256
こういう低め男声音源がでるのは強い。
4 ななしのよっしん
2021/05/02(日) 10:37:36 ID: XcRtiGloB4
急上昇ワード改
最終更新:2024/05/22(水) 13:00
最終更新:2024/05/22(水) 13:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。