和音 -kazune-: Web 上のコード進行データを用いた J-POP 類似検索ツール
田中 聡未

1

(指導教員：渡辺 知恵美)

はじめにとは，コード進行においてスタートにもゴールにもなりうる和声の中心となる機能である．ドミナントはトニックの５度上の和声であり，トニックに移行しようとする力が非常に強い機能を持つ．サブドミナントは，トニックの４度上の和声であり，ドミナントに進むことが多いがトニックに進むことも可能な機能である．
楽曲はほとんどがトニック，ドミナント，サブドミナント，時折ドミナントをトニックとしたときドミナントになるダブルドミナントの機能を持つコードから成り立っている．
（以下 T,D,S,DD とする）そこで我々は五度圏 [6] に従い，T を 0 として T からの距離を数値化することで楽曲の可視化を行った．例えば，図 1 のGLAY の「HOWEVER」の 1 行目のコードを数値化
すると，（E ，G ，C ，Am ）＝（4 ，1 ，0 ，0）となる．図 2 に五度圏と，C が T になる C メジャーの場合のコードの数値化の様子を示す

近年では，MP3 などの音声圧縮技術の発展や記憶媒体の大容量化に伴い，世の中の人々は大量の楽曲を所有し，様々な音楽を手軽に楽しむことが可能となってきている．それに伴い，大量の楽曲の中から求める楽曲をいかに検索するかといった研究に注目が集まっている．例えば，小杉ら [1] のハミング検索システムや後藤 [2] のサビ区間検出システムがあるが，これらは個人の楽曲を対象に行っているため多くの楽曲を検索することは難しい．これに対し，Web 上にある情報を利用した研究として，大坪 [3] の Gromi-Music があるが，アルバム名や楽曲名を基準に検索を行っているため音楽的要素を利用して類似した楽曲を検索することは出来ない．
そのため先行研究 [4] で長澤らは，Web 上からアーティスト名や楽曲名といった情報に加えて音楽的要素の一つであるコード進行を取得した．そして楽曲を細かく分割し特徴を抽出することで，楽曲の分析やユーザの嗜好にあった楽曲の推薦を行うシステムを提案した．しかし，特徴抽出に時間がかかり期待した結果があまり得られないという点や，楽曲の提示を行うインタフェースがコード進行のみを提示するものであり，ユーザ向けでないといった問題点があった．
そこで我々は，先行研究と同様にコード進行を中心とする Web から入手したデータを用いて新しい類似検索手法を提案する．また，ユーザが使いやすいインタフェースを目指し，保有していない楽曲でも検索可能で，ユーザの好みの楽曲に類似した楽曲を提示する
類似楽曲検索ツールの開発を行う．

2

図 2: 五度圏とコードの数値化

Web からのデータ抽出

本研究では，約 8000 曲の J-POP の楽曲の歌詞やコード譜を掲載しているサイト”J-Total-Music” [5] から楽曲名やアーティスト名といった情報と共にコード進行データを抽出する．コード進行とは楽曲の旋律に伴う和音（コード）の変化のことである．このコード進行データに着目して楽曲の類似検索を行う．図 1 に
J-Total-Music の例を示す．

3.2

検索手法

我々は本研究の類似検索の手法として，シーケンスデータの部分一致検索を採用する．クエリシーケンスを一つずつずらし，一致した部分から検索を続ける．ここで，検索の開始点は J-Total-Music に記載された楽曲の各行の先頭からとする．楽曲の中で，クエリシーケンスと同じ遷移を持つ部分を求める．図 3 は GLAY
「HOWEVER」を可視化した結果とクエリシーケンスの例である．図中の★は検索開始点であり，太枠で囲んである部分はクエリシーケンスと一致する部分を示す．

図 1: J-Total-Music の一例

3

類似検索

3.1

音楽理論に基づくコードの機能

図 3: 楽曲の歌詞化

本項では，コードが持つ機能であるトニック，ドミナント，サブドミナントについて説明する．トニック

5

3.3

した楽曲と類似部分を提示する．この「和音-kazune」を利用して，ユーザに新たな楽曲発見への驚きを提供し，音楽をより一層楽しむきっかけになることを期待する．

ランキング付け手法

本項では，楽曲検索により求められた楽曲のランキングの付け方について述べる．前項で述べたコードの数値化では，五度圏の外側のコードと内側のコードで数値が同じ値になる．しかし，外側はメジャーキー（長調），内側はマイナーキー（短調）を示すものであるため，これらを区別する必要があると考えた．そこで，楽曲のコードと，クエリシーケンスのコードの距離を求めて区別することにする．まず，楽曲のコードがメジャーキーとマイナーキーのうちクエリシーケンスのコードと同じキーであれば 0，違うキーであれば 1 とする．これを式で示すと，クエリシーケンス
q(q1 ,q2 ,...,qn )，楽曲 m(m1 ,m2 ,...,mn ) とすると，

Dkey =k=nX

4.1

類似楽曲表示

楽曲検索は，アーティスト名もしくは楽曲名から検索する方法と，アーティスト一覧，もしくはお薦め楽曲一覧から検索する方法との二通りがある．検索結果
として選択した楽曲の歌詞とコード進行が表示される．
表示された歌詞やコード進行から，ユーザは特に好きな一節を選択することが出来る．選択された一節はクエリシーケンスとなり，楽曲分析部により楽曲の類似検索が行われる．その結果，類似曲表示一覧に類似した楽曲と類似部分が表示される．図 4 は「和音-kazune」による検索の一例である．

dkey (qk , mk )k=1となる．また，コードは C，C7，Cm7，CM7 や Dsus4，Dadd9，Daug のように同じ C や D を基にするものでも様々な種類がある．この 7，m7，M7，sus4，add9，aug 等を本研究ではアレンジと呼ぶ．我々はこのアレンジに注目し，同様に距離を求めることにした．楽曲のアレンジがクエリシーケンスのアレンジと一致すれば0，一致しなければ 1 とする．式で表すと，クエリシー
ケンス q(q1 ,q2 ,...,qn )，楽曲 m(m1 ,m2 ,...,mn ) のとき，Darrange =k=nXdarrange (qk , mk )図 4: 和音-kazune-k=1となる．
Dkey と Darrange を利用すると，クエリシーケンスq(q1 ,q2 ,...,qn ) と楽曲 m(m1 ,m2 ,...,mn ) の距離 Dchordは任意の数 α と β を使って，4.2選択した楽曲や，提示された類似曲を実際に聞くことが出来るよう，楽曲再生機能を付けた．これにより，類似曲を聞き比べることができ，インタフェースの充実につながった．

Dchord = αDkey + βDarrange5と表せる．ここで，Darrange に比べ Dkey の方が，類似度に影響があると考え，α=1，β=0.2 として計算した．D が小さい値のもの程，類似度が高くなるため，ランキングの上位に表示する．

3.4

まとめと今後の課題

本稿では，コードを数値化し楽曲を可視化することによる類似検索手法について述べた．また，ユーザの特に好きな一節と類似した楽曲を推薦する「和音-kazune」の概要を述べた．今後は，対象楽曲に随時新曲を追加する．

楽曲表示の優先度

我々は楽曲の類似部分が，A メロ，B メロよりもサビである方がユーザの好奇心を高めるのではないかと考えた．そこで J-Total-Music の楽曲は A メロ，B メ
ロ，サビの間に一行の空白があることに注目した．その空白を利用して楽曲の A メロ，B メロ，サビを予測して楽曲を分割する．その中で最も多く繰り返される部分をサビと仮定することにした．同じ類似度の楽曲は，サビを含むものを優先して上位に表示することにする．また，一つの楽曲にコードの遷移が同じものが繰り返されるとき，その楽曲の類似部分が複数表示されることを避けるために，A メロ，B メロ，サビといった区画で，まとめて表示することにした．

4

楽曲再生

参考文献
[1] 小杉尚子, 小島明, 片岡良治, 串間和彦:”大規模音楽デー
タベースのハミング検索システム,” 情報処理学会論文
誌,Vol.43,No.2,pp.287-298,2002[2] 後 藤 真 孝:”リ ア ル タ イ ム 音 楽 情 景 記 述 シ ス テ ム:
サ ビ 区 間 検 出 手 法,”音 楽 情 報 科 学 研 究 会 研 究 報
告,Vol.2002,No.100,pp.27-34,2002.
[3] 大坪五郎:”Gromi-Music 音楽をよりたのしむためのインタフェース,”WISS2007,pp.87-92,2007.
[4] 長澤槙子, 渡辺知恵美:”Web から入手したデータに基づ
くコード進行を利用した楽曲類似殿提案と楽曲視聴支援システムの開発”,January 2008.
[5] J-Total Music:”無料歌詞検索（コード譜とダイアグラムを表示！)-J-Total Music”,http://music.j-total.net/.
[6] 金子卓郎著:”コード進行による作曲入門ゼミ”，自由現代社，122p，2007．

和音-kazune-「和音-kazune- 」とは，ユーザの嗜好に合った楽曲を推薦するインタフェースである．ユーザが好んで聞く楽曲の特に好きな一節を選択すると，その部分に類似

6