LoginSignup
2
1

More than 3 years have passed since last update.

インタビュー音声をCloud Speech-to-Text APIに食わせて楽に文字起こしする

Last updated at Posted at 2020-04-04

はじめに

音声データを自動的に文字起こしできたらとてもハッピーなはず、とのことでCloud Speech-to-Text APIを使ってみました。本記事はその際の備忘録です。

事前準備

Cloud Speech-to-Text APIを使うために以下を準備。

  • GCP環境(Speech-to-Text APIを有効化しておく)
  • Google Cloud SDK(今回は gcloud コマンド経由でAPIコールしたため)

やってみる

今回変換しようとした音声ファイルは1時間ちょっとあったので、非同期での変換を試みた。
https://cloud.google.com/speech-to-text/docs/async-recognize?hl=ja

Cloud Storageに音声ファイルを置いておき、そのパスを指定する形で以下コマンドでAPIをコールする。

$ gcloud ml speech recognize-long-running 'gs://<YOUR FILE PATH>' --language-code='ja-JP' --async --project <YOUR PROJECT ID>
Check operation [operations/<OPERATION ID>] for status.
{
  "name": "<OPERATION ID>"
}

対応言語は以下のページで確認することができる。今回は日本語なので ja-JP を指定。
https://cloud.google.com/speech-to-text/docs/languages

ちなみに、拡張子含め文字列は完全に一致している必要がある模様。拡張子の大文字小文字が違っても NOT FOUND エラーとなった。

ERROR: (gcloud.ml.speech.recognize-long-running) NOT_FOUND: No such object: <YOUR BUCKET PATH>/<YOUR FILE NAME>.mp3

また、非可逆圧縮式であるMP3形式などは非推奨で、実際に音声認識させてみたところ、たしかに結果は散々だった。
そのため MP3FLAC への変換を行った。

Mac環境だったため、 homebrew 経由で sox をインストール。


brew install lame
brew install sox

sox を利用して FLAC 形式への変換を行った。(インプット音声はステレオではなくモノラルである必要があります)

sox input.mp3 --rate 16k --bits 16 --channels 1 output.flac

先程取得したOPERATION IDを使って、プロセスの進捗を確認することができる。

gcloud ml speech operations describe <OPERATION ID> --project <YOUR PROJECT ID>

また、処理が完了するまでポーリングさせることも可能。

gcloud ml speech operations wait <OPERATION ID> --project <YOUR PROJECT ID>

ただし処理が30分を超えるとポーリングは自動的に停止してしまうみたい。

ERROR: (gcloud.ml.speech.operations.wait) Operation https://speech.googleapis.com/v1/operations/<OPERATION ID> has not finished in 1800 seconds. The operations may still be underway remotely and may still succeed; use gcloud list and describe commands or https://console.developers.google.com/ to check resource state.

APIで取得した結果はJSON形式だが、文字起こしの結果だけをシンプルに取得するためにjqで以下のようにこねくり回した。

cat output.json | jq .response.results[].alternatives[].transcript > text.txt

参考リンク群

2
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
2
1