Edited at

Macでpython3でGoogle Cloud Speech gRPC API を使ってストリーム音声認識をする!

More than 1 year has passed since last update.


事前説明


最新情報(2017年11月7日)

googleAPIインタフェースが変更されていたりして,そのままでは動かなくなっているようです.

今後新たに,ストリーム音声認識を使う方は,以下の @delete さんの記事を参考にされると良いです.

https://qiita.com/delete/items/395776c6843d67fd65fd


以前に書いた記事

以下にあります.

【Google Cloud Speech gRPC API を使ってストリーム音声認識をしたい!(簡易VAD付けた)】

http://qiita.com/sayonari/items/a70118a468483967ad34


今回の記事の説明

この記事は,新しい環境で,google音声認識をやったら,上手く行かなかったので,最初からインストールしたときのメモを残しておくものです.ちゃんと再検証できていないので,ご意見や修正事項を発見された方は,どしどしご意見ください.


本編


実行環境


  • マシン:MacBook Pro (Retina, 13-inch, Early 2015)

  • OS:MacOS Sierra 10.12.5


インストール


google cloud API dashboard

https://console.cloud.google.com/?hl=ja

google cloud APIで,speechAPIを利用可能にする方法は,結構めんどくさいですが,情報が溢れているので,各自でググって調べてください.


プロジェクトの作成

自分の好きな名前でプロジェクトを作りましょう.

GoogleCloudAPI-ASRtest というプロジェクトを作りました.

SpeechAPIを使えるようにしたら,API内のIDが出るので,それを覚えておきましょう.


ライブラリのインストール

pip install google.cloud.speech


gcloud コマンドのインストール

https://cloud.google.com/sdk/docs/quickstart-mac-os-x?hl=ja

install.shの実行


SDKの初期化

gcloud init

「You must log in to continue. Would you like to log in (Y/n)?」と聞かれるので,Yを入力.

ブラウザが立ち上がるので,API登録したgoogleアカウントでログイン.

「Pick cloud project to use: 」の下に,番号とともに,APIプロジェクト名が並ぶので,SpeechAPIを登録したプロジェクトを選択.

「Do you want to configure Google Compute Engine

(https://cloud.google.com/compute) settings (Y/n)? 」 Yとして,サーバーの選択.

「 [2] asia-east1-b」にした.


PYTHONPATHに,パスを追記

pip install gcloud

インストールされたディレクトリを,PYTHONPATHに追加

僕の場合は,以下のようになった.

export PYTHONPATH="/Users/nishimura/.pyenv/versions/3.6.1/lib/python3.6/site-packages:$PYTHONPATH"

これを,~/.bash_profileに追記しておくと,毎回自動で実行されるから便利.


クレデンシャル デフォルト設定

gcloud auth application-default login

ブラウザが立ち上がるので,googleのアカウントでログイン.

アプリケーションの承認.


googleのサンプルを実行

https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/speech/cloud-client

transcribe_streaming_mic.pyを実行したら,英語で音声認識できる.


日本語音声認識したいよ!

プログラム内(main関数内)の,configを設定しているところで直接指定する.

language_code='ja-JP'


認識候補 (phrase hints)を与えたいよ!

main関数内のconfigを,こう書き換えてみたら?

    config = types.RecognitionConfig(

encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,
sample_rate_hertz=RATE,
language_code='ja-JP',
speech_contexts=[speech.types.SpeechContext(
phrasesHints=["キータが来た","ホントっすか"]
)]
)

ただ,「読み」が与えられないので,漢字で書くと上手く認識されない.残念.

誰か,「読みの与え方」を知ってたら教えてくださいm(_ _)m


上述されていない参考にしたページ

公式マニュアル

https://media.readthedocs.org/pdf/google-cloud-python/latest/google-cloud-python.pdf