![見出し画像](https://assets.st-note.com/production/uploads/images/54727540/rectangle_large_type_2_07eb08592a41ceb5c1ea93a281a1105c.png?width=1200)
【WWDC2021】 オーディオ認識「ShazamKit」を試してみる
ShazamKitとは
音楽認識アプリ「Shazam」の音声認識機能を利用できるフレームワーク。
更にこのフレームワークでは
独自に録音したオーディオを使って
カスタムカタログ(音源DBの様なもの)を作成可能。
その独自カタログからオーディオのマッチングを行うことも出来る。
「SoundAnalysis」と「ShazamKit」の違い
SoundAnalysisフレームワークは
機械学習モデルを利用つかってオーディオを分類する
対して
ShazamKitでは
オーディオ分類は行わない。
例えば「ようこそ」という音声をマッチングさせる場合
データベースにある音声データ上の「ようこそ」と
インプットした「ようこそ」は
波形的に一致 or 類似している必要がある。
根本的にインプットする音声が同じである必要があるので
曖昧な検索には向かない。
毎回全く同じ様に「ようこそ」を発話していれば別だが
色々な言い方での「ようこそ」とのマッチングが必要な場合は
SoundAnalysisを使ったカスタム機械学習モデルを使用した方が良い。
ShazamKitを使う場合は
元音声の断片をクエリとして使い
その断片の音源となるデータの一致を探し
一致が見つかった音源のメタデータや一致箇所など
を取得したいユースケースに適している。
「ShazamKit」の主な機能
1. Shazamカタログ認識
Shazamカタログとは
Appleがホストし、メンテンナンスされている楽曲情報データベース。
Shazamカタログ認識では、そのデータベースを使って
音楽の断片から元の音楽情報を検索することが出来る。
例えば
街なかで流れている曲を認識させて
曲のタイトルやアーティスト名、アルバム名などの
情報を取得することが出来る。
2. カスタムカタログ認識
カスタムカタログとは
開発者自身で作成可能な音声データベース。
カスタムカタログ認識では
自身で作成した音源データベースを使って
音声のオンデバイス検索が出来る。
例えば
レッスン動画の音声を認識させて
生徒の手元アプリと同期し
ナビゲーションなどを提示したりすることが出来る。
(ex. 教師が停止 → 生徒の手元アプリでも停止…の様なイメージ)
また
TVで流れる商品のAR体験を
視聴者のアプリ上で同期提供したりする事例も紹介されている。
3. Shazamライブラリ管理
本家「Shazamアプリ」との連携機能
自分のアプリで何かしらの音楽を検索(Shazaming)して
→ その結果をShazamアプリのライブラリに追加
のような使い方が出来る。
オーディオ検索の流れ
1. Shazamカタログを使った認識の場合
デバイス上で
→ オーディオ署名情報に変換、「Signature」を作成
→ Shazamの音楽カタログサーバーへ送信
→ マッチングした楽曲の情報を取得
取得出来る楽曲情報
音楽のメタデータに加えて
- 音源と一致した箇所の情報
- 音源との周波数の違い
などの情報も付加される。
「Signature」とは
先程から出ている「Signature」とはなにか。
元のオーディオから生成された署名情報
この音源から生成した署名情報である
「Signature」を使った検索マッチングこそがShazamKitの肝となる。
「Signature」のイメージ
その特徴は
1. オーディオから生成される
2. データサイズが小さい
3. 不可逆(オーディオへは戻せない)
という点が挙げられる。
「Signature」の種類
Signatureには以下の2種類がある。
1. Reference Signature
データベース(カタログ)側のオーディオの署名情報。
生成元のオーディオメタデータと紐付けられている。
2. Query Signature
検索音声から生成したオーディオの署名情報。
データベース(カタログ)検索時に使用する。
ShazamKitでは、これら2つのSignatureを比較しマッチングさせ
その一致を探す。
カタログの構造
カタログの構造は
元となるオーディオから生成されたReference Signatureのコレクション。
元オーディオのメタデータ等と関連付けられている。
Shazamカタログのコレクション
ShazamカタログのReference Signatureは元楽曲のフル音声から生成される
カスタムカタログ
カスタムカタログの場合は
任意のオーディオ(音楽以外でもOK)から
生成した Reference Signatureのコレクション。
独自に作成したメタデータと関連付けることが出来る。
オンデバイスでのマッチングが行われる為、
カタログファイルはローカルから読み込んで使用する。
(ファイル拡張子は「.shazamcatalog」)
リモートにファイルを置く場合は予めダウンロードしておき
ローカルに保存してから使用する。
実際に音楽認識を使ってみる
試した環境
- iOS15 beta1
- Xcode13 Beta1
ここから先は
¥ 100
この記事が気に入ったらチップで応援してみませんか?