NNSVS 単語


ニコニコ動画でNNSVSの動画を見に行く

エヌエヌエスブイエス

5.8千文字の記事
これはリビジョン 2862387 の記事です。
内容が古い・もしくは誤っている可能性があります。
最新版をみる

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

概要

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

公式が提供しているのは東北きりたん、謡子、JSUT (Japanese speech corpus of Saruwatari-lab)PJS (Phoneme-balanced Japanese Singing-voice corpus)おふとん P 歌声データベース夏目悠李/男声歌声データベース御丹宮くるみ歌声データベース用の 7 つのレシピだが、他に有志により 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 程度の労力で利用可能であると推測される。

Google Colaboratory から使用する

  • 長所
    • 自分の PC の GPU が非 NVIDIA 製品である、ディスクの空き容量が少ない場合でも NNSVS を試すことができる
    • 有志の作った Jupyter Notebook ファイル (例: NNSVS で おふとん P 歌声データベースを使う) を使えばマウスでクリックするだけで歌声合成を試すことができる
  • 短所
    • 連続使用 12 時間の制限があるため、複雑なモデルを試しづらい
    • Google ドライブの容量は Gmail と共用なので課金して容量を拡張しないとすぐに容量オーバーになる
    • 歌声データベースや楽譜 (MusicXML ファイル) をいちいち Google ドライブにアップロードするのが面倒

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

  • 長所
    • Google Colaboratory のような時間制限や容量制限がなく好きなときに好きなだけ歌声合成できる
    • 作者の山本りゅういち氏の開発環境と (おそらく) 同一のため、環境の違いによる問題を避けられる
  • 短所
    • Linux のインストールや使い方など、歌声合成とは直接関係ないところで苦労する可能性がある

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

  • 長所
    • Google Colaboratory のような時間制限や容量制限がなく好きなときに好きなだけ歌声合成できる
    • Linux を直接インストールするのと違い Windows ストアから手軽に導入できる
    • Windows Insider Preview に参加していると WSL2 で CUDA を使用できる
    • WSL 上に NNSVS の環境構築するバッチとシェルスクリプトが存在する
  • 短所
    • WSL1 では CUDA を使用できず学習や合成が遅い
    • WSL2 での CUDA の利用はまだプレビュー版であり安定しないことがある

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

  • 長所
    • Google Colaboratory のような時間制限や容量制限がなく好きなときに好きなだけ歌声合成できる
    • 環境構築のためのmini-HOWTOが存在する
    • 環境構築を半自動化してくれるスクリプト (pnew - portable NNSVS environment for Windows) が存在する
  • 短所
    • 上述の mini-HOWTO やスクリプトを使用しても Windows, Unix, Python に関する幅広い知識が必要であり環境構築が一番難しい
    • 作者の山本りゅういち氏の開発環境と異なるため、環境の違いに起因する問題が生じる可能性がある

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

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

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

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

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

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

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

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

  1. PJS 用のレシピを自作の歌声データベースの名前でコピーする。
     cp -r egs/pjs egs/<自作の歌声データベースの名前>
    
  2. egs/<自作の歌声データベースの名前>/00-svs-world/run.sh を好きなエディタで編集する。最低限編集が必要なのは以下の通り:
    1. 6行目の spk を 自作の歌声データベースの歌い手の名前に変更する
    2. 15行目の pretrained_expdir は設定されていると東北きりたんの学習済みモデルからファインチューニングをすることができるが、必要なければ空欄にする。
    3. 69行目の util/data_prep.py の引数で PJS のディレクトリを指定している場所を自作の歌声データベースがあるディレクトリに変更する。
    4. 73-77行目は学習用、学習の検証用および最終的な評価用のデータのリストを作成している。自作の歌声データベースから好きな曲を最低2曲選んでそれぞれ学習の検証用および最終的な評価用に充てる。
  3. 以下のコマンドでレシピを実行する。
     bash run.sh --stage 0 --stop_stage 6
    
    もし自作の歌声データベースの単音素ラベルファイルと MusicXML から変換された HTS フルコンテキストラベルファイルの内容に齟齬がある場合は、レシピはステージ 0 (データの準備)の段階で停止する。よくある原因として音素の表記のゆれや撥音の前の母音の数 (Sinsy の撥音の扱いはクセがある)が挙げられる。両者の差異がなくなるまで単音素ラベルファイルか MusicXML ファイルを手作業で修正する。もしレシピが最後まで実行されると、学習の検証用および最終的な評価用に選んだ曲が egs/<自作の歌声データベースの名前>/00-svs-world/exp/<自作の歌声データベースの歌い手の名前>/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 上に情報交換用のサーバがあり質疑応答や制作物の供覧が行われている。また海外の UTAU 音源製作者やユーザも参加している。

関連リンク

公式/開発者関連

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

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

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

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

関連項目

  • 音声合成
  • ニューラルネットワーク
  • Sinsy
  • NEUTRINO

おすすめトレンド

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

急上昇ワード改

最終更新:2026/01/11(日) 03:00

ほめられた記事

最終更新:2026/01/11(日) 02:00

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

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

OK

追加に失敗しました。

OK

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

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

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

OK

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

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

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

TOP