in my 雑記

プログラミング bump 日々のことなど

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

f:id:inmyzakki:20170923143319p:plain

はじめに

今回は音声をテキストに起こしてくれる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で自前の音声ファイルをテキスト化するところまで行う予定。