Cloud Speech-to-Text API を使用した音声文字変換

Cloud Speech API を使用すると、80 以上の言語で音声ファイルの音声をテキストに変換できます。

このラボでは、音声ファイルを録音し、音声文字変換のために Cloud Speech API に送信します。

学習内容

  • Speech API リクエストを作成し、curl で API を呼び出す
  • さまざまな言語の音声ファイルを使用して Speech API を呼び出す

必要なもの

  • Google Cloud Platform プロジェクト
  • ChromeFirefox などのブラウザ

このチュートリアルをどのように使用されますか?

通読するのみ 内容を読んで演習を完了する

Google Cloud Platform のご利用経験について、いずれに該当されますか?

初心者 中級者 上級者

セルフペース型の環境設定

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

2016-02-10 12:45:26.png のスクリーンショット

プロジェクト ID を忘れないようにしてください。プロジェクト ID はすべての Google Cloud プロジェクトを通じて一意の名前にする必要があります(上記の名前はすでに使用されているので使用できません)。以降、このコードラボでは PROJECT_ID と呼びます。

次に、Google Cloud リソースを使用するために、Cloud Console で課金を有効にする必要があります。

この Codelab を実施した場合、費用は数ドルを超えることはありませんが、より多くのリソースを使用する場合や、実行したままにしておくとさらにコストがかかる場合があります(このドキュメントの最後にある「クリーンアップ」セクションをご覧ください)。

Google Cloud Platform の新規ユーザーは 300 ドル分の無料トライアルをご利用いただけます。

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

プルダウンから [API とサービス] ダッシュボードを選択します。

[API とサービスの有効化] をクリックします。

次に、検索ボックスで「話し声」を検索します。[Google Cloud Speech API] をクリックします。

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

有効になるまで数秒待ちます。有効にすると、次の画面が表示されます。

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

Cloud Shell の使用を開始するには、ヘッダーバーの右上の [Google Cloud Shell をアクティブにする] スクリーンショット 2015-06-08 5.30.32 PM.png アイコンをクリックします。

コンソールの下部の新しいフレーム内で 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 でエンコードされた音声を文字列として渡すことができます。ここでは Cloud Storage の URL を使用していました。次に Speech API を呼び出します。

これで、次の curl コマンド(1 つのコマンドラインですべて指定)を使用して、リクエスト本文と前に保存した API キー環境変数を Speech API に渡すことができるようになりました。

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
        }
      ]
    }
  ]
}

transcript 値は、Speech API による音声ファイルのテキスト音声文字変換を返します。confidence 値は、API が音声を正確に文字変換したことを示します。

上記のリクエストで recognize メソッドを呼び出しています。Speech API は、同期と非同期の両方の音声文字変換をサポートしています。この例では、完全な音声ファイルを送信しましたが、longrunningrecognize メソッドを使用すると、ユーザーが話している間にストリーミング音声文字変換をテキストに変換することもできます。

Speech API は 100 以上の言語の音声文字変換をサポートしているので、多言語対応が可能です。languageCode パラメータは request.json で変更できます。サポートされている言語の一覧については、こちらをご覧ください。

フランス語の音声ファイルを試してみましょう(プレビューをご希望の場合はこちらからお聴きいただけます)。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 を呼び出す

次のステップ