API を使用して音声を文字に変換する

このページでは、REST インターフェースcurl コマンドを使用して、Speech-to-Text に音声認識リクエストを送信する方法について説明します。

Speech-to-Text を使用すると、Google の音声認識技術をデベロッパーのアプリケーションに簡単に統合できます。音声データを Speech-to-Text API に送信し、音声ファイルの音声が文字に変換されたテキストを取得できます。サービスの詳細については、Speech-to-Text の基本をご覧ください。

始める前に

Speech-to-Text API にリクエストを送信する前に、以下の操作を完了しておく必要があります。詳細については、始める前にのページをご覧ください。

  • GCP プロジェクトで Speech-to-Text を有効にする。
    1. Speech-to-Text の課金が有効になっていることを確認する。
  • Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init
  • (省略可)音声データを保存する新しい Google Cloud Storage バケットを作成する。

音声文字変換をリクエストする

では、Speech-to-Text を使用して、音声ファイルをテキストに変換してみましょう。次のコードサンプルを使用して、Speech-to-Text API に recognize REST リクエストを送信します。

  1. 次のテキストを含む JSON リクエスト ファイルを作成し、sync-request.json 書式なしテキスト ファイルとして保存します。

    {
      "config": {
          "encoding":"FLAC",
          "sampleRateHertz": 16000,
          "languageCode": "en-US",
          "enableWordTimeOffsets": false
      },
      "audio": {
          "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
      }
    }
      

    この JSON スニペットは、音声ファイルのエンコード形式が FLAC で、サンプルレートが 16,000 Hz であり、この音声ファイルが Google Cloud Storage に特定の URI で保存されていることを表します。音声ファイルは一般公開されているため、このファイルにアクセスするための認証情報は必要ありません。

  2. curl を使用して speech:recognize リクエストを作成し、ステップ 1 で設定した JSON リクエストのファイル名を渡します。

    サンプルの curl コマンドでは、gcloud auth print-access-token コマンドを使用して認証トークンを取得します。

    curl -s -H "Content-Type: application/json" \
        -H "Authorization: Bearer "$(gcloud auth print-access-token) \
        https://speech.googleapis.com/v1/speech:recognize \
        -d @sync-request.json
      

    curl にファイル名を渡すには、-d オプション(「データ」の意味)を使用して、ファイル名の前に @ 記号を付けます。このファイルは、curl コマンドを実行するディレクトリと同じディレクトリに存在する必要があります。

    次のようなレスポンスが表示されます。

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

これで、Speech-to-Text への最初のリクエストを送信できました。

エラーが発生する場合や Speech-to-Text からのレスポンスが空である場合は、トラブルシューティングエラーの軽減の手順を確認してください。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を実施します。

次のステップ