他カテゴリ

リスナー視点を利用した音楽検索について②

ヨコチ🦖UGOK's icon'
  • ヨコチ🦖UGOK
  • 2020/06/23 15:29

 

UGOKのヨコチ🦖です。

今回は、前回の続きとして関連研究として挙げられている文献の内容についてまとめたいと思います。

 

◆ Last.fmのAPIを使用した音楽検索システムの構築

 

文献はこちら

 

■ システムの構想

Last.fmのAPIを使用して、①指定したアーティストに似たアーティストの検索②今聞きたいジャンルの有名なアーティスト名とそのアーティストの有名な曲名を検索でき、その結果からYouTubeの検索結果画面に行くことができる。

 

 

■ システムを実現するために使用するAPI

(1)tag.getTopArtist

指定したタグ(今聞きたいジャンル)に関連するアーティストを、ランクの高い順に整列する。

(2)artist.getTopTracks

指定したアーティストの曲を、人気の高い順に整列する。

(3)Data API

指定したワードで検索した結果を返す。

(4)artist.getSimilar

アーティストAに似ているアーティストTOP50を返す。

ここで、似ているアーティストにはそれぞれmatch度という数値がついてくる。このmatch度は一番似ているアーティストを1とし、数値はだんだん下がっていく。このmatch度はなだらかに下がっていくものもあれば急に下がるものもある。

 

□ similarの問題点

similarによる検索では、アーティストAから見たアーティストBのmatch度が0.7でも、アーティストBから見たアーティストAが0.7になるとは限らないことがある。これは基準をどちらに置いたかによってmatch度の算出結果が変わってくるためだと考えられる。

□ 解決方法

similarの問題を解決するためには両方向のmatch度を調べる必要がある。match度が0になることも考慮に入れ、正常な結果が出た「両方向からのmatch度の平均を得点とする」方法をとることで精度の高い検索結果が出ると考えた。以降、この方法を使った検索を「処理を行ったsimilar検索」、この方法を行わなかった検索を「処理を行わないsimilar検索」と呼ぶ。

 

 

■ システムの構築(どのような手順でシステムを作るか)

①指定したアーティストに似たアーティストの検索

(1) ユーザーが入力したアーティストAを変数で受け取り、API(artist.getSimilar)を使ってAという名前のアーティストがいるかLast.fmに問い合わせる。

(2) 問い合わせた結果、Aがいた場合はLast.fmからmatch度のデータが返ってくる。該当するものがなければ、Last.fmからエラーのデータが返ってくる。エラーがあったらエラーを表示する。

(3) (2)で取得したアーティスト名とmatch度を配列に入れる(これを1ホップ目とする)。

(4) (3)で抜き出したアーティストにそれぞれAPI(artist.getSimilar)を使ってLast.fmに問い合わせ、match度のデータを受け取る。

(5) (4)で取得したアーティスト名へのmatch度を(2)と同様に配列に入れる(これを2ホップ目とする)。

(6) 1ホップ目と2ホップ目のmatch度の平均を出し降順に並べ替え、平均の高い順にTOP10のアーティスト名とその平均、前の順位をして1ホップ目の順位を表示する。

 

②今聞きたいジャンルの有名なアーティスト名とそのアーティストの有名な曲名を検索でき、その結果からYouTubeの検索結果画面に行く

(1) ユーザが入力したジャンルを変数で受け取り、API(tag.getTopArtist)を使って該当するジャンルがあるかLast.fmに問い合わせる。

(2) 問い合わせた結果、該当するものがあればLast.fmからジャンルのデータが返ってくる。エラーがあったらエラーを表示する。

(3) (2)で取得した1位から10位までのアーティスト名を抜き出し、配列に入れる。

(4) (3)で抜き出した10組のアーティストを使い、それぞれの曲のデータをAPI(artist.getTopTracks)を使ってLast.fmに問い合わせる。

(5) (4)で取得した10組それぞれのデータからそれぞれランク1位の曲名を抜き出し、配列に入れる。

(6) (3)と(5)で配列に入れたデータを検索ワードとした、YouTubeでの検索結果のURLをData APIを使ってYouTubeへ問い合わせる。

(7) (6)で取得したデータからURLとタイトルを抜き出す。エラーが返ってきた場合は、リンクを表示する代わりにリンクを得られなかったことをエラーとして表示する。そして、今まで取得したデータを使って、TOP10それぞれのアーティスト名と曲名、それらを検索ワードとして得たYouTubeへのリンクを表示する。

 

 

■ 実行結果

□ similarの比較

similar検索の比較を行うために、1980年代にデビューし、今も活動しているPOPなアーティストとしてKylie Minogueを使った。このアーティストに処理を行わないsimilar検索をした。その結果が下記である。

1. Dannii Minogue (match度:1)

2. Madonna (match度:0.474618)

3. Sophie Ellis-Bextor (match度:0.422288)

4. Girls Aloud (match度:0.340768)

5. Cheryl Cole (match度:0.332762)

また、Kylie Minogueに処理を行ったsimilar検索をした結果のTOP5が下記である。

1. Dannii Minogue (match度:1)

2. Madonna (match度:0.737309)

3. Scissor Sisters(match度:0.6250285)

4. Sophie Ellis-Bextor  (match度:0.5870325)

5. Robyn (match度:0.499526)

上記の結果から、処理を行わないsimilar検索より処理を行ったsimilar検索をしたほうが、2位以下のmatch度の数値の下がり方がなだらかである。これより、POPなアーティストはほかのアーティストを聞いている人も比較的聞きやすいという特徴があると推測される。これに対して、個性的なアーティストとしてAvril Lavigneを検索した場合、2位以下のmatch度の数値は急激に下がっていた。これは、似たテイストを持つアーティストから検索アーティストへのmatch度が低いためであり、個性的なアーティストを聞く人は他のアーティストも聞くが、他のアーティストからは個性的なものを聞きにくいという特徴があると推測される。

また、match度が0.6以上あるアーティストは検索したアーティストと曲調がかなり似ていると感じられたという結果も得られている。

 

 

 

 

 

以上が関連研究として挙げられている文献の内容です。APIを用いてアーティストを検索するだけでなく、アーティスト同士がどれほど似ているのか数値で表しグラフ化することで似ている度合いを可視化することができ、またその傾向から聞く人もどういった聞き方をしているか・聞く人の好みの傾向まで推測できてしまうところがとても面白かったです。

書いてあったことを少し短くざっと書いただけですが、APIを使ってどのように情報を取ってきて求めている情報にまでたどり着くかまで細かく書いてあったので、今後自分の制作で参考にしようと思います。

 

Article tip 0人がサポートしています
獲得ALIS: Article like 41.29 ALIS Article tip 0.00 ALIS
ヨコチ🦖UGOK's icon'
  • ヨコチ🦖UGOK
  • @yoch
twitter @ugok_2

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
121.79 ALIS
Eye catch
他カテゴリ

テレビ番組で登録商標が「言えない」のか考察してみる

Like token Tip token
26.20 ALIS
Eye catch
トラベル

梅雨の京都八瀬・瑠璃光院はしっとり濃い新緑の世界

Like token Tip token
216.64 ALIS
Eye catch
他カテゴリ

オランダ人が語る大麻大国のオランダ

Like token Tip token
46.20 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS
Eye catch
トラベル

わら人形を釘で打ち呪う 丑の刻参りは今も存在するのか? 京都最恐の貴船神社奥宮を調べた

Like token Tip token
486.35 ALIS
Eye catch
他カテゴリ

警察官が一人で戦ったらどのくらいの強さなの?『柔道編』 【元警察官が本音で回答】

Like token Tip token
114.82 ALIS
Eye catch
グルメ

バターをつくってみた

Like token Tip token
127.90 ALIS
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

Like token Tip token
46.60 ALIS
Eye catch
ゲーム

【初心者向け】Splinterlandsの遊び方【BCG】

Like token Tip token
6.32 ALIS
Eye catch
他カテゴリ

SASUKEオーディションに出た時の話

Like token Tip token
35.87 ALIS
Eye catch
他カテゴリ

京都のきーひん、神戸のこーへん

Like token Tip token
12.10 ALIS