音声分類ガイド

MediaPipe 音声分類タスクを使用すると、ギター音楽、トレイン ホイッスル、鳥の歌など、定義されたカテゴリのセットに音声クリップを分類できます。カテゴリは、モデルのトレーニング中に定義されます。このタスクは、独立した音声クリップまたは連続ストリームとして機械学習(ML)モデルを使用して音声データを操作し、確率スコアの降順でランク付けされた潜在的なカテゴリのリストを出力します。

試してみる

使ってみる

このタスクの使用を開始するには、ターゲット プラットフォームの実装ガイドのいずれかに沿って操作します。以下のプラットフォーム固有のガイドでは、推奨モデルや推奨構成オプションを含むコードサンプルなど、このタスクの基本的な実装について説明します。

これらのプラットフォーム固有のガイドでは、推奨モデルや、推奨される構成オプションを含むコードサンプルなど、このタスクの基本的な実装について説明します。

タスクの詳細

このセクションでは、このタスクの機能、入力、出力、構成オプションについて説明します。

機能

  • 入力音声処理 - 音声のリサンプリング、バッファリング、フレーミング、フーリエ変換などを行います。
  • Label map locale - 表示名に使用する言語を設定します
  • スコアしきい値 - 予測スコアに基づいて結果をフィルタリングします。
  • トップ K 検出 - 数値の検出結果をフィルタします。
  • ラベルの許可リストと拒否リスト - 検出されたカテゴリを指定します。
タスクの入力 タスクの出力
入力は次のいずれかのデータ型になります。
  • 音声クリップ
  • 音声ストリーム
オーディオ分類器は、以下を含むカテゴリのリストを出力します。
  • カテゴリ インデックス: モデル出力のカテゴリのインデックス
  • スコア: このカテゴリの信頼スコア。通常は [0,1] の確率です。
  • カテゴリ名(省略可): TFLite Model Metadata で指定されているカテゴリの名前(利用可能な場合)。
  • カテゴリの表示名(省略可): TFLite Model Metadata で指定されたカテゴリの表示名(利用可能な場合、表示名のロケール オプションで指定された言語)。

構成オプション

このタスクには、次の構成オプションがあります。

オプション名 説明 値の範囲 デフォルト値
running_mode タスクの実行モードを設定します。音声分類には 2 つのモードがあります。

AUDIO_CLIPS: 独立した音声クリップに対して音声タスクを実行するモード。

AUDIO_STREAM: マイクからなど、音声ストリームで音声タスクを実行するモード。このモードでは、resultListener を呼び出してリスナーを設定し、分類結果を非同期で受信する必要があります。
{AUDIO_CLIPS, AUDIO_STREAM} AUDIO_CLIPS
display_names_locale タスクのモデルのメタデータで提供される表示名に使用するラベルの言語を設定します(利用可能な場合)。英語の場合、デフォルトは en です。TensorFlow Lite Metadata Writer API を使用して、カスタムモデルのメタデータにローカライズされたラベルを追加できます。言語 / 地域コード en
max_results 返されるトップスコアの分類結果の最大数を設定します(省略可)。0 未満の場合、利用可能なすべての結果が返されます。 任意の正の数 -1
score_threshold モデル メタデータ(存在する場合)で指定された値をオーバーライドする予測スコアのしきい値を設定します。この値を下回る結果は拒否されます。 [0.0, 1.0] 未設定
category_allowlist 許可されるカテゴリ名のオプション リストを設定します。空でない場合、カテゴリ名がこのセットにない分類結果は除外されます。重複するカテゴリ名や不明なカテゴリ名は無視されます。 このオプションは category_denylist と相互に排他的であり、両方を使用するとエラーが発生します。 任意の文字列 未設定
category_denylist 使用できないカテゴリ名のオプション リストを設定します。空でない場合、カテゴリ名がこのセットに含まれる分類結果は除外されます。重複するカテゴリ名や不明なカテゴリ名は無視されます。このオプションは category_allowlist と相互に排他的であり、両方を使用するとエラーになります。 任意の文字列 未設定
result_callback 音声分類器が音声ストリーム モードのときに分類結果を非同期で受け取るように結果リスナーを設定します。実行モードが AUDIO_STREAM に設定されている場合にのみ使用できます なし 未設定

モデル

音声分類では、音声分類モデルをダウンロードしてプロジェクト ディレクトリに保存する必要があります。このタスクで開発を開始するときは、ターゲット プラットフォームのデフォルトの推奨モデルから始めます。他の利用可能なモデルでは、通常、パフォーマンス、精度、解像度、リソース要件のトレードオフがあり、場合によっては追加機能が含まれていることもあります。

Yamnet モデルは、AudioSet データセットでトレーニングされた音声イベント分類器で、AudioSet データで定義された音声イベントを予測します。このモデルが認識する音声イベントについては、モデルのラベルリストをご覧ください。

モデル名 入力シェイプ 量子化タイプ バージョン
YamNet 15,600 x 1 なし(float32) 最新

タスク ベンチマーク

上記の事前トレーニング済みモデルに基づくパイプライン全体のタスク ベンチマークは次のとおりです。レイテンシの結果は、CPU / GPU を使用した Google Pixel 6 の平均レイテンシです。

モデル名 CPU レイテンシ GPU レイテンシ
YamNet 12.29 ミリ秒 -