Google I/O にご注目いただきありがとうございます。すべてのセッションをオンデマンドで表示オンデマンドで見る

音声分類

オーディオが何を表すかを識別するタスクは、オーディオ分類と呼ばれます。オーディオ分類モデルは、さまざまなオーディオイベントを認識するようにトレーニングされています。たとえば、拍手、指のスナップ、タイピングの3つの異なるイベントを表すイベントを認識するようにモデルをトレーニングできます。 TensorFlow Liteは、モバイルアプリケーションにデプロイできる最適化された事前トレーニング済みモデルを提供します。 TensorFlowを使用したオーディオ分類の詳細については、こちらをご覧ください。

次の画像は、Androidでの音声分類モデルの出力を示しています。

Androidの例のスクリーンショット

始めましょう

TensorFlow Liteを初めて使用し、Androidを使用している場合は、開始に役立つ次のサンプルアプリケーションを調べることをお勧めします。

TensorFlow Liteタスクライブラリのすぐに使用できるAPIを利用して、わずか数行のコードで音声分類モデルを統合できます。 TensorFlow Liteサポートライブラリを使用して、独自のカスタム推論パイプラインを構築することもできます。

以下のAndroidの例は、 TFLiteタスクライブラリを使用した実装を示しています

Androidの例を見る

iOSの例を見る

Android / iOS以外のプラットフォームを使用している場合、またはTensorFlow Lite APIに既に精通している場合は、スターターモデルとサポートファイル(該当する場合)をダウンロードしてください。

TensorFlowハブからスターターモデルをダウンロードします

モデルの説明

YAMNetは、オーディオ波形を入力として受け取り、 AudioSetオントロジーからの521のオーディオイベントのそれぞれについて独立した予測を行うオーディオイベント分類子です。モデルはMobileNetv1アーキテクチャを使用し、AudioSetコーパスを使用してトレーニングされました。このモデルは、もともとTensorFlow Model Gardenでリリースされました。ここには、モデルのソースコード、元のモデルのチェックポイント、およびより詳細なドキュメントがあります。

使い方

TFLiteに変換されたYAMNetモデルには2つのバージョンがあります。

  • YAMNetは、動的入力サイズを備えたオリジナルのオーディオ分類モデルであり、転送学習、Web、およびモバイルの展開に適しています。また、より複雑な出力があります。

  • YAMNet /分類は、より単純な固定長フレーム入力(15600サンプル)を備えた量子化バージョンであり、521のオーディオイベントクラスのスコアの単一ベクトルを返します。

入力

このモデルは、 [-1.0, +1.0]の範囲の単精度16kHzサンプルとして表される0.975秒の波形を含む長さ15600の1- float32またはNumPy配列を受け入れます。

出力

モデルは、YAMNetでサポートされているAudioSetオントロジーの521クラスのそれぞれの予測スコアを含む形状(1、521)の2次元float32テンソルを返します。スコアテンソルの列インデックス(0-520)は、YAMNetクラスマップを使用して対応するAudioSetクラス名にマップされます。これは、モデルファイルにパックされた関連ファイルyamnet_label_list.txtとして利用できます。使用法については、以下を参照してください。

適切な用途

YAMNetが使用できます

  • さまざまなオーディオイベントにわたって妥当なベースラインを提供するスタンドアロンのオーディオイベント分類子として。
  • 高レベルの特徴抽出器として:YAMNetの1024-D埋め込み出力は、特定のタスクのために少量のデータでトレーニングできる別のモデルの入力特徴として使用できます。これにより、多くのラベル付きデータを必要とせず、大規模なモデルをエンドツーエンドでトレーニングすることなく、特殊なオーディオ分類子をすばやく作成できます。
  • ウォームスタートとして:YAMNetモデルパラメータを使用して、より大きなモデルの一部を初期化できます。これにより、より高速な微調整とモデル探索が可能になります。

制限事項

  • YAMNetの分類器の出力はクラス間で調整されていないため、出力を確率として直接扱うことはできません。特定のタスクについて、クラスごとの適切なスコアしきい値とスケーリングを割り当てることができるタスク固有のデータを使用してキャリブレーションを実行する必要がある可能性が非常に高くなります。
  • YAMNetは何百万ものYouTubeビデオでトレーニングされており、これらは非常に多様ですが、平均的なYouTubeビデオと特定のタスクに期待されるオーディオ入力との間にドメインの不一致が存在する可能性があります。 YAMNetを構築するすべてのシステムで使用できるようにするには、ある程度の微調整と調整を行うことを期待する必要があります。

モデルのカスタマイズ

提供される事前トレーニング済みモデルは、521の異なるオーディオクラスを検出するようにトレーニングされています。クラスの完全なリストについては、モデルリポジトリのlabelsファイルを参照してください。

転移学習と呼ばれる手法を使用して、元のセットにないクラスを認識するようにモデルを再トレーニングできます。たとえば、モデルを再トレーニングして、複数の鳥の鳴き声を検出できます。これを行うには、トレーニングする新しいラベルごとにトレーニングオーディオのセットが必要になります。推奨される方法は、数行のコードで、カスタムデータセットを使用してTensorFlowLiteモデルをトレーニングするプロセスを簡素化するTensorFlowLiteModelMakerライブラリを使用することです。転移学習を使用して、必要なトレーニングデータと時間を削減します。転移学習の例として、音声認識のための転移学習から学ぶこともできます。

さらなる読み物とリソース

オーディオ分類に関連する概念の詳細については、次のリソースを使用してください。