オーディオ分類

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

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

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

始めましょう

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

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

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

Android の例を見る

iOS の例を見る

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

TensorFlow Hub からスターター モデルをダウンロードする

モデルの説明

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

使い方

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

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

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

入力

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

出力

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

適切な用途

YAMNetが利用できる

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

制限事項

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

モデルのカスタマイズ

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

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

さらに詳しい資料とリソース

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