Google Cloud Speech APIの利用方法について(syncrecognizeメソッド)


はじめに

本投稿の情報を利用することによって生じるいかなる損害についても、責任を負うものではありません。
また、発言は個人の見解であり、所属する組織の見解ではありません。

音声認識について

近年GoogleやMicrosoft、IBMをはじめとする企業において、ディクテーション(書き起こし)を行うAPIがリリースされています。今回はこの中から近年8割から9割近い制度を叩き出していると噂のGoogle Cloud Speech API を使ってみました。

※参考

Google Google Cloud Speech API

Microsoft Bing Speech API

IBM Speech to Text

APIを使ってみる(準備編)

各社とも前節のリンクからリアルタイムで試すことはできます。


↑”日本語(日本)”を選択してマイクアイコンからディクテーションが可能です。

せっかくなら録音した長文(〜60sec)も試してみたいところ。

利用までの手順は大きく4つ

①プロジェクトを作成する
②APIを有効にする
③APIキーを生成する
④Webコンソールorお好みの言語からAPIを叩く

①〜③に関しては参考資料を参照していただくか、QuickStartを参考にされることをおすすめします。

APIを使ってみる(実行編)

Google Cloud Storageに保存した音声をAPIに投げて、認識結果を受け取ります。

Google Storageからファイルを読み込む

Google Storageに音声ファイルを上げ、APIに投げるためにJSONファイルに音声の詳細をまとめる

sync-request.json
{
  'config': {  
      'encoding':'LINEAR16',
      'sampleRate': 16000,
      'languageCode': 'ja-JP'
  },
  'audio': {
      'uri':'gs://cloud-samples-tests/speech/brooklyn.flac'
  }
}  

config

encoding:拡張子を指定します。".wav"で読み込む際は'LINEAR16'とします。
sampleRate:サンプリング周波数を指定します。ファイルと一致してないと動かないです。
languageCode: 言語情報を指定します。(英語のときは’en-US’)

audio

uri:ファイルの保存先を指定します。今回はGoogle StorageのURIを指定します。

サービスアカウントを認証

サービスアカウントキーを認証情報を作成から作成し、以下のコマンドを実行

$ gcloud auth activate-service-account --key-file=service-account-key-file

アクセストークンの発行

$ gcloud auth print-access-token

access_token //APIを叩くときに利用

syncrecognizeメソッドを実行

$ curl -s -k -H "Content-Type: application/json" \
    -H "Authorization: Bearer access_token" \
    https://speech.googleapis.com/v1beta1/speech:syncrecognize \
    -d @sync-request.json

”access_token”には前項で取得したものを利用

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "こんにちは",
          "confidence": 0.00000000
        }
      ]
    }
  ]
}

おわりに

今回はGoogle Cloud Speech APIの利用方法について簡単にまとめました。
何はともあれ分からないことがあれば公式ドキュメントを参照ください。
Google Cloud Speech API Documentation
60sec以上の文章を読み込ませる場合に関してはまた改めて書きたいと思います。

参考

Google Cloud Speech API Beta でwavファイルの音声認識