Googleの音声認識ライブラリCloud Text-to-Speech APIを試した時のメモ。
プロジェクトの登録
Google Cloud Platformにアクセスして、プロジェクトを作成する。
APIの有効化
ホームのメニューにあるAPIとサービスからライブラリを選択し、以下のAPIを検索して有効化しておく
- Cloud Text-to-Speech API
- Cloud Speech API
Cloud Text-to-Speech APIは課金制なので、クレジットカードの登録が必要。12 か月間トライアル無料を使って登録する。ここでクレジットカードを登録して無料枠分を超えてしまうときでも、黙って請求されることはないそうなので安心して使えます。Googleからメールにて通知されるそうです。
料金
音声認識のCloud Text-to-Speechは毎月60分(リクエスト)まで無料で使えます。それ以降は$0.006 米ドル/15 秒で課金される。
各リクエストは 15 秒単位で切り上げられます。たとえば、それぞれに 7 秒の音声が含まれる 3 つのリクエストは、45 秒(3 × 15 秒)の音声として $0.018 が請求されます。また、15 秒単位での切り上げは、小数点以下の秒数も対象になります。つまり、15.14 秒は 30 秒として請求されます
install sox
node.jsで音声を扱うためにsox
というライブラリを使う。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
brew install sox
node.js用のプロジェクトフォルダを用意
適当なフォルダを作成して、index.jsファイルを作成する。
ソースコードの中身はgoogleのサンプルコードをダウンロードしてきて、以下の箇所をコメントアウトして修正する。
const encoding = 'LINEAR16';
const sampleRateHertz = 16000;
const languageCode = 'ja-JP';
Support Language
サービスアカウントを作成する
GCP Console で [API Manager] → [認証情報] の順に移動し、[認証情報を作成] → [サービス アカウント キー] の順に選択します(参考)。
作成されたjsonファイルをディレクトリに入れる。
環境変数を登録
GOOGLE_APPLICATION_CREDENTIALSにパスを通す。
export GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_account_file>
実行
node index.js
そのまま実行したら反応しなくてあれ?となったが、数秒後に音声認識された文字列がコンソールに表示された。ただ、リアルタイムで変換されていないので、どこかに設定があるのだろうと探していたらありました。
interimResults: true
このinterimResults
をtrue
に設定すると、途中経過まで表示されます。
備考
このCloud Text-to-Speech APIはこちらでデモができます。mobile safariからアクセスして試してみましたが、あまり遅延なく動作しました。無料で使えるWeb Speech API
の SpeechRecognition
はmobile safariはまだサポートされていないようなので、音声認識でmobile safariにも対応する場合は、このCloud Text-to-Speech API
を使う必要があるようです。