NNSVS 単語

158件

エヌエヌエスブイエス

6.2千文字の記事
  • twitter
  • facebook
  • はてな
  • LINE

NNSVS とは、オープンソース機械学習ライブラリである Pytorchexitベースとした研究用歌合成ライブラリである。簡単に言えば、NEUTRINO のようなソフトウェアを作るためのライブラリである。

概要

以前から統計的音声合成フレームワークであるnnmnkwiiexitWaveNet のフリーな実装exitを発表していた山本りゅういち氏exitにより 2020 年 4 より開発が開始された。合成方法は VocaloidUTAU のような波形接続ではなく SinsyNEUTRINO のような統計的音声合成である。結果の再現性が重視されており、レシピという形でデータの準備から音声合成まで行うスクリプト提供されている。

公式提供しているのは東北きりたん謡子JSUT (Japanese speech corpus of Saruwatari-lab)exitPJS (Phoneme-balanced Japanese Singing-voice corpus)exitおふとん P 歌声データベースexit夏目悠李/男声歌声データベースexit御丹宮くるみ歌声データベースexit用の 7 つのレシピだが、他に有志により っぽいど/黒昴宿 -AI- の学習済みモデルHaruqa(AI) 用の学習済みモデル開されている。

統計的音声合成とは

統計的音声合成は波形接続音声合成のように録音された音の小片を組み合わせて使用するのではなく、録音されたデータから音の高さや口やのどの形など、実際の音の生成に関係していると思われる要素を数値で抽出し (音響特徴量)、その数値と楽譜の関係を機械学習の手法で学習・予測することで音合成する。学習方法として Sinsy で使用されている隠れマルコモデル (HMM) が長く使用されてきたが、最近では NEUTRINO のようにニューラルネットワーク (DNN) を使用する方法が広まっている。

品質

NNSVS は楽譜と音データからタイムラグ (楽譜と実際の発タイミングの差) 、継続長 (各音素の持続時間)、音響特徴量の 3 つをニューラルネットワークによって学習するが、デフォルトで使用されている音響特徴量用のニューラルネットワーク (音響モデル) はかなりの確率で音の高さを外す。これはおふとん P 歌データベース御丹宮くるみデータベース用のように童謡をを体とした学習データよりも、夏目悠李/男声データベースのようなオールジャンルの学習データで特に顕著である。あまりの音程の外しっぷりに NEUTRINO のような流暢で自然な歌を期待していた場合は深く落胆するかもしれない。

しかし音の高さに関しては 2020年11月に NNSVS の公式ポジトリにマージされた 混合密度ネットワークexitと呼ばれる手法を使うとかなり安定する。また現在 国立情報学研究所exitの Wang Xin 博士 (NEUTRINO で使用されている Neural Source-Filter waveform modelsexit の第一著者でもある) の論文に基づいて Shallow Autoregressive モデルexit実装が進められており歌合成への応用の検証が行われている。

使用法

NNSVS 本体は python プログラムレシピシェルスクリプトのため、 pythonbash などの UNIX 由来のツールが必要になる。使用法は Google Colaboratory を使うか自分の PC を使うかの 2 通りに大別され、また自分の PC を使う場合は PC に直接 Linuxインストールする、Windows subsystem for Linux (WSL) を使う、Windows 用の pythonMSYS2exitを使うパターンの 3 つが考えられる。

MacOS での利用は NVIDIA が CUDA 10.2 で MacOS のサポートを終了したexitため長期的にはあまりお勧めではないが、おそらく WSL 程度の労で利用可であると推測される。

Google Colaboratory から使用する

自分の PC に Linux をインストールして使う

自分の PC に Windows subsystem for Linux をインストールして使う

自分の PC に Windows 用の python と MSYS2 をインストールして使う

NNSVS で自作の歌声データベースを使う

NNSVS 用の歌データベースには次の3つが必要である。

  1. データ
  2. 楽譜 (MusicXml フォーマット, または MusicXML ファイルから変換された HTS フルコンテキストラベルファイル)
  3. 単音素ラベルファイル(音データに含まれる各音素の開始時間、終了時間が設定されたもの)

1 の音データPython が扱うことのできるフォーマットであればなんでも良い。個人作成の歌データベースでは東北きりたんと同様に50曲程度収録していることが多いが、謡子のように30曲30分程度の小規模なデータベースでも歌合成は可である。音データは多ければ多いほど良いが、その分楽譜や単音素ラベルファイル作成に必要な労も増える。最低何曲必要かは学習データの質にも依ると思われるが、合計6分程度の不十分な学習データでは深夜の外ラジオのような音質になる。

2、3の楽譜および単音素ラベルファイルに関して、NNSVS では楽譜情報(言/音楽特徴量)を抽出するのに Sinsy楽譜変換機を使って MusicXML ファイルを HTS フルコンテキストラベルファイルに変換して利用している。そして両者に含まれる音素の種類と数は厳密に一致している必要がある。既存の歌データベースを使って NNSVS 用のレシピを作成するための作業と必要な労はほぼこのすりあわせに集中しており、例えば作者kiritan_singingexitを見るとその苦労のあとが垣間見える。

一部の個人制作の歌データベースでは UTAUsetParam や oto.ini を使用してこれらのファイルが作成されており、有志により作業手順をまとめた技術文書の準備が進行中である。

自作の歌声データベースの NNSVS 用レシピの作り方

参考: How to build a new voicedb? · Issue #22 · r9y9/nnsvsexit

  1. PJS 用のレシピ自作の歌データベース名前コピーする。
    cp -r egs/pjs egs/<自作の歌データベース名前>
    
  2. egs/<自作の歌データベース名前>/svs-world-conv/config.yaml を好きなエディタで編集する。最低限編集が必要なのは以下の通り:
    1. 2行の spk を 自作の歌データベース歌い手名前に変更する
    2. 46行の pretrained_expdir は設定されていると他の学習済みモデルからファインチューニングをすることができるが、必要なければ欄にする。
  3. egs/<自作の歌データベース名前>/svs-world-conv/run.sh を好きなエディタで編集する。最低限編集が必要なのは以下の通り:
    1. 59行の util/data_prep.py の引数PJS のディレクトリを定している場所を自作の歌データベースがあるディレクトリに変更する。
    2. 63-67行は学習用、学習の検証用および最終的な評価用のデータリストを作成している。自作の歌データベースから好きな曲を最低2曲選んでそれぞれ学習の検証用および最終的な評価用に充てる。
  4. 以下のコマンドレシピを実行する。
    bash run.sh --stage 0 --stop_stage 6
    
    もし自作の歌データベースの単音素ラベルファイルMusicXML から変換された HTS フルコンテキストラベルファイルの内容に齬がある場合は、レシピステージ 0 (データの準備)の段階で停止する。よくある原因として音素の表記のゆれや撥音の前の音の数 (Sinsy の撥音の扱いはクセがある)が挙げられる。両者の差異がなくなるまで単音素ラベルファイルMusicXML ファイルを手作業で修正する。もしレシピが最後まで実行されると、学習の検証用および最終的な評価用に選んだ曲が egs/&amp;amp;amp;amp;amp;amp;amp;lt;自作の歌データベース名前&amp;amp;amp;amp;amp;amp;amp;gt;/svs-world-conv/exp/&amp;amp;amp;amp;amp;amp;amp;lt;自作の歌データベース歌い手名前&amp;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氏オリジナル曲セルフカバー

ロモット氏のオリジナル曲

カバー曲

UTAU「くれぽ」の作者であるくれいじー氏のカバー

合成系 V の者であるアマノケイ氏のカバー

台湾Maplestyle 氏のカバー

データベース作者 Haruqa 氏本人によるカバー

データベース作者御丹宮くるみ氏本人によるカバー

上記以外にも soundcloud#NNSVS タグ検索すると多くの作品を聴くことができる。

関連コミュニティ・チャンネル

ニコニコ上に関連コミュニティチャンネルはないが、 Discord 上に情報交換用のサーバexitがあり質疑応答や制作物の供覧が行われている。また海外UTAU製作者やユーザも参加している。

関連リンク

公式/開発者関連

利用しているデータベースなど

有志によるレシピ、学習済みモデルなど

おふとん P 歌データベース夏目悠李/男声データベース御丹宮くるみデータベース用のレシピ2020年11月4日に NNSVS の公式ポジトリにマージされたため、前2者に関しては公式レシピを使用することが推奨される。御丹宮くるみデータベース用のレシピに関しては上述のくれいじー氏のリポジトリで収録音レシピ善が行われており、その成果を享受したい場合はくれいじー氏のレシピを使用すると良い。

チュートリアル、解説記事など

関連項目

この記事を編集する

掲示板

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2024/05/22(水) 13:00

ほめられた記事

最終更新:2024/05/22(水) 13:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP