はじめに
前回のサンプルコード実行編の記事はこちらから
今回はGoogleの「Cloud Speech-to-Text API」というAPI(音声をテキストに変換する)を使用し、音声認識の機能を試してみたいと思います。
※「Speech-to-Text」を使用するためには、事前にGoogle Cloud PlatformでAPIを有効化し、秘密鍵(JSON)をホームディレクトリに配置しておく必要があります
##Google Cloud Platformにログイン
①Googleアカウントを用意します。
②Google Cloud Platformにログインします。
以下の画像が表示された場合、[無料で使ってみる]を選択し、その後画面に表示される手順に沿って登録します。
##請求先アカウントの追加
ログイン後、左側に表示されるナビゲーションメニューの中から「お支払い」を選択し、請求先アカウントを追加します。
※請求先アカウントの追加はCloud Speech-to-Tex APIの利用に必須となっています
Cloud Speech-to-Tex APIの請求について
月に60分未満使用する場合は無料です。
それを超えると、料金が15秒ごとに0.006ドルかかります。
##プロジェクトの作成
Google AIY Voice Kitで使用する全てのAPIを管理するプロジェクトを作成します。
③以下のように、プロジェクトを設定します。
・プロジェクト名:任意のプロジェクト名を入力
・プロジェクトID:任意でプロジェクトIDをデフォルトのIDから変更
・場所:「組織なし」を選択[作成]ボタン押下
##APIの有効化
①ナビゲーションメニューの中から「APIとサービス」を選択します。
③検索欄に、「Cloud Speech-to-Text」と入力します。
④一番上の「Cloud Speech-to-Text API」を選択します。
認証情報の作成
・使用するAPI:「Cloud Speech-to-Text API」を選択
・アクセスするデータの種類:アプリケーションデータ」にチェック
・APIの使用予定:「いいえ、使用していません」を選択[次へ]ボタン押下
・サービスアカウント名:任意の名称を入力
・サービスアカウントID:任意のIDを入力
・サービスアカウントの説明:説明を任意で入力(入力しなくてもOK)[完了]ボタン押下
②認証情報が作成されました。
③サービスアカウントを選択します。
##秘密鍵の作成
③秘密鍵のキータイプでは「JSON」を選択し、[作成]ボタンを押下します。
④秘密鍵がダウンロードされました!
[閉じる]ボタンを押下し、秘密鍵の作成を終了します。
##秘密鍵のリネーム
ダウンロードた秘密鍵のファイル名には、プロジェクト名と番号が含まれています。フ
ファイル名を cloud_speech.json
にリネーム(ファイル名を変更)します。
##秘密鍵をラズパイ上に配置
・リネームした秘密鍵 cloud_speech.json
をラズパイのホームディレクトリに配置します。
・秘密鍵は任意のディレクトに配置しておきます。
以下のディレクトリに配置しました。(今回は公式サイトと同じように実施しましたが、任意のディレクトリでOKです)
c:\Users\【ユーザー名】\path\to\downloaded\cloud_speech.json
①Visual Studio Codeを起動します。
②Visual Studio Codeのターミナルを開きます。
③以下のcdコマンドでカレントディレクトリ(今回はCドライブ)から、 cloud_speech.json
まで移動します。
cd Users\【ユーザー名】\path\to\downloaded\cloud_speech.json
④以下のscpコマンドで秘密鍵をラズパイのホームディレクトリにコピーします。
scp cloud_speech.json pi@raspberry.local:~/
⑤ラズパイのパスワードを聞かれるため、パスワードを入力します。
⑥ cloud_speech.json
と表示されたらコピー成功です!
##コード記述、プログラム実行
秘密鍵をラズパイのホームディレクトリに配置したら、Pythonファイルを作成し以下のサンプルコードを記述します。
①以下のコマンドでPythonファイル「speech-to-text.py」を作成します。
sudo vi speech-to-text.py
②作成したPythonファイル「speech-to-text.py」に以下のコードを記述します。
#!/usr/bin/env python3
import datetime
from aiy.board import Board
from aiy.cloudspeech import CloudSpeechClient
print('Speech To Text(書き取り)のサンプルです("終了"と言うと終了します)')
client = CloudSpeechClient()
with Board() as board:
while True:
print('聴き取り中・・・')
text = client.recognize(language_code='ja-JP',
hint_phrases=('今何時', '今日の天気は', '終了'))
if text is None:
print('何かしゃべってよ')
continue
print('「{}」と言いましたね!'.format(text))
if '今何時' in text:
now = datetime.datetime.now()
print(now)
if '今日の天気は' in text:
print('たぶん晴れじゃないかなあ')
elif '終了' in text:
print('え?もう行っちゃうの・・・?')
break
③以下のコマンドを入力し、「speech-to-text.py」を実行します。
python3 speech-to-text.py
実行結果
Voice Kitに向かって「こんにちは」と言うと…
無事に聞き取ってくれました!
「終了」と言うと聴き取りが終了します。