More Related Content More from Yoshiki Hayama (20) 俺に最強の Get Wild を Watson が選んでくれる:IBM Cloud Community Summit 20181. 俺に最強の
Get Wild を Watson が選んでくれる
IBM Champion / HCD-Net認定 ⼈間中⼼設計専⾨家
⽻⼭ 祥樹 @storywriter
1
2018年12⽉8⽇(⼟)
3. 3
TM NETWORK の アルバムに
「GET WILD 30th Anniversary Collection」
というのがあります。
収録曲が 36 曲あるのですが、
そのすべてが Get Wild のバージョン違い。
画像引⽤:http://amzn.asia/d/8jEfQoY
7. 7
avex Edition 収録曲:
M1:Get Wild (“Incubation Period” Version)
M2:Get Wild (“FINAL MISSION -START investigation-” Version)
M3:GET WILD (2013 SUMMER)
M4:Get Wild 2014
M5:Get Wild 2014 (“the beginning of the end” Version)
M6:Get Wild 2014 (“30th 1984〜 QUIT30” Version)
M7:Get Wild 2014 (“QUIT30 HUGE DATA” Version)
M8:Get Wild 2015 -HUGE DATA-
M9:Get Wild 2015 (“30th FINAL” Version)
M10:Get Wild / Dave Rodgers
M11:Get Wild (GET WILD MEETS TECHNO STYLE Version) / Dave Rodgers
参考:https://www.barks.jp/news/?id=1000141189
8. 8
avex Edition 収録曲:
M12:Get Wild / 桃井はるこ
M13:Get Wild / globe
M14:Get Wild / Purple Days
M15:GET WILD '89 / TETSUYA KOMURO
M16:Get Wild(Metal Machine mix)/ globe
M17:Get Wild (2016 Remode2) / globe
M18:GET WILD 2017 TK REMIX
M19:GET WILD (Takkyu Ishino Latino Acid Remix)
M20:GET WILD (SICK INDIVIDUALS Remix)
M21:GET WILD (Dave Rodgers Remix)
M22:GET WILD (Takkyu Ishino Latino Remix)
参考:https://www.barks.jp/news/?id=1000141189
13. ⽻⼭ 祥樹 @storywriter
v HCD-Net認定 ⼈間中⼼設計専⾨家
• 使いやすいWebサイトをつくる専⾨家
v Web業界に20年くらい、Watsonは2年半ほど
• IBM Champion for 2018
v 主な実績など
• 担当したWebサイトが、雑誌のWebユーザビリティランキングで
国内トップクラスの評価を受ける ほか実積多数
v 主な専⾨分野
• ユーザーエクスペリエンス、⼈間中⼼設計、情報アーキテクチャ、
アクセシビリティ、ライター、NOREN、IBM Watson
13
ユーザー⼼理を
つかむプロです
17. 17
マッチングに使う Watson の API といえば、
Personality Insights。
⼀定量のテキストから、その⼈の性格を分析して、
ビッグファイブと呼ばれる、
基本的な⼼理特性を判断してくれるというもの。
20. 20
Spotify の API からも、
じつは多彩な情報を得ることができる。
興味深いのは
「Get Audio Features for a Track」という、
曲の特徴を取得できる API。
22. 22
Spotify の API で取得できる曲の特徴:
• アコースティック性
• トラックがアコースティックかどうかを⽰す0.0〜1.0の信頼度。1.0は、トラックがアコースティックであ
るという⾼い信頼性を表す。
• ダンス性
• テンポ、リズムの安定性、ビートの強さ、全体的な規則性などの⾳楽要素の組み合わせに基づいて、ダンス
のためのトラックの適性を記述します。0.0の値は、最もダンス的でなく、1.0は、最もダンス的である。
• トラックの持続時間(ミリ秒)
• エネルギー性
• エネルギーは、0.0〜1.0の尺度であり、強度および活動の知覚的尺度を表す。典型的には、エネルギッシュ
なトラックは、速く、⼤きく、騒々しい感じがする。例えば、デスメタルは⾼いエネルギーを持っているが、
バッハのプレリュードは、このスケールでは低い得点になる。この属性に影響する知覚的特徴は、ダイナ
ミックレンジ、知覚できる⾳量の⼤きさ、⾳⾊、開始レート、および⼀般的なエントロピーを含む。
参考:https://developer.spotify.com/documentation/web-api/reference/tracks/get-audio-features/
23. 23
Spotify の API で取得できる曲の特徴:
• インストゥメンタル性
• トラックにボーカルがないかどうかを予測します。この⽂脈では、「オー」や「アー」の声は楽器として扱
われます。 ラップや話し⾔葉は明らかに「ボーカル」です。インストゥメンタル性の値が1.0に近いほど、
トラックにはボーカルが含まれていない可能性が⾼くなります。0.5を超える値は、インストゥメンタル曲
を表すことを意図していますが、値が1.0に近づくほど信頼度が⾼くなります。
• ライブ性
• 録⾳中の聴衆の存在を検出します。ライブ性の値が⾼いほど、トラックがライブで実⾏された可能性が⾼く
なります。値が0.8を超えると、トラックがライブである可能性が⾼くなります。
• ラウドネス
• トラックの全体的なラウドネスをデシベル(dB)で表したものです。 ラウドネス値はトラック全体で平均
化され、トラックの相対的なラウドネスを⽐較するのに役⽴ちます。ラウドネスは、物理的強度(振幅)の
主要な⼼理的相関関係であるサウンドの品質です。値の典型的な範囲は-60〜0dbです。
参考:https://developer.spotify.com/documentation/web-api/reference/tracks/get-audio-features/
24. 24
Spotify の API で取得できる曲の特徴:
• モード
• モードは、曲の雰囲気(メジャーまたはマイナー)、その楽曲から導かれるスケールのタイプを⽰します。
メジャーは1、マイナーは0です。
• スピーチ性
• スピーチ性は、トラック内の話された単語の存在を検出します。録⾳(例えば、トークショー、オーディオ
ブック、詩)のような、より独占的な⾳声ほど、属性値に1.0に近くなります。0.66を超える値は、おそら
くは完全に発声された単語で構成されているトラックを表します。0.33と0.66の間の値は、ラップ⾳楽など
の場合を含む、セクションまたはレイヤーのいずれかで、⾳楽とスピーチの両⽅を含む可能性があるトラッ
クを表します。 0.33未満の値は、⾳楽やその他の⾮⾳声のようなトラックを表す可能性が最も⾼いです。
• テンポ
• ビート/分(BPM)でのトラックの全体的な推定テンポ。
参考:https://developer.spotify.com/documentation/web-api/reference/tracks/get-audio-features/
25. 25
Spotify の API で取得できる曲の特徴:
• 感情価
• トラックによって伝えられる⾳楽的なポジションを表す0.0から1.0の値を測定します。 ⾼い感情価のトラッ
クはより陽性(例えば、幸せ、陽気、陶酔)であり、低い感情価のトラックはより陰性となる(例えば、悲
しい、落ち込んだ、怒る)。
参考:https://developer.spotify.com/documentation/web-api/reference/tracks/get-audio-features/
29. 29
同じ Get Wild で特徴にどれくらい差があるのか:
そもそも、それぞれの Get Wild で、
Spotify から得られる情報にどれくらい差があるだろう。
同じ Get Wild なわけで。
差がなければ、マッチングもできない。
Spotify の実データを⾒てみよう。
30. 30
Spotify to JSON:
Spotify のアルバムIDを⼊れると、
アルバムに⼊っている楽曲の情報を、全曲取ってきて、
JSONとcsvに落としてくれる Python を書いた。
GitHubにあげました。SpotifyToJSON:
https://github.com/storywriter/SpotifyToJSON
36. 36
Spotify の API を使う:
引⽤:https://developer.spotify.com/dashboard/
Client ID と Client Secret
を⼿元にメモ
37. Spotify の API を使う:
引⽤:https://developer.spotify.com/dashboard/
37
38. Spotify の API を使う:
引⽤:https://developer.spotify.com/dashboard/
38
Redirect URIs を⼊⼒
39. 39
Spotify の API を使う:
アプリのダッシュボードの EDIT SETTINGS から、
Redirect URIs に、認証後にリダイレクト表⽰するページ
のURLを記⼊。
かつてはどんなURLでもよかったらしいのですが、今は、実在するページでな
いとエラーになる。また localhost はダメ?で、Spotify 側からアクセスでき
るページである必要があるようす。
なんでもよいので、ダミーページを1枚⽤意する。
42. 42
Spotify の API を使う:
Spotify の API は認証まわりが Watson に⽐べると厳密で、
SDK の使いかたを理解するのに⼿間取った。
43. 43
Spotify の API を使う:
途中、認証で「Enter the URL you were redirected to:」
というメッセージが出て、ブラウザが開くので、
ブラウザのURLを、そのままコピーして、
コンソールに貼り付けてエンターキーで進みます。
http://example.com/?code=... の
「 http://example.com/?code= 」部分も含めて
コピーすること。
59. 59
同じ Get Wild で特徴にどれくらい差があるのか:
レーダーチャートで分散しているということは、
ちゃんと差がありそうだ。これならマッチングできる。
同じ Get Wild なのに、けっこう差があって驚いた。
65. Spotify の楽曲の特徴 Personality Insights の性格特性
65
どの性格特性と、曲のどの特徴を対応させるか:
モードは0か1の値しか出ないため、極端に振れるので、利⽤することを⽌めた。
アコースティック性 安定性 Stability
ダンス性 好奇⼼ Curiosity
トラックの持続時間(ミリ秒) ⾃由主義 Liberty
エネルギー性 外向性 Extraversion
インストゥメンタル性 協調性 Agreeableness
ライブ性 誠実性 Conscientiousness
ラウドネス 理想 Ideal
スピーチ性 知的好奇⼼ Openness
テンポ 興奮 Excitement
感情価 感情起伏 Emotional range
67. Spotify の楽曲の特徴 Personality Insights の性格特性
67
どの性格特性と、曲のどの特徴を対応させるか:
アコースティック性 consumption_preferences_music_country
ダンス性 consumption_preferences_music_r_b
consumption_preferences_music_hip_hop
エネルギー性 consumption_preferences_music_latin
インストゥメンタル性 consumption_preferences_music_classical
ライブ性 consumption_preferences_music_live_event
ラウドネス consumption_preferences_music_rock
スピーチ性 consumption_preferences_music_rap
テンポ consumption_preferences_music_playing
77. • ejs: テンプレートエンジン
• express: Express フレームワーク
• i18n: 多⾔語化
• object.pick: 計算を楽にするユーティリティ
• passport: Twitterの認証のため
• personality-*: Personality Insights の SDK
• twitter: Twitter の SDK
• watson-developer-cloud: Watson の SDK
77
アプリケーションの開発:
主な依存ライブラリ:
サーバーサイド:
• Modernizr: ポリフィル
• jQuery: jQuery
• Underscore.js: Underscore.js
• markdown-it: Markdownのパーサー
• highlight.js: シンタックスハイライター
• Q: ⾮同期通信の拡張
• tab-panels.js: タブの実装
• personality-*: Personality Insights の SDK
• sunburst.js: サンバーストチャート
• demo.js: サンプルプログラム本体
• consumption-preferences-*: 診断結果のソート
• analytics.js: IBMのアクセス解析?
フロントエンド:
89. 89
#3 GET WILD - 2013 SUMMER
TM NETWORK
引⽤:https://open.spotify.com/track/2KS8ATNMmHVSMK1MMJGQqb