音楽プログラミングの超入門(仮)

Python / 音楽情報処理 初心者が、初心者にも分かるような記事を書きたい。

ボーカル抽出法一覧

flowchart

photo by Grant

ボーカル抽出

世の中に存在する多くの楽曲は歌声(ボーカル)と伴奏から構成されています。例えば、普段街中で聴くJポップなどはほとんどがボーカル入りの楽曲です。このボーカルと伴奏を分離するタスクを、一般的にボーカル抽出であったり歌声分離などと呼びます。

ボーカル抽出は、1. カラオケを利用したボーカル抽出2. ステレオボーカル抽出3. モノラルボーカル抽出の三種類に大別されると考えています。一つ目はボーカルを抽出したオリジナルの音源とそのカラオケ音源が手元にある場合の抽出法で、基本的にはオリジナルからカラオケの差分を取ることでボーカルを抽出します。二つ目はオリジナル音源がステレオである場合の抽出法で、歌声が中央に定位していることを利用して抽出を行います。三つ目はオリジナル音源がモノラルである場合の抽出法で、最も難しいタスクです。

ボーカル抽出のため、多くの無償・有償ソフトウェアが提供されています。カラオケを利用したボーカル抽出としては、歌声りっぷ(無償ソフトウェア)が有名なんじゃないでしょうか。何度か使用した感じ、それなりにうまく動いていたように思います。ステレオボーカル抽出を利用したものでは、SoundEngine Freeボーカルキャンセラー(ともに無償ソフトウェア)などがあります。Rolandが提供しているR-MIX(有償ソフトウェア)では、ステレオボーカル抽出と周波数帯域の制限を組み合わせて歌声や楽器音の抽出を行うことができます。

今後、こういったソフトウェアで利用されている技術の理解のため、基本的なアルゴリズムの解説、実装を行っていきたいと思います。本記事では、記事にする(予定の)アルゴリズムの一覧を提示しています。いわゆるロードマップみたいなものでしょうか。コンプリートするのがいつになるのかは分かりませんが・・。

手法一覧

カラオケを利用したボーカル抽出

  1. 逆位相付加
  2. 周波数領域差分
  3. セミブラインドICA

ステレオボーカル抽出

  1. センターキャンセリング
  2. センターキャンセリング+周波数帯域制限(R-MIXみたいな)

モノラルボーカル抽出

  1. 周波数帯域制限
  2. 多段HPSS
  3. REPET系

こんな感じでしょうか。モノラルボーカル分離はかなり難しいので、基本的に学術的な論文のアルゴリズムを使わないとほとんど効果がないと思います。

まとめ

本記事は、ボーカル抽出法の一覧のみとなっていますが、随時各アルゴリズムの解説記事を書いていこうと思っています。とりあえず、ボーカル抽出を行ってみたい方は、上記のソフトウェアをダウンロードして使ってみるといいんじゃないでしょうか。結構面白いです。