Google Cloud Speech APIを使ってみた!
はじめに
少し前にGoogle Cloud Speech APIを使って色々ハマったので内容をまとめておきます。
ホントはもっと色々やってから書こうと思ったのですが、違う技術に目移りしてしまって…
HelloWorldぐらいのレベル感なので、半日もあれば「音声ファイルをテキスト変換できる」ようになるかと思います。
※GCPのアカウントは持っている前提です。
① Storageを作成する
ここはあまり悩まないはず。
Storageから「バケットの作成」で以下設定にする
- 名前はなんでも良いです(あとあと${bucket}に当て込んでください)
- ストレージクラスはRegionalを利用
- リージョンは、us-west1(米国)を利用
- 鍵はgoogle管理
※※ちなみにCloud Storageの料金を見るとタダで使うにはこの2点を守ればよさそう。
試してはいないのであっているかはわかりません。
・ Regional Storage 5GBまで無料
・ リージョンはus-west1
、us-central1
、us-east1
のみ
② Cloud Speech API を設定
以下設定を行う。
- Cloud Speech APIの有効化:ナビゲーション メニュー>APIとサービス>ライブラリ
- Cloud Speech API を検索
- 「有効にする」を選択(「無効化する」となっていれば放置していい)
- API キーの作成:ナビゲーション メニュー>APIとサービス>認証情報>認証情報を作成(APIキー)
- 名前は適当
- アプリケーション制限
- なし
- API制限
- 「Cloud Speech API」のみ
- できたAPIキーをメモしておく(あとあと${api_key}に当て込んでください)
※※ちなみに、ここのやり方を「サービスアカウントキーを作成」としても大丈夫です。最後のリクエスト情報とAPIの叩き方が変わるのみです。
③ 音声ファイルをアップロード
★★ハマりポイント:音声ファイルの形式が違うと「空ファイル」になるので注意
僕はMacを利用していて「ffmpeg」というツールを利用して音声変換を実施。
Quick Time Player で「新規オーディオを作成」で作成した音声を以下コマンドで変換。
## ffmpegインストール
brew install ffmpeg
## 変換
ffmpeg -i "input-audio.m4a" -vn -ar 16000 -ac 1 -acodec flac -f flac "output-audio.flac" `
よくわかっていないですが、後で出てくる設定ファイルに合わせて色々変換をかける感じ。
サンプルレートヘルツ?を16000へ、エンコード?をflacへ変換する。
変換した音声ファイルを、Storageへアップロードする。
ブラウザからアップロード(${bucket}/audio/へアップしました)
④音声ファイルを読み取り可能にする
★★ハマりポイント:デフォルトで読み取り不可になっていて以下エラーが出続けるので注意
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
Google Cloud Shellを利用して、読み取り権限をつける
- Google Cloud Shell の実行
- Homeの右上に起動ボタンがあるので押下(「Cloud Shellをアクティブにする」と出るやつ)
- 以下コマンドを実行(${bucket}はよしなに変えてください)
gsutil acl ch -u AllUsers:R gs://${bucket}/audio/output-audio.flac
⑤ Speech APIを実行
Macのターミナルから実行可能。
request 情報をjsonで用意して、API(curlコマンド)を叩く
$ cat request.json
{
"config": {
"encoding": "FLAC",
"sampleRateHertz": 16000,
"languageCode": "ja-JP",
"enableWordTimeOffsets": false
},
"audio": {
"uri":"gs://${bucket}/audio/output-audio.aifc"
}
}
$ curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${api_key}"
※※ちなみに、「無料は月1時間」となっているらしいので使いすぎには注意
おわりに
ひたすらに③、④でハマりました。
Author And Source
この問題について(Google Cloud Speech APIを使ってみた!), 我々は、より多くの情報をここで見つけました https://qiita.com/192_60_33_2/items/2588d6f2c38225507ff6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .