1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Cloud Speech APIを使ってみた!

Last updated at Posted at 2018-09-17

はじめに

少し前にGoogle Cloud Speech APIを使って色々ハマったので内容をまとめておきます。
ホントはもっと色々やってから書こうと思ったのですが、違う技術に目移りしてしまって…

HelloWorldぐらいのレベル感なので、半日もあれば「音声ファイルをテキスト変換できる」ようになるかと思います。
※GCPのアカウントは持っている前提です。

① Storageを作成する

ここはあまり悩まないはず。
Storageから「バケットの作成」で以下設定にする

  1. 名前はなんでも良いです(あとあと${bucket}に当て込んでください)
  2. ストレージクラスはRegionalを利用
  3. リージョンは、us-west1(米国)を利用
  4. 鍵はgoogle管理

※※ちなみにCloud Storageの料金を見るとタダで使うにはこの2点を守ればよさそう。
試してはいないのであっているかはわかりません。
・ Regional Storage 5GBまで無料
・ リージョンはus-west1us-central1us-east1のみ

② Cloud Speech API を設定

以下設定を行う。

  1. Cloud Speech APIの有効化:ナビゲーション メニュー>APIとサービス>ライブラリ
    1. Cloud Speech API を検索
    2. 「有効にする」を選択(「無効化する」となっていれば放置していい)
  2. API キーの作成:ナビゲーション メニュー>APIとサービス>認証情報>認証情報を作成(APIキー)
    1. 名前は適当
    2. アプリケーション制限
      1. なし
    3. API制限
      1. 「Cloud Speech API」のみ
  3. できた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を利用して、読み取り権限をつける

  1. Google Cloud Shell の実行
    1. Homeの右上に起動ボタンがあるので押下(「Cloud Shellをアクティブにする」と出るやつ)
  2. 以下コマンドを実行(${bucket}はよしなに変えてください)
    1. 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時間」**となっているらしいので使いすぎには注意

おわりに

ひたすらに③、④でハマりました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?