BEATWIZ 機能解説物語 – 第 4 回 最新 BEATWIZ 機能紹介特別篇:Constant-Q 変換を用いた和音解析の現状 –


こんにちは。事業開発室室長の増野です。

BEATWIZ誕生秘話を解説した、BEATWIZ機能解説物語。
第1話は『手拍子の秘密』、第2話は『楽曲の盛り上がり度とフレーズ解析』、
そして第3話は『ボーカル分離と 主旋律の楽譜生成』に関して、簡単に説明しました。

全3回の予定だったBEATWIZ機能解説物語ですが、今回はおまけの特別編として、
表題のとおり、最新のBEATWIZに搭載された『和音解析の現状』に関して、簡単に説明していきたいと思います。
この『和音解析』ですが、従来の解析方法を進化させたものではなく、解析手法を根本から見直し、
全く新しい『Constant-Q変換』という解析手法で楽曲を解析するものです。

BEATWIZが生まれて15年、今回実装した全く新しい『Constant-Q変換』とそれに伴う『和音解析』は、
BEATWIZの歴史の中でも、非常に大きな進化です。
従来のBEATWIZとは全く別次元の解析能力を持ったBEATWIZが誕生したと言えるかもしれません。

今回はこの『Constant-Q 変換』という、超強力な新しい魔法の秘密を説明します。
ちょっとだけお付き合いください。

▲楽曲を入力するだけで和音構成とコード・調号・フレーズ・強弱記号を自動的に出力している様子です。

主旋律の楽譜生成(eMUTE)、作ってみたものの・・・

前回(第3回目)で説明したとおり、CEDEC2019で、歌入りの楽曲を入力すると、
歌の部分を分離して、主旋律の楽譜を取り出すeMUTEに関して講演しました。(https://cedil.cesa.or.jp/cedil_sessions/view/2048)
ところが、すでにCEDEC2019の講演の時点で、このeMUTEという解析システムには、
複数の大きな問題があることが分かってきたのです。

その問題点とは、以下の 5 点です。

  1. 聴感上は明瞭に主旋律が聞こえるが楽譜が出てこない
  2. ギター1 本に弾き語りのような、極めて単純な構成でも、お互いが干渉して楽譜がメチャクチャになる
  3. 聴きやすさのためにコーラスやディレイをかけた音声の場合、全く太刀打ちできない
  4. もちろん 2 人以上で歌っている曲は、全く歯が立たない
  5. 正答率が、ほぼ 0%まで極端に低下する曲の分野がある。

eMUTE の主旋律分析手順は以下のような流れとなっています。

問題点1,2は、上図の緑色で示した『歌声分離フィルター(CVS-HA)』の分離性能の悪さが原因でした。
問題点3,4は、上図のピンク色で示した『音程認識(AMDF)』が単音しか認識できないことが原因でした。
問題点5は、上図の赤色で示した『Post Filter(事後フィルタリング)』での2つの
『① 歌声の音程は瞬間的で大きな変動はない』、
および『② 4分音符で1オクターブを超える音程変動は無視』という仮定が成立しない曲
の分野で発生します。
その分野は『ヨーデル』であり、実際『ヨ―デル』の曲で、
ヨーデル独特の歌唱法を使った高速音程切り替えの部分を解析すると、正答率はほぼ0%となります。

さらにeMUTEで実装したパラメーターは20個もあり、そのどれもが(制作をした私には使いやすくても)、
ユーザーの方から見ると複雑怪奇なパラメーターの集合体であり、さらに調整に半日を要するという代物でした。
正答率も平均で60%程度と低く、しかも調整に半日かかるのなら
『耳コピを地道にやったほうが早い』という本末転倒な事象も発生しました。

さらに上記の問題点1-5を解決するような解決策のうち、高速かつ精度の高い方法は当時そう簡単には思いつかず、
八方ふさがりになってしまったのです。

離散フーリエ変換(DFT)の基礎に立ち返る

『困ったときは基本に帰れ』・・・よく言われる格言ですが、
今回、最初から音程解析には使えない、と決めつけていた離散フーリエ変換(DFT)の基礎に立ち返ってみました。

まず、サンプリング周波数44,100HzのCDの波形を、窓幅1,024でフーリエ変換した場合、
以下のように、512個の実数部と、512個の虚数部が出力されます。


512個の周波数領域(周波数ビン)それぞれの、利得(Power)と、位相(Phase)は以下の式で求まります。


この利得の部分だけを、グラフ化したのが、高級オーディオ機器やカーナビなどで見かける『スペクトラムアナライザー』です。
したがってこのスペクトラムアナライザーには、上記右側の位相成分が含まれません。


512個の周波数領域(周波数ビン)それぞれの中央周波数は、以下の表のとおりになります。


ここで重要なのは、このフーリエ変換の周波数分解能は、
サンプリング周波数を窓幅で割ったもの
であるということです。
(この例の場合は、44,100Hz(サンプリング周波数)/1,024(窓幅)=43.066Hz(周波数分解能))

そこで、以下のように逆に考えてみます・・・。

  1. サンプリング周波数を窓幅で割ったものが周波数分解能
  2. スペクトラムアナライザーは周波数分解能の整数倍の倍音の強さが表示される

ならば・・・

求めるべき音階(MIDI のキー番号)に対応する周波数から窓幅を逆算して、
音階ごとに異なる窓幅で利得を計算する
と、MIDI のキー番号毎(半音毎)の出力が得られるのではないか。
これこそが、Constant-Q 変換(Constant-Q Transform (CQT))と呼ばれるものです。

Constant-Q 変換の大きな特長

Constant-Q の実装方法、技術的詳細、それと高速化に関しては長くなるので、ここでは省略します。
後述するCEDiLのリンクから、私のCEDEC2020発表原稿がダウンロードできますので、それを参考にしてください。

ここでは、Constant-Q変換を利用した楽曲解析における大きな特徴を1つ説明します。

以下のConstant-Q変換を利用した楽曲解析結果の例は『ドミソ』、
すなわち『Cの3和音(トライアド)』を同時に鳴らした場合の結果です。

まずConstant-Q変換の特徴として、横軸がMIDIのノート番号になっています。
(対数周波数となっています)
さらに、ド(60)、ミ(64)、ソ(67)のところに綺麗に3本のピークが立っていることが分かると思います。
これは、従来のAMDF法では不可能な和音の解析がConstant-Q変換解析では可能ということを示します。

これは、和音解析・フレーズ解析を始めとする各種楽曲解析に対して、物凄く強力な武器となります。
BEATWIZは、Constant-Q変換という、ラスボス並みの強力な威力の魔法を手に入れた、といっても過言ではありません。

Constant-Q 変換を使った和音解析の現状

現在最新のBEATWIZの、Constant-Q 変換を使った楽曲解析(和音解析)には、以下の機能が実装されています。

▲和音解析ならびにコードネームの自動付与と結果の楽譜出力

▲調号(キーシグネチャー)と旋法(長調・短調)の解析

▲解析されたコードに基づいたフレーズとサビの解析および強弱記号の自動付与

現在の解析速度は、標準的スペックのWindows PC機で原曲1分あたり0.5秒程度となっています。
一般的な曲なら、おおむね2-3秒以内に解析が終わるでしょう。

今後、さらなる和音精度向上はもちろん、主旋律分離、アーティキュレーション符号の追加など、
さまざまな機能拡張と改良を施していきます。

さいごに

全4回にわたるBEATWIZの機能解説物語はいかがでしたでしょうか?

15年前に『自分の好きな音楽で、音ゲーと楽しみたい』という私の想いから生まれたBEATWIZは、
今ではこのような多種多様な楽曲解析ができるようになりました。
音ゲー制作のみならず、多種多様な音楽に同期した演出にもお使いいただけるツールになったと思います。

また、この進化のほとんどが『盛り上がり度と主人公の踊りを同期させたい』とか
『打楽器の発音位置を知りたい』といった、皆さまの声を反映して実装していったものです。
まさに『皆さまと共に成長してきたBEATWIZ』。
これまでのご支援に感謝いたしますとともに、これからも、暖かく見守っていただければと思います。

BEATWIZのお問い合わせはこちら

参考文献


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です