【無料ダウンロード】音声データから自動で「文字起こし」する自作バッチを公開!

音声認識APIとして知られるAmiVoice Cloud Platform(https://acp.amivoice.com/main/)。音声認識の精度が高く、価格もリーズナブル。文字起こしにおすすめのサービスです。

しかしAmiVoice Cloud Platformを使うには、Java、Python、PHPといった言語を使ってコードを書く必要があるため、使えるようになるまでのハードルが高いのが難点。

curlコマンドを使って実行すればコードを書く必要がないため、比較的ハードルは低くなるのですが、16MB以内のサイズでなければ使えないという制限があり、とても短い音声ファイルしか文字起こしできません。

そこで、いくつかのツールを組み合わせて工夫してみることにしました。試行錯誤の結果、AmiVoice Cloud Platformを使って文字起こしできるようになったので、その方法を解説します。

【準備】ツールのセットアップをしておく

まず準備として下記のツールを使えるようにセットアップします。

・ffmpeg

【windows】FFmpegをインストールする手順

https://fukatsu.tech/windows-ffmpeg

・jq

Windowsでjqコマンドを導入してJSONレスポンスを整形・抽出する

https://zenn.dev/unsoluble_sugar/articles/e47b37b04dd1153d5b29

※バッチファイルでは、このサイトにあるようにjq-win64.exeをjq.exeにリネームしたものを使っています。リネームしない場合には、バッチファイルの該当箇所を書き換えてください。

これらのサイトでも説明していますが、実行ファイルを置いたフォルダに必ずPATHを通す設定をしておいてください。

【環境変数を設定】

あと、これはとても重要なのですが、Windowsの環境変数の設定で、「AppKey」という環境変数を作り、そこに、AmiVoice Cloud Platformの「マイページ」→「接続情報」から確認できる「APPKEY」の情報をあらかじめ登録しておいてください。

環境変数の作り方などは、上記のPATHの通し方などが参考になると思います。上記では「PATH」という環境変数に、フォルダ情報を登録していますが、ここでは、「APPKEY」という環境変数にAmiVoiceのAPPKEY情報を登録することになります。

これで準備は終了です。

【バッチファイル】バッチファイルを作る

そして、これがバッチファイルの本体となります。このバッチファイルは、どこに設置してもいいのですが、とりあえずデスクトップなどにおくと使いやすいでしょう。ファイル名は特に何でもいいのですが、「MP3AmiVoice.bat」といったわかりやすい名前をつけておきます。

echo off

rem MP3作成

ffmpeg -i "%~f1" -vn -ac 1 -ar 44100 -ab 128k -acodec libmp3lame -f mp3 "output.mp3"

rem MP3を15分ごとに分割

ffmpeg -i "output.mp3" -f segment -segment_time 900 -c copy out%%03d.mp3

rem 作業ファイルを削除

del output.mp3

rem 出力先のテキストファイルを新規作成

echo %date:~0,4%%date:~5,2%%date:~8,2% >%date:~0,4%%date:~5,2%%date:~8,2%.txt

rem 分割したファイルをamivoiceにかけ、出力先ファイルに追記

set /a counter=0
for  %%A in (out*.mp3) do (
	if exist %%A (
		echo %%A >>%date:~0,4%%date:~5,2%%date:~8,2%.txt
		curl -X POST -F a=@%%A "https://acp-api.amivoice.com/v1/recognize?d=-a-general&u=%AppKey%" | jq -r .text >>%date:~0,4%%date:~5,2%%date:~8,2%.txt
		del %%A
		set /a counter=counter+1
)
)

なお、コピペがめんどくさいという人のため、バッチファイル本体を公開します。このバッチファイルに、音声ファイルをドラッグアンドドロップすると、文字起こしされたテキストファイルが出力されます。ちょっと時間がかかりますが、テキストが出力されるまで気長に待ちましょう。

【バッチの解説】

バッチファイルの動作としては
・音声ファイルをMP3化する
・音声ファイルを16MB以下になるように分割
・文字起こしするためのテキストファイルを作成
・順次文字起こしして、テキストファイルに追記

という動作をしています。

なお、テキストファイルには、文字起こしに使った分割したファイル名についても記載するようにしています。

こうすることで、バッチが途中でこけている場合や、順番通りに文字起こしされていない場合にも対策をとることができるからです。

【読みやすくする】 テキストを読みやすくするにはエディタを使う

出力されるテキストファイルは改行などが入っていないため、読みにくいと感じるかもしれません。その場合、エディタなどで「。」を「。<改行>」のように置換すると読みやすくなります。

<改行>ですが、僕の場合、秀丸エディタの正規表現というものを使って置換しています。

ちなみに、サクラエディタの場合、こんな感じで置換できるようです

改行・タブ・空白行の置換や削除にも便利なサクラエディタで使える正規表現とは?

https://proengineer.internous.co.jp/content/columnfeature/5432

AmiVoice Cloud Platformにはデモもあるので、使えるかどうか、一度試してみてはいかがでしょうか。

また、このバッチで動かないという場合には、同じAmiVoiceのエンジンを使ったVoXT(https://voxt.jp/)などのサービスを試すのもアリだと思います。

音声データからの文字起こしが面倒だと感じている方は、この方法を試してみてください。

秋葉 けんた

投稿者プロフィール

IT系のライティングを担当。
書籍、雑誌、業界誌やWebコンテンツなど、コンシューマからB2Bまで幅広く執筆。また、広告やカタログ、導入事例といった営業支援ツールの制作にも携わる。年間におよそ200件の原稿を執筆。

 ●これまでの主な仕事
PC/周辺機器(CPU/DVD・BD・HD DVD/LCD/プリンタなど)、基幹システム(CRM/ERP/SFA/SOA/帳票など)、ストレージ(SAN/NAS/LTO/SASなど)、セキュリティ(BIOS/UTM/情報漏えい対策/デザスタリカバリ/内部統制・コンプライアンス/ネットワークセキュリティ/メールセキュリティなど)、ネットワーク(KVMスイッチ/グループウェア/サーバ/資産管理/シンクライアント/ホスティングなど)、その他(.NET/BI/カタログ/各種戦略/導入事例/パートナー取材など)…ほか、多数執筆。

 ●連絡先
メール:kenta@office-mica.com

この著者の最新の記事

関連記事

フリマアプリの活用法(日経新聞 人生100年の羅針盤)

【暮らし】夏の手仕事はじめました。

my cup of teaチャンネル

ページ上部へ戻る