Cloud Speech API は、80 種の言語で音声ファイルから音声テキスト化を行えます。

本ラボでは、音声ファイルを記録し、それを Cloud Speech API に送信してテキスト化します。

学習内容

必要な環境

本チュートリアルをどのように使用しますか?

通読するだけ 通読し、演習をこなす

Google Cloud Platform についてのあなたの習熟度として、最も適切なものを選択してください

初心者 中級者 上級者

自己学習環境セットアップ

Google アカウント (Gmail または Google Apps) をまだ持っていない場合、作成する必要があります。Google Cloud Platform コンソール (console.cloud.google.com) にサインインし、新しいプロジェクトを作成します。

すべての Google Cloud プロジェクトで一意の名前であるプロジェクト ID (上記の名前はすでに取得されているため、使用できません!) を覚えてください。

本コードラボの実行には数セントもかかりませんが、より多くのストレージを利用するか、オブジェクトを削除しなかった場合、より多く料金がかかる場合があります (本書末尾の「バケットの削除」セクションを参照してください)。Google Cloud Storage の価格設定については、ここを参照してください。

Google Cloud Platform の新規ユーザーは、300 ドル無料トライアルの対象となります。

画面右上のメニュー アイコンをクリックします。

ドロップダウンから API Manager を選択します。

[Enable API] をクリックします。

そして、検索ボックスで「speech」を検索します。[Google Cloud Speech API] をクリックします。

[Enable] をクリックして、Cloud Speech API を有効にします。

有効になるまで、数秒待ってください。有効になると、これが表示されます。

Google Cloud Shell は、Cloud で動作するコマンド ライン環境です。この Debian ベース仮想マシンには、必要な開発ツール (gcloud、bq、git など) がすべてロードされており、永続的な 5GB ホーム ディレクトリを提供します。Cloud Shell を使用して、Speech API への要求を作成します。

Cloud Shell を起動するには、ヘッダー バーの右上にある [Activate Google Cloud Shell] アイコンをクリックします。

Cloud Shell セッションが、コンソール下部の新しいフレーム内で開き、コマンド ライン プロンプトが表示されます。user@project:~$ プロンプトが表示されるまで待ちます。

curl を使用して要求を Speech API に送信するため、要求 URL で渡す API キーを生成する必要はありません。API キーを作成するには、プロジェクト ダッシュボードの [API Manager] セクションに移動します。

そして、[Credentials] タブに移動し、[Create credentials] をクリックします。

ドロップダウン メニューで、[API key] を選択します。

そして、[Server key] を選択します。

デフォルト名を維持し、[Accept requests from these server IP addresses] を空にします。そして、[Create] をクリックし、生成したキーをコピーします。

API キーがあるので、各要求に API キーの値を挿入せずに済むよう、それを環境変数に保存します。Cloud Shell で、これを行えます。必ず、<your_api_key> をコピーしたキーに置き換えます。

$ export SPEECH_API_KEY=<YOUR_API_KEY>

request.json ファイルを Speech API への要求を構築できます。最初にこのファイルを Cloud Shell に作成します。

$ touch request.json

任意のコマンド ライン エディタ (nano、vim、emacs)を使用して開きます。次の内容を request.json ファイルに加え、uri 値を生音声ファイルの uri に置き換えます。

request.json

{
  "config":{
      "encoding":"FLAC",
      "sample_rate":16000,
      "language_code":"en-US"
  },
  "audio":{
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

要求ボディには、config および audio オブジェクトがあります。config で、Speech API に要求の処理方法を伝えます。encoding パラメータによって、APIに送信する音声ファイルに使用している音声エンコードのタイプをAPIに示しま。FLAC は、.raw ファイルのエンコード タイプです (詳細については、エンコード タイプの説明書 を参照してください)。sample_rate は、API に送信する音声データのヘルツのレートです。config オブジェトに追加できるパラメータは他にもありますが、必要なのは encoding および sample_rate のみです。

audio ブジェクトで、Cloud Storage の音声ファイルの uri を API に渡します。これで、Speech API を呼び出す準備ができました!

次の curl コマンド (すべて単一コマンド ライン内) を使用して、先ほど保存した API キー環境変数に従って、要求ボディを Speech API に渡せます

$ curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1beta1/speech:syncrecognize?key=${SPEECH_API_KEY}"

応答は次のように表示されます。

{
  "results":[
    {
      "alternatives":[
        {
          "transcript":"how old is the Brooklyn Bridge",
          "confidence":0.98267895
        }
      ]
    }
  ]
}

transcript は、音声ファイルの Speech API のテキスト化を返し、confidence 値は音声テキスト化の正確性に対する API の信頼性を示しています。

上記の要求では syncrecognize ソッドを呼び出しました。Speech API は、同期音声テキスト化と非同期音声テキスト化両方に対応しています。この例では、完全な音声ファイルを送信しましたが、syncrecognize ソッドを使用して、ユーザーが離しながらストリーミング音声テキスト化を実行することも可能です。

あなたは、マルチリンガルですか? Speech API は、80種類を超える言語の音声テキスト化に対応していま! request.json で language_code パラメータを変更できます。対応言語のリストについては、ここを参照してください。

たとえば、スペイン語の音声ファイルの場合、次のように request.json ファイルに language_code 属性を設定できます。

request.json

 {
  "config":{
      "encoding":"FLAC",
      "sample_rate":16000,
      "language_code":"es-ES"
  },
  "audio":{
      "uri":"gs://.../..."
  }
}

Speech API による音声テキスト化の方法について学びました。この例では、音声ファイルの Google Cloud Storage URI を API に渡しました。また、音声コンテンツの base64 エンコード ストリングを渡すことも可能です。

おさらい

次のステップ