見出し画像

【WWDC2021】 オーディオ認識「ShazamKit」を試してみる

ShazamKitとは

音楽認識アプリ「Shazam」の音声認識機能を利用できるフレームワーク。

更にこのフレームワークでは

独自に録音したオーディオを使って

カスタムカタログ(音源DBの様なもの)を作成可能。

その独自カタログからオーディオのマッチングを行うことも出来る。


「SoundAnalysis」と「ShazamKit」の違い


SoundAnalysisフレームワークは

機械学習モデルを利用つかってオーディオを分類する

対して

ShazamKitでは

オーディオ分類は行わない

画像1

例えば「ようこそ」という音声をマッチングさせる場合

データベースにある音声データ上の「ようこそ」と

インプットした「ようこそ」は

波形的に一致 or 類似している必要がある。

根本的にインプットする音声が同じである必要があるので

曖昧な検索には向かない

毎回全く同じ様に「ようこそ」を発話していれば別だが

色々な言い方での「ようこそ」とのマッチングが必要な場合は

SoundAnalysisを使ったカスタム機械学習モデルを使用した方が良い。


ShazamKitを使う場合は

元音声の断片をクエリとして使い

その断片の音源となるデータの一致を探し

一致が見つかった音源のメタデータや一致箇所など

を取得したいユースケースに適している。


「ShazamKit」の主な機能

画像2


1. Shazamカタログ認識

Shazamカタログとは

Appleがホストし、メンテンナンスされている楽曲情報データベース。

Shazamカタログ認識では、そのデータベースを使って

音楽の断片から元の音楽情報を検索することが出来る。

例えば

街なかで流れている曲を認識させて

曲のタイトルやアーティスト名、アルバム名などの

情報を取得することが出来る。


2. カスタムカタログ認識

カスタムカタログとは

開発者自身で作成可能な音声データベース。

カスタムカタログ認識では

自身で作成した音源データベースを使って

音声のオンデバイス検索が出来る。

例えば

レッスン動画の音声を認識させて

生徒の手元アプリと同期し

ナビゲーションなどを提示したりすることが出来る。

(ex. 教師が停止 → 生徒の手元アプリでも停止…の様なイメージ)

また

TVで流れる商品のAR体験を

視聴者のアプリ上で同期提供したりする事例も紹介されている。


3. Shazamライブラリ管理

本家「Shazamアプリ」との連携機能

自分のアプリで何かしらの音楽を検索(Shazaming)して

→ その結果をShazamアプリのライブラリに追加

のような使い方が出来る。


オーディオ検索の流れ

1. Shazamカタログを使った認識の場合

デバイス上で

→ オーディオ署名情報に変換、「Signature」を作成

→ Shazamの音楽カタログサーバーへ送信

→ マッチングした楽曲の情報を取得

画像3

取得出来る楽曲情報

画像4

音楽のメタデータに加えて

- 音源と一致した箇所の情報

- 音源との周波数の違い

などの情報も付加される。


「Signature」とは

先程から出ている「Signature」とはなにか。


元のオーディオから生成された署名情報

この音源から生成した署名情報である

「Signature」を使った検索マッチングこそがShazamKitの肝となる。

「Signature」のイメージ

画像5

その特徴は

1. オーディオから生成される

2. データサイズが小さい

3. 不可逆(オーディオへは戻せない)

という点が挙げられる。


「Signature」の種類

Signatureには以下の2種類がある。

1. Reference Signature

データベース(カタログ)側のオーディオの署名情報。

生成元のオーディオメタデータと紐付けられている。

2. Query Signature

検索音声から生成したオーディオの署名情報。

データベース(カタログ)検索時に使用する。


ShazamKitでは、これら2つのSignatureを比較しマッチングさせ

その一致を探す。


カタログの構造

カタログの構造は

元となるオーディオから生成されたReference Signatureのコレクション。

元オーディオのメタデータ等と関連付けられている。

画像6

Shazamカタログのコレクション

画像7

ShazamカタログのReference Signatureは元楽曲のフル音声から生成される


カスタムカタログ

カスタムカタログの場合は

任意のオーディオ(音楽以外でもOK)から

生成した Reference Signatureのコレクション。

独自に作成したメタデータと関連付けることが出来る。


オンデバイスでのマッチングが行われる為、

カタログファイルはローカルから読み込んで使用する。

(ファイル拡張子は「.shazamcatalog」

リモートにファイルを置く場合は予めダウンロードしておき

ローカルに保存してから使用する。


実際に音楽認識を使ってみる

試した環境

- iOS15 beta1

- Xcode13 Beta1

ここから先は

3,096字 / 2画像

¥ 100

この記事が気に入ったらサポートをしてみませんか?