はじめに
Librezamは音楽認識のために複数のバックエンド(Shazam、Audd、ACRCloud、Tencent、Netease)に対応しています。
デフォルトではShazamバックエンドのみ使用され、その他のバックエンドはBackends order設定から明示的に有効化しない限り使用されません。
このドキュメントでは各バックエンドの特徴やどのようにユーザーデータが処理されるかを説明します。
Shazam
* ユーザーデータの取り扱い
ページ上から録音した音声データは元の内容が復元できない音響ハッシュとしてShazamのサーバーに送信されます。
この音響ハッシュはSHA-256のようなハッシュ値と同様、照合に使用することはできても元の内容を復元することはできないため、プライバシー上のメリットとなります。
フィンガープリントの作成はリバースエンジニアリングされたShazamアルゴリズム実装のnode-shazam-apiを使用して行われます。
また、認識結果で優先して表示する言語を決定するためブラウザの言語設定も送信されます。
サービスの運営元はアメリカ合衆国の企業です。
node-shazam-apiのソースコードはこちらから確認できます。
https://github.com/FoxRefire/node-shazam-api/tree/webpack
Apple社のプライバシーポリシーはこちらから確認できます。
https://www.apple.com/legal/privacy/en-ww/
*バックエンドの特徴
登録不要、レート制限無しで利用できます。
幅広く多くの楽曲を検出できます
鼻歌・カバー楽曲認識には対応していません。
一部の楽曲では長めの録音時間が必要ですが、サーバーの応答時間はとても高速です
Audd
* ユーザーデータの取り扱い
ページ上から録音した音声データは変換を行わず、直接Auddのサーバーに送信されます。
また、ユーザーがAPIキーを指定した場合、キーの文字列も送信されます。
サービスの運営元はアメリカ合衆国の企業です。
Audd社のプライバシーポリシーはこちらから確認できます。
https://audd.io/privacy/
- バックエンドの特徴
一日あたり10リクエストまではAPIキーの登録なしで無料利用可能ですが、それ以降は有料のAPIキーを登録する必要があります。
APIキーはこちらから取得することができます。
https://audd.io/
他バックエンドと比べて認識精度はそこまで良くありませんが、一部の楽曲ではより少ないサンプル数で認識する場合があります。
鼻歌・カバー楽曲認識には対応していません
ACRCloud
* ユーザーデータの取り扱い
ページ上から録音した音声データは変換を行わず、直接ACRCloudのサーバーに送信されます。
また、ユーザーが指定したAPIキーの文字列も送信されます。
サービスの運営元はシンガポールに登記のある中国企業です。
ACRCloud社のプライバシーポリシーはこちらから確認できます
https://www.acrcloud.com/privacy/
- バックエンドの特徴
APIキーの登録が必要ですが、一日あたり100リクエストまでは無料で使用が可能です。
高い認識精度をほこり、多くの楽曲を認識できます。
鼻歌・カバー楽曲も認識可能です。(鼻歌・カバー楽曲を認識するときは7.2秒以上の録音時間を推奨します)
Tencent
* ユーザーデータの取り扱い
ページ上から録音した音声データは元の内容を読み取ることが可能な8000kHz モノラル s16leの生PCMデータに変換されてからTencentのサーバーに送信されます。
このバックエンドはQQ Musicアプリからリバースエンジニアリングした音楽認識機能を元に実装しています。
サービスの運営元は中国の企業です
Tencent社のプライバシーポリシーはこちらから確認できます。
https://privacy.qq.com/document/priview/0b0dc16a0f004a35b77b7fd48a0b125b
- バックエンドの特徴
登録不要、レート制限無しで利用できます。
特にACG音楽では非常に高い精度を発揮し、ShazamやACRCloudでも認識しない音楽でも検出することがあります。
鼻歌・カバー楽曲も認識可能です。(鼻歌・カバー楽曲を認識するときは12秒以上の録音時間を推奨します)
サーバーの応答速度は時間帯によって遅くなる場合があります。
NetEase
* ユーザーデータの取り扱い
ページ上から録音した音声データは一度元の内容を読み取ることが可能な48000hz モノラル f32leの生PCMデータに変換されてから、私がDeno Deploy上でホストしている事前処理プロキシに送信されます。
事前処理プロキシではプロプライエタリなモジュールを用いて元の内容が復元できないShazamと類似した音響ハッシュに変換されてからNetEaseのサーバーに送信されます。
一度事前処理プロキシを経由する必要がある理由は変換に必要なモジュールがプロプライエタリのため、Librezamに直接組み込むことができないためです。
事前処理プロキシでは私は一切のログの収集は行っていません。
このバックエンドはChrome拡張機能の「云音乐听歌」からリバースエンジニアリングされたものです。
サービスの運営元は中国の企業です。
事前処理プロキシのソースコードはこちらから確認できます
https://github.com/FoxRefire/ncm-recognizer-proxy
NetEase社のプライバシーポリシーはこちらから確認できます
https://st.music.163.com/official-terms#
Deno deployのプライバシーポリシーはこちらから確認できます
https://docs.deno.com/deploy/privacy_policy/
- バックエンドの特徴
登録不要、レート制限無しで利用できます。
特にACG音楽では非常に高い精度を発揮し、ShazamやACRCloudでも認識しない音楽でも検出することがあります。
鼻歌・カバー楽曲認識機能はありません