このチュートリアルでは、電話で録音した音声を Speech-to-Text で文字変換する方法について説明します。
音声ファイルのソースはさまざまです。電話で録音した音声(ボイスメールなど)の場合もあれば、動画ファイルのサウンドトラックの場合もあります。
Speech-to-Text では、複数の機械学習モデルのいずれかを使用して、音源に最も適合する方法で音声ファイルを文字変換できます。音声文字変換の結果を良くするため、音声データの音源を指定することもできます。音源を指定すると、Speech-to-Text は、音声ファイルに類似するデータでトレーニングされた機械学習モデルを使用して音声ファイルを処理します。
目標
- 電話で録音した音声(ボイスメールなど)の文字変換リクエストを Speech-to-Text に送信する。
- 音声文字変換リクエストで拡張音声認識モデルを指定する。
料金
このチュートリアルでは、以下を含む、Cloud Platform の有料コンポーネントを使用します。
- Speech-to-Text
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。
始める前に
このチュートリアルは次のことを前提としています。
- Google Cloud コンソールで Speech-to-Text プロジェクトを設定している。
- Google Cloud コンソールでアプリケーションのデフォルト認証情報を使用する環境が設定されている。
- 選択したプログラミング言語の開発環境を設定している。
- 選択したプログラミング言語の Google Cloud クライアント ライブラリをインストールしている。
リクエストを送信する
通話やボイスメールなど、電話でキャプチャした音声を文字に変換するときに最高の品質を得るには、RecognitionConfig
ペイロードに含まれる model
フィールドの値を phone_call
に設定します。model
フィールドは、どの音声認識モデルを音声文字変換リクエストに使用するかを Speech-to-Text API に指示します。
拡張モデルを使用すると、電話の音声の変換結果を向上させることができます。拡張モデルを使用するには、RecognitionConfig
ペイロードで useEnhanced
フィールドを true
に設定します。
次のサンプルコードは、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", "languageCode": "en-US", "enableWordTimeOffsets": false, "enableAutomaticPunctuation": true, "model": "phone_call", "useEnhanced": true }, "audio": { "uri": "gs://cloud-samples-tests/speech/commercial_mono.wav" } }'
リクエスト本文の構成の詳細については、RecognitionConfig
のリファレンス ドキュメントをご覧ください。
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードと JSON 形式のレスポンスを返します。
{ "results": [ { "alternatives": [ { "transcript": "Hi, I'd like to buy a Chromecast. I was wondering whether you could help me with that.", "confidence": 0.8930228 } ], "resultEndTime": "5.640s" }, { "alternatives": [ { "transcript": " Certainly, which color would you like? We are blue black and red.", "confidence": 0.9101991 } ], "resultEndTime": "10.220s" }, { "alternatives": [ { "transcript": " Let's go with the black one.", "confidence": 0.8818244 } ], "resultEndTime": "13.870s" }, { "alternatives": [ { "transcript": " Would you like the new Chromecast Ultra model or the regular Chromecast?", "confidence": 0.94733626 } ], "resultEndTime": "18.460s" }, { "alternatives": [ { "transcript": " Regular Chromecast is fine. Thank you. Okay. Sure. Would you like to ship it regular or Express?", "confidence": 0.9519095 } ], "resultEndTime": "25.930s" }, { "alternatives": [ { "transcript": " Express, please.", "confidence": 0.9101229 } ], "resultEndTime": "28.260s" }, { "alternatives": [ { "transcript": " Terrific. It's on the way. Thank you. Thank you very much. Bye.", "confidence": 0.9321616 } ], "resultEndTime": "34.150s" } ] }
Go
Speech-to-Text 用のクライアント ライブラリをインストールして使用する方法については、Speech-to-Text クライアント ライブラリをご覧ください。 詳細については、Speech-to-Text の Go API リファレンス ドキュメントをご覧ください。
Speech-to-Text に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
Speech-to-Text 用のクライアント ライブラリをインストールして使用する方法については、Speech-to-Text クライアント ライブラリをご覧ください。 詳細については、Speech-to-Text の Java API リファレンス ドキュメントをご覧ください。
Speech-to-Text に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
Speech-to-Text 用のクライアント ライブラリをインストールして使用する方法については、Speech-to-Text クライアント ライブラリをご覧ください。 詳細については、Speech-to-Text の Node.js API リファレンス ドキュメントをご覧ください。
Speech-to-Text に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Speech-to-Text 用のクライアント ライブラリをインストールして使用する方法については、Speech-to-Text クライアント ライブラリをご覧ください。 詳細については、Speech-to-Text の Python API リファレンス ドキュメントをご覧ください。
Speech-to-Text に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
その他の言語
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.