ロゴ ロゴ

やろう!NEUTRINO (AIきりたん)

記事概要

“AIきりたん”というワードをきいたことがあるでしょうか。
私は以前このソフトウェアに触れてみたところ, 非常に簡単に使えて楽しかったので紹介していきます。歌を歌わせることが目的のソフトですが, 「歌わせたい歌なんかない!」という方でもサンプルデータをいじったりして歌わせるだけでも十分楽しめるとおもいます。
私は音楽の知識が皆無なので間違ったことが書いてあるかもしれませんが, 気づいたことがあったらコメント欄に書いてくれたらうれしいです。

NEUTRINO・AIきりたんとは

https://n3utrino.work/ (オフィシャルサイト)
NEUTRINOとはSHACHI氏という方によって作成された, 楽譜と歌詞のデータを与えるだけで歌声を生成してくれる歌声シンセサイザーであり, なんと無料で公開されています。
合成の元となる歌声のライブラリは現在「東北きりたん」と「謡子」の2つがあり, それらもソフトに同梱されています。これらの元データからニューラルネットワークを用いて発声タイミング・音の高さ・声質・声のかすれ具合などを推定し, 歌声を生成します。このうち東北きりたんを用いたものは「AIきりたん」と呼ばれています。

それぞれの音声ライブラリ

東北きりたん

東北きりたんとはVOICEROIDとしても発売されており, そちらと同じ声で歌を歌わせることができます。
VOICEROIDとは, 文章のデータを入力するだけで人のように発声した音声データを生成することができるソフトウェアのことで, これを用いたゲーム実況や解説動画も多くあるのできいたことがある方も多いとおもいます。
東北きりたんをはじめとしたVOICEROIDは有料のソフトウェアですが, NEUTRINOで生成した歌声は東北ずん子のガイドラインに沿っての利用ができます。
NEUTRINOで使う場合, 得意なBPMは140~190, 得意なジャンルポップソング・アイドルソングとのことです。
↓東北きりたんサンプル

謡子

謡子(ようこ)はもともとはSinsyという技術をもとに作られた音声ライブラリです。
Sinsyとは “HMM-based Singing Voice Synthesis System” の略で, 名古屋工業大学国際音声技術研究所が開発した歌声合成技術で, このシステムはWeb上で, かつ無料で使うことができます。 http://www.sinsy.jp/

名古屋工業大学国際音声技術研究所は「さとうささら」で有名なCeVIOという音声生成ソフトも作っていて(http://cevio.jp/), SinsyとCeVIOはともに隠れマルコフモデル(HMM)という手法で音声の合成を行っています。
(個人的な話ですが, 2年の授業でマルコフモデルの話がでてきたのでびっくりしました。このように実際に使われている場面がわかると学習意欲が高まる)
NEUTRINOで使う場合, 得意なBPMは90~110, 得意なジャンルは童謡・バラードなどとのことです。
↓謡子サンプル

ざっくりとした使い方

  1. まずは制作者様のかっこいいサイト(https://n3utrino.work/)からファイルをダウンロード・解凍します。まあまあ大きいので時間がかかります。
    解凍したらREADMEを読みましょう。以下の手順説明はそこに書いてあることとほとんど同じです。
    また, 音声はオンラインで合成する方法もありますが, ここでは説明しません。(READMEファイル内に解説がのっています)

  2. (動作確認 飛ばして手順3にいってもよい)
    はじめoutputフォルダ内には何もありません。それを確認したらRun.batというファイルをダブルクリックし, 実行します。数秒後にoutputフォルダにsample1_syn.wavという音声データが生成されていたら正常に動作しています。

  3. NEUTRINOは楽譜のデータを入力とし, 音声データを出力するソフトウェアです。ここで入力するデータの形式は基本的にmusicxmlというものなので, この形式の楽譜データを作るためのソフトをダウンロードします。ここでは, 推奨されているmusescoreというソフト(無料)を使います。
    (https://musescore.org/ja)
    musescoreを用いた楽譜の作り方は後述。
    また, NEUTRINO>score>musicxmlには初めから3つのサンプルデータが入っているので, まずは3つ歌わせてみるのもいいかもしれません。このデータをmusescoreの画面にドラッグアンドドロップすると楽譜がみれ, 編集することもできます。
    もちろん, すでに歌わせたい楽譜のファイルを持っている場合はこの作業は必要ありません。

  4. scoreというファイルの中にmusicxmlというファイルがあるので, そこに楽譜をmusicxml形式で保存します。 musescoreの画面でそのままCtrl+Sで保存すると別の場所にmusicxmlとは異なった形式で保存されると思うので, ファイル→エクスポートで所定のフォルダを指定し, 保存してください。わかりやすい名前にしておくといいです。

  5. 楽譜データの保存まで終わったらNEUTRINOフォルダ内にある, 「Run.bat」というファイルをメモ帳などのテキストエディタで開きます。

    開くとはじめは↑のようになっているはずです。むずかしそうに見えますが基本的にいじるのは赤線を引いた部分のみです。
    開いたら6行目の “set BASENAME=sample1″と書いてある部分, =の右側を手順2で保存した楽譜のファイル名に変更します。ここで, 拡張子(.musicxml)は入力しないでください。誤って入力してしまった場合, 後で出力するときにエラーとなります。
    編集したら忘れないように上書き保存をしておきます。

  6. ここまでできたらいよいよ出力を行います。といっても先ほど編集したRun.batというファイルを実行するだけです。コマンドプロンプトでNEUTRINOフォルダのディレクトリにいき, “Run.bat”と入力して実行します。この作業はNEUTRINOファイルの中にあるRun.batをダブルクリックすることでも簡単に実行ができますが, こちらの方法だと処理終了時(エラーで出力しない場合も)に自動でコマンドプロンプトを閉じてしまいます。エラー時には”error: Can not open file.”のように内容も表示されるので, 前者の方法をおすすめします。

  7. 処理が終わったらNEUTRINOフォルダ内の, outputというフォルダに歌声のwavファイルが生成されます。生成されてない場合, Run.batの実行にエラーが出ているか実行中です。楽譜データが長かったり複雑だと実行に時間がかかるので, 気長に待ってください。はじめは短いもので実行してみるといいです。

  8. 完成!お疲れさまでした。できあがったものを聴いてみて違和感があるところを修正しましょう。

  9. 同じ楽譜データでも, Run.bat内の値を変えることで違った出力が得られるのでもっと遊べます。以降で詳しく説明しておきます。

    • ・7行目の”set NumThreads=3″という部分は使用するプロセッサ数を指定でき, 数を小さくすると動作が軽くなり, 実行時間が長くなるんだと思います。(私はいじったことがありません。)
    • ・10行目の”set SUFFIX=musicxml”という部分は, musicxmlではなくxmlファイルの楽譜データを入力する時にxmlと変更します。基本的にいじる必要はないです。
    • ・13行目の”set ModelDir=KIRITAN”という部分の”KIRITAN”を”YOKO”に変更すると歌声を東北きりたんのものから謡子のものにできます。

    • ・16行目の”set PitchShift=1.0″という部分は出力される音声の音の高さを調節できます。周波数の比で設定するので2.0とすると全体が1オクターブ高く, 0.5とすると1オクターブ低くなります。半音上げたい場合は12√2(≒1.059463094)を設定します。1音あげたい場合は(12√2)の2乗 = 6√2を設定するので, 1.122462048とします。逆に半音下げたい場合は12√2(≒1.059463094)の逆数を設定すればよいです。
      キーを変えたい場合は楽譜からでも編集ができますが, 出力された音声に無声化や早口部分で詰まる感じになるなど, うまくいっていないときに以下の方法でここをいじるとうまくいく可能性があります。
      わざと楽譜データの音程をn音分高く設定しておき, このPitchShiftの値をn音分低くすることでもとの音程のままで音声がランダムに変わるので, (悪くなる可能性もありますが)改善することもあるというしくみです。
      https://km4osm.com/neutrino-idea/
      こちらのブログではこのテクニックが調声ガチャと称して紹介されています。他の歌声合成ソフトでも行われるメジャーな方法らしいです。

    • ・17行目の”set FormantShift=1.0″は声質を変えることができます。上げると子供っぽく、下げると大人っぽくなります。READMEファイル内には”0.85-1.15辺りがお勧めです。”とありますが, 個人的には1.1くらいを上回ると人っぽさがなくなってくる気がしました。(もちろん曲にもよりますが)
      ↓0.85とした場合

      ↓1.15とした場合

musescoreの使い方

musescorehttps://musescore.org/ja/handbook/3/basics
↑の公式のページをみればわかりますが, 簡単に説明します。
前述したように, ダウンロードしたNEUTRINOのファイルにはmusicxml形式のサンプルデータが入っているので, これを開いていじって操作に慣れるのもいいかもしれません。musescoreからファイル→開くで選択するか, 直接データをドラッグアンドドロップしましょう。
また, musescoreはmidiファイルを読み込むことができます。ネット上ではmidiファイルが無料で配布されていたりするので, 自分で遊ぶ分には適当にダウンロードし, インポートして歌わせてみるのもいいと思います。ただ, NEUTRINOを使うのには歌詞のデータも必要なので, そのような場合歌詞は自分でうつ必要があります。
また, musescoreには声部というシステムがあり, これを分けることでソプラノ, アルトのようなパート分けができます。便利な機能なのでしょうが, NEUTRINOは楽譜データの声部1しか認識してくれないため, ダウンロードしてきたファイルを読み込んで声部が分かれていた場合, 手作業で調整する必要があるので注意してください。音符の選択時に色が青くなるのが声部1で, 緑になるのが声部2です。


楽譜を新規作成する場合, はじめにタイトル・サブタイトル・作曲者などを入力する欄が表示されますが, これは入力してもしなくてもいいです。もちろん後からでも変えることができます。
次に「テンプレートファイルの選択」と表示されますが, これは一般のト音記号を選びましょう。もしヘ音記号を使いたい場合あとで変更します。

その後は適切な調号を選択します。はじめは何も書いていないものが選択されているので, よくわからない方はそのまま完了を押して楽譜を作成するといいと思います。(私はよくわかってません)

楽譜を編集しているときはこまめにCtrl+Sで定期的に保存しておきましょう。

musescoreで音符を入力していくのに重要なのが音符入力モードの存在です。エディタ上でNキーを押すと音符入力モードとなり, もう一度Nキーを押すことで音符入力モードから抜け出せます。音符入力モード上で音符を置きたい部分をクリックすることで音符を配置できます。また, 音符入力モード上でキーボードの2, 3, 4, 5, 6, 7キーを押すことで, 置く音符をそれぞれ32分音符, 16分音符, 8分音符, 4分音符, 2分音符, 全音符に切り替えることができます。さらに, 音符入力モード上で.(ピリオド)を入力すると置く音符に付点をつけることができます。(つけると音の長さが1.5倍になる)もう一度ピリオドを入力することで戻ります。
音符は同じタイミングに2つ同時に設定することもできますが, その状態でRun.batを実行するとエラーはでないものの出力がおかしくなります。
また, 音符を入力する場合はクリックでなく, aからgまでのキーでも入力できるので(aがラ), 音楽に慣れてる人はこちらの方が早く入力できるかもしれません。

音符を入力したら, 適切な位置にブレスを設定します。NEUTRINOで生成される音声は, 同じ音符を羅列した場合でも同じ歌声を繰り返すのではなく, 息切れのようなものも多少再現されるようなので, 適切にブレス記号を挿入していきます。


画像右上の ’ の形のものを使用します。他のものは反映されません。
このとき, musescoreでは音符か休符を選択してブレス記号を配置しますが, 休符を選択して配置した場合ブレス記号が歌声に反映されないようなので, ブレスをしてほしい部分の前の音符を選択した状態でブレス記号をクリックしてください。私はあまりブレスをいれずに歌わせまくってましたが, 作者の方によると「学習データの関係上、ブレス記号は特に効果があります。」とのことなのでいれてください。まずはいれずに出力してみて, その後いれて差をみてみるといいかもしれません。musescoreの性質については以下のページでわかりやすく解説されています。
https://n3utrino.work/332/
このページに書いてある通り, 強弱記号やクレッシェンドなど出力に反映されない楽譜情報があるので気を付けてください。

ここまでできたら歌詞を入力していきます。musescoreでは音符の1つ1つに歌詞を1文字ずつ入力していきます。(これが面倒)
やり方は, 歌詞を設定したい音符をクリックして選択し, Ctrl+Lです。文字を1つ入力したら半角スペースを入力することでそのまま次の音符の歌詞を入力できます。以下に歌詞の入力で気を付けることをまとめておきます。

  • ・2文字以上入力した場合はタイミングを自動で推定して発声してくれるようですが, 2文字以上入力した場合はタイミングを自動で推定して発声してくれるようですが, 基本的にやらない方がいいです。1文字 +「っ」などは自然に発声されます。
  • ・入力する1文字はひらがなでもカタカナでも変わりません。私ははじめはちゃんともともとカタカナの歌詞はカタカナで入力しようと試みましたが, 面倒だったのでやめました。
  • ・ー(伸ばす音)を入力した場合, 前の文字の母音が自動で発声されます。ただ, 例えばカレーと入力した場合, レを伸ばすわけではなくカレエと発音され不自然なので, レの音符をのばしたほうがよいです。
  • ・助詞の「は」や「へ」はもちろん発音通りに「わ」, 「え」と入力します。歌詞の入力は頭を使わずに淡々とやりがちなので, 意外と見落として出力後に気づいたりします。
  • ・楽曲中には文字通りに発音しない文字もあるので気をつけて入力してください。(「希望」を「きぼお」と発音するなど) これも気を付けてないと出力してから修正するはめになります。

おわり

歌を歌わせるソフトウェアというとVOCALOIDを思い浮かべる方が多いとおもいますが, VOCALOIDは調声を丁寧にやらないと人のような声にならないらしいので向こうを触ったことがある人は簡単に歌声が生成できて驚くらしいです。私は音声合成なんていままで全くやったことがなかったのでこの分野について詳しくはないですが, 無料で公開しているソフトでここまで簡単に歌声が合成できることにはかなり感動しました。(なんなら最初にサンプルデータを歌わせた時点で感動しました。)
現状は元音声のライブラリはきりたんと謡子がありますが, 他の音声(特に男声)にも対応してくれると嬉しいですね。

長々と記事を書いてしまったので面倒そうに見えるかもしれませんが, 細かいところにこだわらず単純に歌わせるだけならすぐできるので興味を持って触ってみてくれるとうれしいです。

💬 みんなのコメント

  1. トイレの紙 トイレの紙 より: 2020/05/27(水) 21:37

    いいね

コメント入力

関連サイト