AI歌唱ジェネレータNEUTORINOをMacのGarageBandを使って作成する

Generator は最新の歌声生成AIを用いた歌声シンセサイザー、NEUTRINO Diffusionを紹介します。なんとフリーウェアです。Windowsでの作成方法を紹介している記事はあるのですが、Macの場合は以外と少ないようです。

MacにはGaragebandという音楽作成ソフトが無料で提供されていて、App Storeから手にいれることができます。機能的には素晴らしいソフトなのですが、NEUTORINOと組み合わせて使うには、Midi形式での出力ができないという欠点があります。この記事では、その辺りの回避方法なども詳しく紹介します。

Garagebandでメロディーを作る

まずはGarageBandで楽曲とメロディーを作ります。

GarageBand入門などで検索すると色々出てきます。iPhone やiPad版などが多く出てきますが、Mac版を探しましょう。こちらなどが入門者にはわかりやすいと思います。神戸松蔭女子学院大学 GarageBandで曲作り

こんな感じでメロディーをつけてみました。一番上の段の「Vocal」のところがメロディーです。

メロディー部分を書き出す

メロディーを作成できたら、この部分にNEUTORINOで声をつけるために書き出す必要があります。ただし、問題はGarageBandがMIDI書き出しの機能を持っていないことです。

そこで、素晴らしいアプリ「GB2MIDI」を紹介します。

https://github.com/larkob/GB2MIDI

githubに公開されていて、Macのアプリバージョンもダウンロードすることができるのですが、7年前から更新が止まっていて、最近のMacでは動作させる事ができません。その代わり、JavaScript版も同じページで公開されています。

https://larkob.github.io/GB2MIDI/index.html

このページを開くと、GarageBandのループファイルをMIDIファイルに変換する事ができます。

ちなみに、ローカルで動作させたいという場合は、index.htmlのページのHTMLをダウンロードするか、テキストファイルにコピーして拡張子をHTMLにすると動作します。

どのように使うのか解説します。

まず、GarageBandで作成したメロディーの使いたい部分を選択して、[ファイル]>[リーションをループライブラリに追加] をクリックします。

下のような画面が出てきます。適当な名前をつけて、タイプは「ワンショット」を選択して、「作成」をクリックします。

こうやって書き出したファイルは、場所がとてもわかりにくいのですが、

ハードディスク>ライブラリ>Audio>Apple Loops>User Loops>SingleFiles> 以下に.aifの拡張子で書き出されています。

.aifファイルとして書き出すことができたら、これを先ほどのサイトから読み込ませませて、「Convert」をクリックします。

「Convetrt」をクリックすると、ダウンロードフォルダにZIP化されたMIDIファイルがダウンロードできます。ZIPは解凍しておきましょう。

MIDIファイルに歌詞をつける

無事にMIDIファイルを作成できたら、今度は歌詞をつけます。NEUTORINOはMusicXMLという形式の楽譜ファイルを元に歌声を生成してくれるのですが、この楽譜ファイルの作成に、公式サイトではMuseScore(https://musescore.org/ja)が推奨されています。

ただ、これはMac特有の問題なのか、小節を跨ぐタイの部分でなぜか音がブツギレになってしまう問題にぶつかりました。MuseScore自体は美しい楽譜を作成できる素晴らしいソフトだと思うのですが、Macで利用できる他の方法を今回は当たりました。MuseScoreを使った楽譜ファイルの作成方法には、こちらのサイトが参考になりました。

Macで使える楽譜作成方法

Macで作成に使える方法をいくつかピックアップしました。それぞれ特徴を紹介しますので、いろいろ試してみてください。

midi-musicxml-seq

UIエンジニア+フロントエンジニアのロモットさんが作成した素晴らしいインターフェイスです。

https://note.com/romot/n/nf3a7346bfa02

前工程でダウンロードしたMIDIファイルを読み込ませます。

すると、なんということでしょう!音階がピアノロールに表示され、ひらがなで歌詞が入力できるようになりました。あらかじめ「ラララ」が設定されているのも優しい設計です。歌詞入力画面から歌詞を流し込めます。この機能があるおかげで、ひらがなで記述した歌詞をコピペでバックアップして、MIDIファイルを微調整しながら作り込めるのが素晴らしいです。歌詞が入力できたら、ダウンロードをクリックするだけです。

midi2MusicXML

つぎに紹介するのはkaibaさんが作成されたMac用アプリ midi2musicxmlです。

用意したMIDIファイルと、あらかじめテキストエディタなどで歌詞を入力したテキストファイルを用意しておいて、それぞれ選択します。「プレビュー」をクリックするとテキストファイルの中の歌詞が表示されます。MIDIファイルの中の音符と歌詞の文字が割り当てられたか確認して、問題なければ「生成」をクリックします。

これだけで、歌詞ファイルと同じフォルダにMusicXMLファイルが作成されます。

出力されたMusicXMLファイルをMuseScoreで開いてみると、歌詞が割り当てられているのがわかります。

(有償)Staventabs Pro:Music Notion

AppStoreでMusicXMLを編集できるソフトはないかしら?と探してみてみつけたのが、こちらのアプリです。

MIDIファイルを読み込んで、画面右上のLyricsを選択することで、音符に歌詞がつけられました。

エクスポート機能のなかにMusicXMLの文字が! しかしこの星印が気になるぞ!

MusicXMLでエクスポートするには課金が必要なようでした。

Note Flight

ブラウザで楽譜を作成できるサービスです。歌詞の入力とMusicXMLでのエクスポートもサポートしています。ただ、どうにも歌詞入力のこつがつかめませんでした。

https://www.noteflight.com/

Uta for matix3

https://sdercolin.github.io/utaformatix3/

(有償)Flat

最後に紹介するのは、FlatというMusic notation platformのサービスです。無償版だとクラウド上に保存できる楽譜の数に制限はありますが非常に操作性の良い楽譜が作成できます。ただし、MusicXML形式で出力するには課金が必要です。

https://flat.io/

「スコアをインポート」から、MIDIファイルを読み込ませます。

読み込まれるとリストに表示されるのでクリックして開きます。

美しい五線譜としてMIDIファイルのメロディーが表示されました。

テキスト、アノテーションをクリックすることで、音符一音ずつに歌詞を割り当てていく事ができます。音符を追いかけるたびに音がでるのでわかりやすく、エンターキーで次の音符に進んでくれるので入力も捗ります。

入力ができたらMusicXML形式でエクスポートするのですが、ここで課金が必要・・・。

NEUTORINOでMusicXMLファイルを使って音声化する

いくつかの方法でMidiファイルからMusicXMLファイルに歌詞を割り当てる方法を紹介しました。いよいよ、MusicXMLファイルを元に音声化します。

NEUTORINO の公式サイト https://studio-neutrino.com/ から、Mac版のZIPファイルをダウンロードしたら解凍します。

ZIPを解凍すると、下記の図のような階層構造になっています。作成したMusicXMLファイルは、scoreフォルダの下のmusicxmlフォルダに投げ込んでやります。

こんどは、NEUTORINOフォルダ直下のRun.shファイルを、テキストエディタで開きます。

編集するのは、7行目の部分です。musicxmlフォルダに保存したファイルの名前に変更してやります。今回はフィルの名前が「score.musicxml」でしたので、「score」に修正して保存します。

テキストエディタで保存ができたら、Macのターミナルを開きます。シェルであるzshを指定したあと、スペースをひとつ開けて先ほどのRun.sh のパスを書いてやります。ターミナルにRun.sh をドラッグ&ドロップすれば、自動的にパスを含めて記述されるので簡単です。

あとはエンターキーを押してしばし待ちます。無事に「END」という表示が出れば完了です。(うまく動作しない場合、ほとんどはRun.shファイルに指定したファイル名が誤っているか、MusicXMLファイルのすべての音符に歌詞の文字を割り当てられていないのが原因です。)

処理が終わると、outputフォルダ以下に複数のファイルができています。この中の今回の場合、MusicXMLファイルの名前と同じ score.wavが音声ファイルです。

早速できた音声ファイルを聞いてみましょう。

なかなかいい感じですが、メロディーの間に休符を入れすぎたようで、途切れ途切れのぎこちない歌唱になってしました。修正が必要ですね。

今回のMusicXMLファイルは、紹介したmidi-musicxml-seqを使って作りました。

https://romot-co.github.io/midi-musicxml-seq/

こちらは、入力した歌詞をひと繋がりで表示できるので、文字部分をコピーしておくと後で一気に流し込みができます。

WAVファイルの歌唱を聞きながら、気になる部分を修正。今回は休符をなくすように8部音符を4部音符に変えるなどして調整しました。

修正ができたら、この記事の最初のあたりで紹介したように、リージョンをループライブラリにワンショットで追加して、出力されたaifファイルを GB2MIDI でMIDIファイルに変換して、再び midi-musicxml-seq で開き直します。

先ほど、バックアップしておいた歌詞のひらがな部分を流し込んで、MusicXML形式にしてダウンロードします。

できたら、同じようにNEUTORINOのmusicxmlフォルダに保存して、再度ターミナルからzshシェルでRun.sh を実行します。MusicXMLファイルの名前が変わっていた場合には、Run.shファイルの中身を修正するか、MusicXMLファイル自体の名前を最初に使っていたものに修正すると良いでしょう。

修正してできたWAVファイルを、GarageBandに配置して曲と一緒に聞いてみましょう。

だいぶ良くなりました! 

NEUTORINOで曲を作ろう!

いろいろなファイル形式を経るので複雑なようですが、結局のところ歌詞付きの音ファイルであるMusicXML形式のファイルをどのようにして作るか、という部分に集約されます。

今回は基本的に費用がかからないようにGarageBandとその他無償公開されているツールを利用しましたが、CubaseやLogicなどでは直接歌詞入力とMusicXML形式での出力にサポートしているようです。

NEUTORINOはターミナルをつかうCUIのアプリケーションですが、設定変更の項目もほとんどありませんので、ぜひチャレンジしてみましょう。

曲を宣伝します

ところで、DDさんはその昔、初音ミクでいろいろ曲を作っていました。昔の曲はニコニコ動画にアップロードしてありますので、よかったら聞いてコメントを寄せていただけると小躍りして喜びます。よろしくお願いします。