このページでは、Speech-to-Text V2 API を使用して、音声ファイルから SRT 形式と VTT 形式の字幕を自動的に生成する方法について説明します。
概要
Speech-to-Text V2 API を使用すると、SubRip(.srt)と WebVTT(.vtt)の両方の形式で正確な字幕を自動的に生成できます。これらの形式を使用して音声のテキストとタイミング情報を保存することで、メディアと同期するように字幕を表示し、字幕を作成することができます。
Google Speech-to-Text へのリクエストで字幕出力を有効にする機能は、V2 API でのみサポートされています。具体的に言えば、長い音声ファイルの音声文字変換に使用できるのは BatchRecognize
のみです。出力は Cloud Storage バケットに保存することも、インラインで返すこともできます。Cloud Storage の出力構成には同時に複数の形式を指定できます。出力構成は指定したバケットに書き込まれ、異なるファイル拡張子が付加されます。
リクエストで字幕出力を有効にする
Google Speech-to-Text を使用して音声の SRT または VTT 字幕出力を生成するには、次の手順に従って音声文字変換リクエストで字幕出力を有効にします。
output_format_config
フィールドに値を入力して Speech-to-Text V2 API のBatchRecognize
メソッドにリクエストを送信します。指定する値は次のとおりです。srt
: 出力が SubRip(.srt)形式に従う場合。vtt
: 出力が WebVTT(.vtt)形式に従う場合。native
: シリアル化されたBatchRecognizeResults
リクエストとして指定された形式がない場合は、デフォルトの出力形式になります。
- このオペレーションは非同期に実行されるため、完了するまでリクエストをポーリングします。
Cloud Storage の出力構成には、同時に複数の形式を指定できます。出力構成は指定したバケットに書き込まれ、異なるファイル拡張子が付加されます。拡張子はそれぞれ、ネイティブ サポートの場合は .json
、SRT サポートの場合は .srt
、WebVTT サポートの場合は .vtt
になります。
インライン出力構成に対して複数の形式が指定されている場合、各形式は BatchRecognizeFileResult.inline_result メッセージのフィールドとして使用できます。
次のコード スニペットは、ローカル ファイルとリモート ファイルを使用して、Speech-to-Text への音声文字変換リクエストで字幕出力を有効にする方法を示しています。
API
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
https://speech.googleapis.com/v2/projects/my-project/locations/global/recognizers/_:batchRecognize \
--data '{
"files": [{
"uri": "gs://my-bucket/jfk_and_the_press.wav"
}],
"config": {
"features": { "enableWordTimeOffsets": true },
"autoDecodingConfig": {},
"model": "long",
"languageCodes": ["en-US"]
},
"recognitionOutputConfig": {
"gcsOutputConfig": { "uri": "gs://my-bucket" },
"output_format_config": { "srt": {} }
}
}'
次のステップ
- [長い音声ファイルを文字に変換する][batch-recognize]方法を学習する。
- 最適な音声文字変換モデルを選択する方法を学習する。
- [警告音][chirp]を使用して、音声ファイルを文字に変換する。
- 最高のパフォーマンスと精度を実現するための方法やヒントを確認する。[ベスト プラクティス][best-practices]のドキュメントをご覧ください。