このチュートリアルでは、Speech-to-Text を使用して、動画ファイルの音声トラックを文字に変換する方法について説明します。
音声ファイルのソースはさまざまです。電話で録音した音声(ボイスメールなど)の場合もあれば、動画ファイルのサウンドトラックの場合もあります。
Speech-to-Text では、複数の機械学習モデルのいずれかを使用して、音源に最も適合する方法で音声ファイルを文字変換できます。音声文字変換の結果を良くするため、音声データの音源を指定することもできます。音源を指定すると、Speech-to-Text は音声ファイルと類似したデータでトレーニングされた機械学習モデルを使用して音声ファイルを処理します。
目標
- 動画ファイルの音声文字変換リクエストを Speech-to-Text に送信する。
費用
このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。
- Speech-to-Text
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
始める前に
このチュートリアルは次のことを前提としています。
- Google Cloud Console で Speech-to-Text プロジェクトを設定している。
- Google Cloud コンソールでアプリケーションのデフォルト認証情報を使用する環境が設定されている。
- 選択したプログラミング言語の開発環境を設定している。
- 選択したプログラミング言語の Google Cloud クライアント ライブラリをインストールしている。
音声データを準備する
動画から音声を文字変換するには、動画ファイルからデータを抽出する必要があります。音声データを抽出したら、それを Cloud Storage バケットに保存するか、Base64 エンコードに変換する必要があります。
音声データを抽出する
FFmpeg など、音声ファイルと動画ファイルを処理するすべてのファイル変換ツールを使用できます。
ffmpeg
を使用して動画ファイルを音声ファイルに変換するには、下のコード スニペットを使用します。
ffmpeg -i video-input-file audio-output-file
音声データを保存または変換する
ローカルマシンや Cloud Storage バケットに保存されている音声ファイルを音声文字変換できます。
音声ファイルを既存の Cloud Storage バケットにアップロードするには、gsutil
ツールで次のコマンドを使用します。
gsutil cp audio-output-file storage-bucket-uri
ローカル ファイルを使用している場合、コマンドラインから curl
ツールを使ってリクエストを送信する予定であれば、あらかじめ音声ファイルを Base64 でエンコードしたデータに変換する必要があります。
音声ファイルをテキスト ファイルに変換するには、次のコマンドを使用します。
base64 audio-output-file -w 0 > audio-data-text
リクエストを送信する
音声文字変換リクエストを 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/v1/speech:recognize \ --data '{ "config": { "encoding": "LINEAR16", "sampleRateHertz": 16000, "languageCode": "en-US", "model": "video" }, "audio": { "uri": "gs://cloud-samples-tests/speech/Google_Gnome.wav" } }'
リクエスト本文の構成の詳細については、RecognitionConfig
のリファレンス ドキュメントをご覧ください。
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードと JSON 形式のレスポンスを返します。
{ "results": [ { "alternatives": [ { "transcript": "OK Google stream stranger things from Netflix to my TV okay stranger things from Netflix playing on TV from the people that brought you Google home comes the next evolution of the smart home and it's just outside your window me Google know hi how can I help okay no what's the weather like outside the weather outside is sunny and 76 degrees he's right okay no turn on the hose I'm holding sure okay no I'm can I eat this lemon tree leaf yes what about this Daisy yes but I wouldn't recommend it but I could eat it okay Nomad milk to my shopping list I'm sorry that sounds like an indoor request I keep doing that sorry you do keep doing that okay no is this compost really we're all compost if you think about it pretty much everything is made up of organic matter and will return", "confidence": 0.9251011 } ] } ] }
Go
Java
Node.js
Python
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET の Speech-to-Text のリファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP の Speech-to-Text のリファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby の Speech-to-Text のリファレンス ドキュメントをご覧ください。
リモート ファイル リクエスト
Java
Node.js
Python
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET の Speech-to-Text のリファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP の Speech-to-Text のリファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby の Speech-to-Text のリファレンス ドキュメントをご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトの削除
課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。
プロジェクトを削除するには:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
インスタンスの削除
Compute Engine インスタンスを削除するには:
- In the Google Cloud console, go to the VM instances page.
- Select the checkbox for the instance that you want to delete.
- To delete the instance, click More actions, click Delete, and then follow the instructions.
デフォルト ネットワークのファイアウォール ルールを削除する
ファイアウォール ルールを削除するには:
- In the Google Cloud console, go to the Firewall page.
- Select the checkbox for the firewall rule that you want to delete.
- To delete the firewall rule, click Delete.
次のステップ
- 音声のタイムスタンプを取得する方法を学ぶ。
- 音声ファイル内のさまざまなスピーカーを識別する。
使ってみる
Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Speech-to-Text のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
Speech-to-Text の無料トライアル