このページでは、Speech-to-Text で文字変換する音声データ内の話者ごとにラベルを付ける方法について説明します。
音声データに複数の人が話しているサンプルが含まれていることがあります。たとえば、電話の通話には 2 人以上の音声が含まれていることが一般的です。そのため、通話の音声文字変換では、その都度、話者が誰であるのかを示すことが理想的です。
話者ダイアライゼーション
Speech-to-Text は、同じ音声クリップ内の複数の話者を認識できます。音声文字変換リクエストを Speech-to-Text に送信するときに、音声サンプル内の異なる話者を識別するように指示するパラメータを指定できます。この機能は「話者ダイアライゼーション」と呼ばれ、音声内で話者が変わったことを検出して、検出した各音声に番号でラベル付けします。
音声文字変換リクエストで話者ダイアライゼーションを有効にすると、Speech-to-Text は音声サンプルに含まれる異なる音声を識別するようになります。音声文字変換された各単語には、話者ごとに割り当てられた番号のタグがつけられます。同じ話者が話した単語は同じ数字になります。音声文字変換の結果に含まれる話者の最大数は、Speech-to-Text が音声サンプル内で一意に特定できる話者の数です。
Speech-to-Text で話者ダイアライゼーションを使用すると、音声文字変換のすべての結果について、その時点までの集計情報が生成されます。各結果には前の結果の単語が含まれます。したがって、最終結果の words
配列が、音声文字変換の完全なダイアライゼーションの結果になります。
言語サポートページで、ご利用の言語でこの機能が利用できるかどうかをご確認ください。
リクエストで話者ダイアライゼーションを有効にする
話者ダイアライゼーションを有効にするには、RecognitionFeatures
で diarization_config
フィールドを設定する必要があります。文字変換で想定される話者の数に応じて min_speaker_count
と max_speaker_count
の値を設定する必要があります。
Speech-to-Text では、speech:recognize
とストリーミングのどの音声認識メソッドでも話者ダイアライゼーションをサポートしています。
ローカル ファイルを使用する
次のコード スニペットは、ローカル ファイルを使用して Speech-to-Text への音声文字変換リクエストで話者ダイアライゼーションを有効にする方法を示しています。
プロトコル
詳細については、speech:recognize
API エンドポイントをご覧ください。
同期音声認識を実行するには、POST
リクエストを作成し、適切なリクエスト本文を指定します。次は、curl
を使用した POST
リクエストの例です。この例では、Google Cloud CLI を使用してアクセス トークンを生成します。gcloud CLI のインストール手順については、クイックスタートをご覧ください。
curl -s -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ https://speech.googleapis.com/v2/projects/{project}/locations/{location}/recognizers/{recognizer}:recognize \ --data '{ "config": { "features": { "diarizationConfig": { "minSpeakerCount": 2, "maxSpeakerCount": 2 }, } }, "uri": "gs://cloud-samples-tests/speech/commercial_mono.wav" }' > speaker-diarization.txt
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードと JSON 形式のレスポンスを返します(speaker-diarization.txt
というファイル名で保存されます)。
{ "results": [ { "alternatives": [ { "transcript": "hi I'd like to buy a Chromecast and I was wondering whether you could help me with that certainly which color would you like we have blue black and red uh let's go with the black one would you like the new Chromecast Ultra model or the regular Chrome Cast regular Chromecast is fine thank you okay sure we like to ship it regular or Express Express please terrific it's on the way thank you thank you very much bye", "confidence": 0.92142606, "words": [ { "startOffset": "0s", "endOffset": "1.100s", "word": "hi", "speakerLabel": "2" }, { "startOffset": "1.100s", "endOffset": "2s", "word": "I'd", "speakerLabel": "2" }, { "startOffset": "2s", "endOffset": "2s", "word": "like", "speakerLabel": "2" }, { "startOffset": "2s", "endOffset": "2.100s", "word": "to", "speakerLabel": "2" }, ... { "startOffset": "6.500s", "endOffset": "6.900s", "word": "certainly", "speakerLabel": "1" }, { "startOffset": "6.900s", "endOffset": "7.300s", "word": "which", "speakerLabel": "1" }, { "startOffset": "7.300s", "endOffset": "7.500s", "word": "color", "speakerLabel": "1" }, ... ] } ], "languageCode": "en-us" } ] }
Go
Speech-to-Text 用のクライアント ライブラリをインストールして使用する方法については、Speech-to-Text クライアント ライブラリをご覧ください。 詳細については、Speech-to-Text の Go API リファレンス ドキュメントをご覧ください。
Speech-to-Text に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Speech-to-Text 用のクライアント ライブラリをインストールして使用する方法については、Speech-to-Text クライアント ライブラリをご覧ください。 詳細については、Speech-to-Text の Python API リファレンス ドキュメントをご覧ください。
Speech-to-Text に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。