音声から日本語の文字起こしを行う

概要

日本語の音声ファイルを文字起こししたい場合がある。真っ先に思い浮かんだのがAmazon transcribeだが、まだ日本語には対応していなかった。

調べたところ、Google Speech APIが日本語に対応していたのでこちらを使って文字起こしをしてみた。

サンプルの音声

iPhoneに付属しているボイスメモというアプリで録音した

https://itunes.apple.com/jp/app/%E3%83%9C%E3%82%A4%E3%82%B9%E3%83%A1%E3%83%A2/id1069512134?mt=8

今回はあくまでもサンプルなので、今日の日付を読み上げた。

 

 

加工

ボイスメモで録音したファイルはm4aファイルになる。

このフォーマットではGoogle Speech APIが対応していないのでwavファイルへ変換する。

Speech APIが対応しているファイルフォーマットは以下にまとまっている

https://cloud.google.com/speech-to-text/docs/encoding?hl=ja

macでは標準で付属しているafconvertというソフトを使う事で手軽に変換できる。

-d LEI16を指定する事で読み込める形になる。

GCPの設定

コンソール画面左上の[ツールとサービス] > [APIとサービス] > [ライブラリ] を選択。

 

APIの一覧から[Speech API]を選択し、[有効にする]を押して  を有効にする。

音声ファイルを格納

先ほど変換したwavファイルをCloud Storageに格納する。

文字起こし

Cloud Shellをアクティブにする

ジョブの登録

以下のようなレスポンスが来る

ステータス確認

以下のようなレスポンスが来る

この画面で進捗率23%という事がわかる。

時間をおいて実施すると進捗率は変わる。

 

進捗率が100%になったら、リダイレクトさせてtextに出力。

ファイルを開き、中身を確認

ファイルを開いた際、descriptionがエンコードされていなかったら適宜エンコードする必要がある。

最も手軽なのは、jqコマンドに渡す事で読めるフォーマットになる

 

今日は2019年6月11日です

という音声が無事取れた。

音声が綺麗に拾えていれば、これを使って文字起こしをする事ができそうだ。