Cloud Speech API を使用すると、80 以上の言語で音声ファイルの音声をテキストに変換できます。
このラボでは、音声ファイルを録音して Cloud Speech API に送信し、音声文字変換を行います。
学習内容
- Speech API リクエストを作成し、curl で API を呼び出す
- さまざまな言語の音声ファイルを使用して Speech API を呼び出す
必要なもの
このチュートリアルをどのように使用されますか?
Google Cloud Platform のご利用経験について、いずれに該当されますか?
セルフペース型の環境設定
Google アカウント(Gmail または Google Apps)をお持ちでない場合は、1 つ作成する必要があります。Google Cloud Platform のコンソール(console.cloud.google.com)にログインし、新しいプロジェクトを作成します。
プロジェクト ID を忘れないようにしてください。プロジェクト ID はすべての Google Cloud プロジェクトを通じて一意の名前にする必要があります(上記の名前はすでに使用されているので使用できません)。以降、このコードラボでは PROJECT_ID
と呼びます。
次に、Google Cloud リソースを使用するために、Cloud Console で課金を有効にする必要があります。
この Codelab の操作をすべて行っても、費用は数ドル程度です。ただし、その他のリソースを使いたい場合や、実行したままにしておきたいステップがある場合は、追加コストがかかる可能性があります(このドキュメントの最後にある「クリーンアップ」セクションをご覧ください)。
Google Cloud Platform の新規ユーザーは、300 ドル分の無料トライアルをご利用いただけます。
画面の左上にあるメニュー アイコンをクリックします。
プルダウンから [API とサービス ] ダッシュボードを選択します。
[API とサービスの有効化] をクリックします。
検索ボックスで「speech」を検索します。[Google Cloud Speech API] をクリックします。
[有効にする] をクリックして、Cloud Speech API を有効にします。
有効になるまで数秒待ちます。有効にすると、次のように表示されます。
Google Cloud Shell は、 Cloud 上で動作するコマンドライン環境です。この Debian ベースの仮想マシンには、必要な開発ツール(gcloud
、bq
、git
など)がすべて用意され、永続的な 5 GB のホーム ディレクトリが提供されています。Cloud Shell を使用して Speech API へのリクエストを作成します。
Cloud Shell を始めるには、ヘッダーバーの右上にある [Google Cloud Shell をアクティブにする] アイコンをクリックします。
コンソールの下部の新しいフレーム内で Cloud Shell セッションが開き、コマンドライン プロンプトが表示されます。user@project:~$ プロンプトが表示されるまで待ちます。
curl
を使用してリクエストを Speech API に送信するために、リクエスト URL で渡す API キーを生成する必要があります。API キーを作成するには、プロジェクト ダッシュボードの [API とサービス] > [認証情報] セクションに移動します。
[認証情報を作成] をクリックします。
プルダウン メニューで [API キー] を選択します。
次に、生成したキーをコピーして [閉じる] を選択します(キーを制限しないでください)。
これで API キーができました。各リクエストに API キーの値を挿入せずに済むように、環境変数に API キーを保存します。環境変数にキーを保存するには、Cloud Shell で次のように入力します。<your_api_key>
の部分は、コピーしたキーに置き換えてください。
export API_KEY=<YOUR_API_KEY>
Speech API へのリクエストは、request.json
ファイルでビルドできます。このファイルを作成して編集するには、お好みのコマンドライン エディタ(nano、vim、emacs)のいずれかを使用するか、Cloud Shell の組み込みウェブ エディタを使用します。
ホーム ディレクトリにファイルを作成して簡単に参照できるようにし、request.json
ファイルに次の内容を追加します。
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "en-US"
},
"audio": {
"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
}
}
リクエストの本文には config
オブジェクトと audio
オブジェクトが記述されています。config
では、リクエストの処理方法を Speech API に指示します。encoding
パラメータでは、API に送信する音声ファイルに使用する音声エンコードのタイプを API に指定します。FLAC
は、.raw ファイルのエンコード タイプです(エンコード タイプの詳細については、ドキュメントをご覧ください)。config
オブジェクトに追加できるパラメータは他にもありますが、必須パラメータは encoding
だけです。languageCode
がリクエストに含まれていない場合は、デフォルトで英語に設定されます。
audio
オブジェクトでは、Cloud Storage 内の音声ファイルの uri または base64 でエンコードされた音声を文字列として API に渡すことができます。ここでは Cloud Storage の URL を使用していました。次のステップは、Speech API の呼び出しです。
次の curl
コマンドを実行して、リクエストの本文を、先ほど保存した API キー環境変数とともに Speech API に渡します(コマンドは 1 行で入力してください)。
curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"
この curl
コマンドから返されるレスポンスは次のようになります。
{
"results": [
{
"alternatives": [
{
"transcript": "how old is the Brooklyn Bridge",
"confidence": 0.98267895
}
]
}
]
}
Speech API によって音声ファイルから文字変換されたテキストは、transcript
値に入れて返されます。confidence
値は、API がどの程度の精度で音声を文字変換できたと考えられるかを示します。
上記のリクエストでは、recognize
メソッドを呼び出したことがわかります。Speech API は、同期と非同期の両方の音声文字変換をサポートしています。この例では、録音済みの音声ファイルを送信しましたが、ユーザーが話しているときにストリーミング音声の文字変換を行う場合にも、longrunningrecognize
メソッドを使用できます。
Speech-to-Text API は 100 以上の言語の音声文字変換をサポートしているので、多言語対応が可能です。request.json
で languageCode
パラメータを変更できます。サポート対象の言語については、こちらをご覧ください。
フランス語の音声ファイルを試してみましょう(確認する場合はこちらでお聞きください)。request.json を次のように変更します。
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "fr"
},
"audio": {
"uri":"gs://speech-language-samples/fr-sample.flac"
}
}
次のようなレスポンスが表示されます。
{
"results": [
{
"alternatives": [
{
"transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
"confidence": 0.9710122
}
]
}
]
}
これはフランスで有名なある童話の一文です。別の言語の音声ファイルがある場合は、Cloud Storage に追加してリクエストの languageCode
パラメータを変更してみてください。
このラボでは、Speech API で音声文字変換を行う方法を学びました。この例では、音声ファイルの Google Cloud Storage URI を API に渡しました。別の方法として、base64 でエンコードされた音声コンテンツを渡すこともできます。
学習した内容
- Speech API に音声ファイルの Google Cloud Storage URI を渡す
- Speech API リクエストを作成し、curl で API を呼び出す
- さまざまな言語の音声ファイルを使用して Speech API を呼び出す
次のステップ
- ドキュメントにある Speech API のチュートリアルを確認します。
- Vision API と Natural Language API をお試しください。