【耳コピ自動化】機械学習で三味線の自動採譜をしてみた

数年前に「人工知能に津軽三味線の自動作曲をさせてみた」という記事を投稿しました。
GoogleのMagentaプロジェクトを利用して、津軽三味線の曲を学習させ、それを元に自動作曲・楽譜作成をさせてみたという記事です。

このMagentaプロジェクトでは、自動作曲以外にも、ピアノの音源データからmidiデータを作るというOnsets and Frames: Dual-Objective Piano Transcriptionも公開しています。
つまり自動採譜(耳コピ)ができるということです。
ピアノの自動採譜ができるなら、他の楽器にも応用できるのではないか?と思い、三味線の自動採譜を試してみました。

目次

環境構築

公式サイトの手順を元に、まずは実行環境を作ります。
今回は、Ubuntu 20.04 LTSでMagentaの実行環境を用意していきます。

インストール済のパッケージは最新化しておきます。

関連パッケージをインストールしていきます。
各種コマンドや、Python関連パッケージをインストール。

必須パッケージをインストール。

Magentaをインストール。

環境によっては、Pythonのモジュールで更新が必要なものがあるので、もしエラーが出たら適宜バージョンアップ。

gitリポジトリから、Magentaの各種プログラムをダウンロード。

公式の手順に従いセットアップ。

midiデータの作成

いよいよ、midiデータを作成していきます。
まずは、公式の手順に従い、解析時に使われる学習済データをダウンロードします。
ピアノ用データのようですが、まあ良いでしょう。

採譜したい音源のwavファイルを用意します。
今回は、津軽民謡のひとつであるりんご節の音源を用意しました。
こんな感じの曲です。

これを、Magentaに入力します。

wavファイルと同じディレクトリ内に、midiファイルが生成されます。

こんな感じのファイルが生成されました。
メロディ部分をしっかり認識してくれました。予想以上の精度で、正直驚きました!
ノイズもそれなりに拾っていますが、この程度なら手動で修正すれば、楽譜作成は可能でしょう。

ちなみに、他の音源もいくつか試してみたのですが、丁寧ではっきりした演奏(教習用の音源など)は精度が高く、逆に三味線の共鳴音が強めの音源などはノイズを多く拾っていました。
音が明瞭で、人間の耳にも聞き取りやすい音源は、認識精度も高いようです。

楽譜の作成

midiデータを作成できたら、これを和楽一筋で楽譜にします。
まず和楽一筋でmidiファイルを開きます。西洋五線譜トラックとして読み込まれます。

和楽一筋

高音部にノイズが多く出ています。これは手作業で消してしまいましょう。
不要な音符をまとめて削除して、必要な音符だけ残すよう修正します。

和楽一筋

これを、西洋音階・和楽器譜変換機能で三味線譜に変換します。
調律は、今回の場合は「二上り 五本」がちょうどいいです。

和楽一筋

運指の調整などを行い、最終的にこのような楽譜が作成できました!

りんご節
りんご節

生成されたmidiファイルの音符が細切れになっていたため16分音符が多めになっていたり、まだノイズ音符が残っていたりしますが、主要な勘所は分かるので個人の練習用として使う分には十分でしょう。

まとめ

音声データから自動採譜を行い、三味線の楽譜を作ることができました。
夢物語と思われてきた自動採譜がここまで出来るようになっていたとは、驚きです。
今回はピアノ用の学習済データを使いましたが、和楽器用のデータを用意できれば、さらに精度が高くなりそうです。

ピアノの演奏動画から楽譜を自動作成 ディープラーニングで 京大が技術開発」という記事にもあるように、近年は国内外で盛んに研究が行われており、今後はさらに精度の高い実用的な自動採譜が期待できます。
音源さえあれば、さまざまな曲を簡単に楽譜にできる時代が近付いてきたと思います。

関連記事


コメントを残す

メールアドレスが公開されることはありません。