TL;DR
ことのはじまり
某所でPodcastの文字起こしをしたい気運が高まり、ちょうどそこに居たPodcast( https://ningengaheta.me )をやってる人( @akazunoma )から遊ぶ許可をもらう
何を使うか決める
とりあえずAWSかGCPを使おうと思ったものの、AWSはまだ日本語からのテキスト起こしが未対応で断念。
消去法でCloud Speech APIを使うことにした。
https://cloud.google.com/speech-to-text/
Cloud Speech APIを使う
1. 環境を準備する
- Cloud Shellで全て行う。
- Cloud Speech APIの有効化
$ gcloud services enable speech.googleapis.com
- Cloud Storageの作成
$ gsutil mb -c regional -l ap-northeast1 gs://<YOUR BUCKET>
2. Podcastデータを用意
Podcastのmp3を落としてきてCloudStorageへ格納する。
Cloud Speech APIはflac形式かつモノラルである必要もあるためその下処理も行う。
$ sudo apt-get install -y lame ffmpeg $ curl -O https://ningengaheta.me/audio/003.mp3 # ステレオからモノラルへ変換 $ lame --decode 003.mp3 - | lame -m m -V2 - mono.mp3 # mp3からflacへ変換 $ ffmpeg -i mono.mp3 output.flac # Cloud Storageへアップロード $ gsutil cp ./output.flac gs://<YOUR BUCKET>/output.flac
3. Cloud Speech APIで文字起こし
$ gcloud ml speech recognize-long-running 'gs://<YOUR BUCKET>/output.flac' \ --language-code='ja-JP' \ --sample-rate=44100 \ --encoding=flac \ --async Check operation <OPERATION ID> for status. { "name": "<OPERATION ID>" } $ gcloud ml speech operations describe "<OPERATION ID>" > output.json $ cat output.json | jq -r '.results[].alternatives[0].transcript'
日本語のような何かが生み出された
中の人から
最後に
そのうちまた試してどれぐらい精度が上がるのか見てみたいですね