Google Cloud Speech API [音声をテキストに起こす] 利用方法

はじめに

今回は音声をテキストに起こしてくれるgoogleのapi「Google Cloud Speech API」 利用方法を紹介します。
基本的に、quick-start通りに進めます。

Google Cloud Platformアカウント作成

まずはGoogle Cloud Platformに登録します。 Google Cloud Platformに登録するためにはクレジットカードが必須です。 googleのアカウントを持ってない方はgoogleのアカウントから取得しましょう。
アカウント登録が済んだら、新規プロジェクトを立ち上げましょう。
quick-startには「プロジェクトの課金を有効にします。」とありますが、 しなくても使えていますので、課金するつもりのない方は有効にしなくて良いです。
Google Cloud PlatformからGoogle Cloud Speech APIを有効化します。 有効化したら、Cloud Speech API の認証情報を設定します。 この時、jsonファイルが作られるので、保存します。

CLOUD SDKインストール

次にコマンドラインからCloud Platformにアクセスするための、CLOUD SDKをインストールします。 CLOUD SDKのインストールはpython2.7で行わなくてはならないので、 それ以外の方はpyenv等を使ってバージョンをpython2.7にしておきましょう。
CLOUD SDKからCLOUD SDKをダウンロードして、解凍します。 Mac,linxならinstall.sh、windowsならinstall.batを叩いてインストールします。
インストールが終わると、gcloudコマンドが使えるようになります。 まずは初期化します。
gcloud init
次にapiのキーを作成します。 下で認証します。
gcloud auth activate-service-account --key-file="先ほど落としたjsonファイルのパス"
下でapiキーを発行します。
gcloud auth print-access-token
返ってきたAPIキーの情報をメモっておきます。 これで、Google Cloud Speech APIを使用する準備は整いました。

試してみる

本当はpythonで動かしたいですが、まずは確認。 Curlで動作の確認をします。 CurlはMac,linuxなら初期でコマンドラインから使えるコマンドです。 sync-request.jsonというファイルを下の内容で作成します。
{
  "config": {
      "encoding":"FLAC",
      "sample_rate": 16000
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}
コマンドラインから以下のコマンドでsync-request.jsonを叩きます。
curl -s -k -H "Content-Type: application/json" \
    -H "Authorization: Bearer 上でメモったAPIキー" \
    https://speech.googleapis.com/v1beta1/speech:syncrecognize \
    -d @sync-request.json
成功していたら以下のメッセージが返ってきます。
{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98267895
        }
      ]
    }
  ]
}
以上です。

おわり

ひとまず、サーバーに上がっているサンプルの音声ファイルをテキスト化した。 APIキー発行部分で割と手間取ったので今日はここで終了。 ただこんなんじゃ、全然実用性ないので、 そのうちpythonで自前の音声ファイルをテキスト化するところまで行う予定。