音声認識と認識結果を返してくれるSpeech-to-Text APIの使い方をまとめたので記述します。
長く使っていくとお金がかかるのですが、試しに使ってみるくらいならお金はかからないのでご安心ください。
Speech-to-Text APIとは
音声データをテキストデータに変更してくれるものです。125 以上の言語や言語変種に対応しており、対応しているファイルも多いので非常に便利です。
動作環境
OS : windows10 pro
動作確認方法
1.Google Cloud Platformにアカウント登録
- トップページの「無料トライアル」をクリックし、Googleアカウントでログインします。
- Google Cloud Platform の無料トライアルの登録画面が表示されますので、住んでいる国を選択し「同意して続行」をクリックします。
- 住所、氏名、電話番号、クレジットカード情報を入力し、「続行」をクリックします。
- 上記の行程を完了すると以下のような画面が表示されるので、左上の「My Project」をクリックします
- 新しいプロジェクトをクリックする
- プロジェクト名を入力し、「作成」をクリック
Speech-to-Text APIの有効化
公開鍵の取得
- IAMと管理>サービスアカウントをクリック
- サービスアカウントを作成をクリック
- サービスアカウント名を入力し完了をクリック
- 作成されたサービスアカウントのメールアドレスをクリック
- キー>鍵を作成をクリック
- 新しい鍵を作成>作成をクリック
- 秘密鍵がPCに保存されるため、任意の場所に保存してください
Speech-to-Text APIの使い方
今回はSpeech-to-Text APIをコマンドラインから使用する方法をお伝えします。
- コマンドプロンプトを管理者として開く
- 以下のコマンドを実行し、先程ダウンロードした鍵のパスを環境変数に設定する
set GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"
-
Cloud SDKのインストール。下記URLを参照
https://cloud.google.com/sdk/docs/quickstart-windows?hl=ja -
音声文字変換のリクエストファイルの作成
sync-request.json
uriのタグに、音声認識したいネットワーク上の音声ファイルを指定する
{
"config": {
"encoding":"FLAC",
"sampleRateHertz": 16000,
"languageCode": "en-US",
"enableWordTimeOffsets": false
},
"audio": {
"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
}
}
- アクセストークンを取得する。以下のコマンドを実行して表示される文字列をコピーしておく
gcloud auth application-default print-access-token
- APIにリクエストコマンドを送信する。sync-request.jsonのファイルパスの頭には必ず@をつける
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer " "アクセストークン" https://speech.googleapis.com/v1/speech:recognize -d @”sync-request.jsonのファイルパス”
- 実行結果が以下のように表示されれば成功。
※transcript:音声認識を行い、文字列に変換された結果
※confidence:信頼度(1~0)。認識結果が正しいかどうかを数値で表したもの
{
"results": [
{
"alternatives": [
{
"transcript": "how old is the Brooklyn Bridge",
"confidence": 0.98267895
}
]
}
]
}
単語ごとにconfidenceを出す方法
送信リクエストファイルのenableWordTimeOffsetsをtrueに変更
{
"config": {
"encoding":"FLAC",
"sampleRateHertz": 16000,
"languageCode": "en-US",
"enableWordTimeOffsets": true
},
"audio": {
"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
}
}
- 出力結果
{
"results": [
{
"alternatives": [
{
"transcript": "how old is the Brooklyn Bridge",
"confidence": 0.98287845,
"words": [
{
"startTime": "0s",
"endTime": "0.300s",
"word": "how"
},
{
"startTime": "0.300s",
"endTime": "0.600s",
"word": "old"
},
{
"startTime": "0.600s",
"endTime": "0.800s",
"word": "is"
},
{
"startTime": "0.800s",
"endTime": "0.900s",
"word": "the"
},
{
"startTime": "0.900s",
"endTime": "1.100s",
"word": "Brooklyn"
},
{
"startTime": "1.100s",
"endTime": "1.400s",
"word": "Bridge"
}
]
}
]
}
]
}
Speech-to-Text APIの補足情報
参考URL