Zoomなどでビデオ会議をしたら、ある程度の精度で構わないので、自動で文字起こしをしたいことがある。
日本語の自動文字起こし専用サービスもいくつかあるようだが、今回はすでにアカウントを持っているAWSのAmazon Transcribeを試してみた。

詳しい使い方はAWSの説明にあるが、手作業でのステップを簡単に説明すると次のようになる。

  1. AWSのストレージサービスである「S3」にオーディオまたはビデオのファイルをアップロードしておく(対応ファイル形式は、MP3、MP4、WAV、FLAC、AMR、OGG、WebMのようだ)

  2. Transcribeでジョブを作成する。ここでS3上のファイルを指定

  3. 実行し、しばらく待つとジョブが完了する

  4. 文字起こしファイルをダウンロードする


設定で「Speaker identification」(話者特定)をしておくと、自動で話者を認識して分割して書いてくれるので便利だ。
なお、料金は30分の動画で「0.72ドル」(約80円)とのことである。



このようにとても簡単なのであるが、困った点が1つあった。
最後にダウンロードするファイルがJSON形式なのである。JSON自体はテキストファイルなのでどのようなエディターでも開ける。しかし話者特定すると、どこからどこまでを誰が話したといったメタ情報が付加されるため、単純なテキスト構造にはならないのである。



もちろん変換プログラムを自作すればよいが、時間がかかりそうだ……と思っていたところ、やはり作ってくれていた人がいた! ありがたい。

 aws-transcribe-transcript
 https://github.com/trhr/aws-transcribe-transcript

ただしPythonなので、パソコンにPythonがインストールされており、コマンドで操作する必要がある。
まず上記Githubサイトからtranscript.pyをダウンロードし、ローカルのフォルダーにJSONファイルと一緒に置く。そして「python transcript.py asrOutput.json」のように(Macならターミナルから)実行すれば、整形されたテキストファイルが出力される。次のような感じである。



話者は2人(spk_0とspk_1)で、きちんと分割して表示されている。時間(「0:38:29」など)も表示されているので、ビデオを見返す際にも便利だ。

ちなみにブラウザー上で変換できるサービスもあるようだ。こちらはSRTというファイル形式で出力されるが、中身はテキストなのでJSONと同様にエディターで開ける。
ただ、自分のファイル(40分程度の文字起こし)で試したらブラウザーがクラッシュしてしまったので、使い心地は分からなかった。あまり大きなファイルは変換できないのかもしれない。



音声認識自体の精度にまだ課題はあるだろうが、目で見て手で書き起こす手間を考えたら、労力は大幅にカットできそうだ。