Upgrade to Pro — share decks privately, control downloads, hide ads and more …

iOSDC2022.pdf

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Spacemarket Spacemarket
September 28, 2022

 iOSDC2022.pdf

Avatar for Spacemarket

Spacemarket

September 28, 2022
Tweet

More Decks by Spacemarket

Other Decks in Technology

Transcript

  1. 5 アジェンダ • Shazam/ShazamKitの概要 • ShazamKitメイン機能紹介 ◦ Shazamカタログ認識 ◦ カスタムカタログ認識

    • サンプル実装 ◦ Shazamカタログ認識サンプル実装 ◦ カスタムカタログ認識サンプル実装 • SPACEMARKTアプリへ機能追加
  2. 8 Shazamの歴史 2002 携帯電話サービス「2580」リリース 1999 Shazam Entertainment 設 ⽴ 2008

    Shazamアプリ AppStore リリー ス 2017 2018 Apple買収発表 買収 2021 WWDC 2021 ShazamKit発表 🎉
  3. 12 Shazamカタログ認識 概要 楽曲認識機能(Shazam同様の機能)を導⼊ App 🔊 楽曲情報 ・曲名 ・アーティスト名 ・ジャケット画像

    etc.. 🎶 🎶 Shazam表⾯ 1 2 3 4 裏側 取得した⾳声からシグネチャを⽣成 シグネチャをサーバーへ送信 Shazamカタログから⼀致する曲を検索 サーバーから楽曲情報をアプリへ返す 検索結果 ⾳声取得
  4. 13 App 1. 取得した⾳声からシグネチャを⽣成 2. シグネチャをサーバーへ送信 3. Shazamカタログから⼀致する曲を検索 4. サーバーから楽曲情報をアプリへ返す

    ⾳声取得 Signatur e ⽣成 ⾳声をlossy圧縮(⾮可逆圧縮)したデジタルフィンガープリント ”データサイズが⼩さく、少なくとも元の⾳声データの1/10以下” ”元の⾳声を復元することは出来ないため、安全性とプライバシーが保たれる” 🔊 Shazamカタログ認識 認識の仕組み 🎶 🎶
  5. 14 サーバー App 1. 取得した⾳声からシグネチャを⽣成 2. シグネチャをサーバーへ送信 3. Shazamカタログから⼀致する曲を検索 4.

    サーバーから楽曲情報をアプリへ返す Signatur e 送信 Signatur e Shazamカタログ認識 認識の仕組み
  6. 15 1. 取得した⾳声からシグネチャを⽣成 2. シグネチャをサーバーへ送信 3. Shazamカタログから⼀致する 楽曲を検索 4. サーバーから楽曲情報をアプリへ返す

    サーバー Shazam カタログ (楽曲DB) Signatur e シグネチャのコレクション (楽曲から⽣成されたSignatureの集合) Signatur e Signatur e Signatur e Signatur e Signatur e Signatur e Signatur e Signatur e Signatur e Signatur e Signatur e Signatur e Shazamカタログ認識 認識の仕組み Signature Metadata ・曲名 ・アーティスト名 ・ジャケット画像URL etc..
  7. 16 Signatur e Referenc e Signature Signatur e Mr.children しるし

    Query Signature Shazamカタログが持つ、 楽曲から⽣成されたシグネチャ 検索をかける⾳声から ⽣成されたシグネチャ Shazamカタログ認識 認識の仕組み 🎶 画像引⽤: https://www.mrchildren.jp/disco/#single
  8. 17 1. 取得した⾳声からシグネチャを⽣成 2. シグネチャをサーバーへ送信 3. Shazamカタログから⼀致する 楽曲を検索 4. サーバーから楽曲情報をアプリへ返す

    サーバー Query Signatur e Reference Signature のコレクション Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Reference Signature Shazamカタログ認識 認識の仕組み Metadata ・曲名 ・アーティスト名 ・ジャケット画像URL etc.. Shazam カタログ (楽曲DB)
  9. 18 1. 取得した⾳声からシグネチャを⽣成 2. シグネチャをサーバーへ送信 3. Shazamカタログから⼀致する 楽曲を検索 4. サーバーから楽曲情報をアプリへ返す

    サーバー Query Signatur e Reference Signature のコレクション Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Referenc e Signatur e Reference Signature 名もなき詩 Mr.children シーソーゲーム Mr.children NOT FOUND Mr.children 君が好き Mr.children しるし Mr.children フェイク Mr.children 旅⽴ちの詩 Mr.children HANABI Mr.children HERO Mr.children ヒカリノアトリエ Mr.children Birthday Mr.children himawari Mr.children Shazamカタログ認識 認識の仕組み Metadata ・曲名 ・アーティスト名 ・ジャケット画像URL etc.. Shazam カタログ (楽曲DB) 画像引⽤: https://www.mrchildren.jp/disco/#single
  10. 19 サーバー App 1. 取得した⾳声からシグネチャを⽣成 2. シグネチャをサーバーへ送信 3. Shazamカタログから⼀致する楽曲を検索 4.

    サーバーから楽曲情報をアプリへ返す Metadata送 信 Shazamカタログ Reference Signature Shazamカタログ認識 認識の仕組み Mr.children しるし Mr.children しるし 画像引⽤: https://www.mrchildren.jp/disco/#single
  11. 22 カスタムカタログ認識 カスタムカタログの⽤意 任意の⾳声 + カスタムカタログ Custom Reference Signature Metadata

    Custom Reference Signature Metadata Custom Reference Signature Metadata 🎹🎷🎸🥁 🐶 < わんわん︕ Custom Reference Signature Metadata 🙋 < 好きです︕ 🤦 < ごめんやで + Custom Reference Signature Metadata + Custom Reference Signature Metadata
  12. 23 App Query Signatur e カスタムカタログ 1. 取得した⾳声からシグネチャを⽣成 2. カスタムカタログから⼀致するシグネチャを検索

    🔊 カスタムカタログ認識 認識の仕組み ⾳声取得 ⽣成 🎶 🎶 Custom Reference Signature Metadata Custom Reference Signature Metadata Custom Reference Signature Metadata Custom Reference Signature Metadata
  13. 33 Shazamカタログ認識サンプル実装 サンプルコード マッチする楽曲が⾒つからなかった / エラーが発⽣した場合 シミュレータで実⾏した場合 Error Domain=com.apple.ShazamKit Code=202

    "Shazam Catalog recognition doesnʼt work in simulated devices" AppleDevelopperでShazamKitを有効にしていない場合 Error Domain=com.apple.ShazamKit Code=202 “Please check that you have enabled the ShazamKit App Service for this app identifier”
  14. 36 セミ鳴き声3つ⽤意 https://pocket- se.info/ ミンミンゼミ ツクツクボウシ + ヒグラシ カスタムカタログ認識サンプル実装 事前準備

    + ミンミンゼミ Reference Signature ツクツクボウシ Reference Signature Metadata ・名前: name ・特徴: feature Metadata ・名前: name ・特徴: feature カスタムカタログ ミンミンゼミ Reference Signature Metadata ツクツクボウシ Reference Signature Metadata
  15. 39 ex.) shazam signature --input <⾳声/ビデオファイル> --output <XXX.shazamsignature> $ shazam

    signature -i minmin.mp3 -o minmin.shazamsignature $ shazam signature -i tsukutsuku.mp3 -o tsukutsuku.shazamsignature カスタムカタログ認識サンプル実装 Shazam CLI : Signature⽣成
  16. 41 ex.) shazam custom-catalog create --signature-asset <XXX.shazamsignature> --media-items <.csv file>

    --output <XXX.shazamcatalog> $ shazam custom-catalog create --signature-asset minmin.shazamsignature --media-items minmin.csv -o semi.shazamcatalog カスタムカタログ認識サンプル実装 Shazam CLI: カスタムカタログ構築 minmin.csv
  17. 42 カスタムカタログ認識サンプル実装 Shazam CLI: カスタムカタログ構築 ex.) shazam custom-catalog update --signature-asset

    <XXX.shazamsignature> --media-items <.csv file> --output <XXX.shazamcatalog> $shazam custom-catalog update --signature-asset tsukutsuku.shazamsignature --media-items tsukutsuku.csv -o semi.shazamcatalog tsukutsuku.csv
  18. 43 ex.) shazam custom-catalog display --input <XXX.shazamcatalog> $shazam custom-catalog display

    -i semi.shazamcatalog カスタムカタログ認識サンプル実装 Shazam CLI: カスタムカタログ構築
  19. 53 SPACEMARKETアプリへの機能追加 RemoteConfig × ShazamID { "data": [ ︙ {

    "url": "https://www.spacemarket.com/features/temochi- hanabi/?utm_source=app_banner&utm_medium=referral&utm_campaign=hanabi&paid_type=0", "image": "https://cdn.braze.eu/appboy/communication/assets/image_assets/images/62e77db0f135f5631db67130/original.png?16593 38160", "quiz": { "question": "タイトルに「花⽕」が⼊る⼥性曲といえば︖", "coupon": { ︙ }, "shazamID": "12345", ︙ }, }, ︙ ] } 引⽤: https://developer.apple.com/documentation/shazamkit/shsession/3747208- matchstreamingbuffer