Google Cloud Speech API とは
- Googleの音声認識エンジン
- Speech Recognition API の Cloud サービスみたいなやつ
特徴として
- 機械学習して精度があがってく
- 80か国語対応
- 雑音に強い
- デバイス非依存
- リアルタイム(ストリーム)と録音済みファイル両対応
- non-streaming mode
- streaming mode
- デモ
Google API の利用にあたり
Google Cloud Platformでもろもろ準備が必要
プロジェクトの作成
利用するAPIの有効化)
認証情報の作成
- Speech API ではサービスアカウントキーが必要
- 秘密鍵が含まれたサービスアカウントキーファイルがダウンロードできるので保存しておく
課金設定
- Speech APIの利用には 課金設定が必要
Cloud SDKとは
- Google のサービスにコマンドラインからアクセスできるツールセット
- gcloud、gsutil、bq といったコマンドが利用可能になる
インストール
$ curl https://sdk.cloud.google.com | bash
音声認識させる音声の準備
音声の録音
$ brew install sox $ rec --bits 16 --channels 1 --rate 16000 sample.wav
flac形式に変換
brew install flac flac -V sample.wav
音声ファイルをアップロードしておく
- Google Cloud Storage にアップロード
- コマンドラインでファイルの存在を確認
$ gsutil ls -R gs://cyoko-bucket
gs://cyoko-bucket/sample.flac
音声ファイルの指定
- sync-request.jsonに音声ファイルの情報を設定する
{
"config": {
"encoding":"FLAC",
"sampleRate": 16000,
"languageCode": "ja-JP"
},
"audio": {
"uri":"gs://cyoko-bucket/sample.flac"
}
}
音声ファイルをアップロードしない方法
- base64に変化して
$ base64 source_audio_file > dest_audio_file
content
に指定する
{
"config": {
"encoding":"FLAC",
"sampleRate": 16000,
"languageCode": "ja-JP"
},
"audio": {
"content": "ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv...""
}
}
認証してアクセストークンを得る
- --key-fileにはサービスアカウントキーファイルのファイル名を指定する
$ gcloud auth activate-service-account --key-file="<サービスアカウントキーファイル名>"
Activated service account credentials for: [xxxxxxxxxxx-compute@developer.gserviceaccount.com]
$ gcloud auth print-access-token
<アクセストークンが表示される>
音声認識させる
- アクセストークンの指定
- 入力音声の指定(Request bodyにsync-request.jsonを指定)
$ curl -s -k -H "Content-Type: application/json" \
-H "Authorization: Bearer <アクセストークン>" \
https://speech.googleapis.com/v1beta1/speech:syncrecognize \
-d @sync-request.json
認識結果
{
"results": [
{
"alternatives": [
{
"transcript": "google cloud speech api では使いやすい api で高度な ニュートラルネットワーク
モデルを適用し音声をテキストに変換できます",
"confidence": 0.8266666
}
]
}
]
}
ストリームによる音声認識
Google Cloud Speech gRPC API を使ってストリーム音声認識をしたい!(簡易VAD付けた) - Qiita