不器用貧乏

広く浅く手を出したり出さなかったりする.

Python+librosaでお手軽メロディ抽出

1.はじめに


本GistはFUN Advent Calendar 2018,16日目の内容です.
ギリギリ間に合いましたね. adventar.org

昨日の記事はぜろちゃんの線路ネットワークを解析してみたでした.
町田市は神奈川!勉強になりましたね. cer0un0.hatenablog.com

自己紹介


名前: さとり(Twitter
研究: 音楽情報処理, メドレーとか楽曲認識の研究してます
趣味メドレー,マッシュアップ,麻雀(Mリーグ),ガチャ


この記事の内容


楽曲の.wavファイルから,音響情報処理をしてメロディを抜き出してみました.
なるだけ難しいものは使わず,簡単な実装にした(ほんまか?)ので,音楽をプログラミングで扱う,ということに触れる機会になればと思います.

実装は,Python3.6と,音響情報処理ためのライブラリのlibrosaを主に使いました.

2.実装してみた


Gistに.ipynb形式でコード置いときました
light_melody_extraction.ipynb · GitHub

jupyter上で再生できるように実装したのに,Gistで再生できなくて泣いた. jupyter環境ある人はお手元で見てみてください.

元楽曲とメロディ抽出した結果を重ねたやつ置いときますね.

  • 元楽曲
  • 元楽曲+メロディ抽出結果



3.おわりに


音の高さ(オクターブ)が考慮されてなかったり,無音の区間が考慮されてなかったり,叩けばホコリがでる結果となりました. が,簡易な実装でなんとなくメロディ抽出できてる...?くらいの結果になったかと思います.

音楽をプログラミングで扱うことに少しでも触れる機会になれば幸いです.
音響情報処理楽しいから(ほんまか?)みんなやろう!

明日は僕の研究分野の先輩であるKieferさん
すごい音楽情報処理のことか,すごいわかりやすい機械学習・深層学習周りの技術か,パワポの使い方について書くと思ってます.