AmiVoiceでサイズが大きい音声ファイルを簡単かつ安価にテキスト化する方法

AmiVoiceでサイズが大きい音声ファイルを簡単かつ安価にテキスト化する方法

AmiVoice Cloud APIを触ってみた

みなさんこんにちは。自称文字起こし人柱の @keikoka こと鹿野恵子です。

ライター業務の生産性を高めようとを少しでも効率的に進めたいと、新しい文字起こしツールが登場するたびに購入、試用を繰り返しているのですが、そんな私が一度使ってみたいと思っていた文字起こしツールがありました。

それがAmiVoice Cloud Platformです。

Amivoice Cloud Platformは、株式会社アドバンスト・メディアさんが提供する文字起こしAPIです。

もともと私は少し前から「UDトーク」という「コミュニケーション支援・会話の見える化アプリ」の日本語認識能力の高さに着目していました。

UDトークはコミュニケーションの「UD=ユニバーサルデザイン」を支援するためのアプリです。 「音声認識+音声合成」機能を使って視聴覚障害間コミュニケーション 「多言語音声認識&翻訳」機能を使って多言語コミュニケーション 「漢字かな変換や手書き」機能を使って世代間コミュニケーション UDトークは3つのコミュニケーションを実現します。

UDトークは、音声認識エンジンとして、AmiVoice Cloud Platformを使っています。UDトークがイベントの場などで、リアルタイム日本語文字起こしなどに利用されている様子を見ていて、その精度の高さに、AmiVoice Cloud Platformを一度使ってみたいなと思っていたのです。

AmiVoice Cloud Platformの良い点は、そのコスパの高さです。ログあり(音声データをアドバンスメディアに提供することに同意する場合)だと1時間99円です。気軽に起こしを頼める金額だと思います。文字起こし界の圧倒的価格破壊といえるでしょう。(精度次第ですが…)

ところがAmiVoice Cloud Platformは一般向けにはAPIという形でしか提供をしていません。マニュアルなどもあったのですが、それを読み解く手間などがあって、なかなか試用に踏み込むことができずにいました。

そんなときに見つけたこの記事。

「音声ファイルをWindows上で少しいじるだけで音声認識された結果が出力される」解説記事でした。

これこそ求めていた記事よ!ということで、さっそく試してみたのですが、その通りにやってもエラーメッセージしか出力されません。

というのも…。

今回の方法では、音声ファイルのサイズの上限は16MBytesです。 16MBytesを超える音声ファイルは「非同期HTTP音声認識API」を使うことで処理が可能になります。

とのこと。

だいたい私の取材の仕事は1時間~2時間程度のものが多く、mp3形式でファイルサイズは30MB前後というところ。16MBでは全く足りません。

そこで非同期HTTP音声認識APIを見様見真似で使ってみました。なんとか使い方にたどりついたので、ここに方法を共有させていただきます。(Windows限定)

(注:非公式の勝手な試用記事ですので、利用なさる場合は自己責任でお願いいたします)

手順

前述のこちらのページの手順2まで(ユーザー登録、プログラムダウンロード)を済ませて、手順3以降を以下のようにしましょう。

1) run.batファイルを修正する

このファイルを2ヶ所修正して、下記のようにします。

とありますが、①ファイル名を変更する、③出力先を result.txtと指定するの2点は上記ページと同様にしつつ、②URLを以下に変更します。

https://acp-api-async.amivoice.com/v1/recognitions
image

つまり run.batは以下のようになります。

@set /P AppKey="Please enter AppKey: "
curl -X POST -F a=@../../audio/test.mp3 "https://acp-api-async.amivoice.com/v1/recognitions?d=-a-general&u=%AppKey%" > result.txt
@pause

2) run.batを実行する

音声ファイルをaudioフォルダの下に置いた上で、このrun.bat をダブルクリックして実行すると、コマンドプロンプトが立ち上がり、API KEYを求められます。API KEYを入力すると、音声データがアップロードされます。

image

プログラムが終了すると、run.batファイルと同じフォルダにresult.txt が生成されているので開きます。「session id」が表示されているのがわかります。これがアップロードした音声のセッションIDで、このあとの作業に必要になります。(念のためsession idは架空のものにしてあります)

{"sessionid":"017d938a7df90axxxxxxxxxx","text":"..."}

3) run2.batを作成する

次に、run2.batを作成します。アップロードした音声の状態を確認するためのものです。

image
@set /P AppKey="Please enter AppKey: "
curl -H "Authorization: Bearer %AppKey%" https://acp-api-async.amivoice.com/v1/recognitions/017d938a7df90axxxxxxxxxx > result2.txt
@pause

4) run2.batを実行し、結果を確認する

これを実行すると、同じフォルダに「result2.txt」が生成されます。

run.bat で投げたセッションが実行中の場合、このファイルに「processing」というような文言が書かれています。

しばらくしてから(明確な完了時間はわかりませんが、1時間の音声ファイルが、1時間程度で文字起こし完了していました。もっと早く終わっていたのかも)run2.batを実行すると、新たに生成されたresult2.txtに、json形式で文字起こしの結果が記録されています。

ファイルの中に「"service_id":"xxxx","session_id":"017d938a7df90axxxxxxxxxx","status":"completed","text":"」 とある場所以降にベタで文字起こしをしていた内容が記述されています。

改行無し、話者分離などはありませんが、用途によってはこれで十分でしょう。

注意点) 日本語パスは通さない?

注意点としては、環境によって日本語のフォルダ名が通らないことがあるらしいということです。

私の場合、run.batを実行したところ、「接続できません」というようなメッセージが表示され、処理が進まないことがありました。私はここではまってかなり時間をロスしましたが、日本語フォルダ名以外の場所で実行したところ無事に実行できたので、日本語のフォルダ名は使わない方が無難そうです。

あと、個人的にはshellで実装したいのですが…。(その時間を取れないぐぬぬ😢)

評価:安価なので、気軽にガンガン使えそう

精度は評判のよい他の文字起こしツールと同等ぐらい。

そのまま使うことはできないけど、音声を聞きながら再度整形・修正をすれば、原稿の素材として十分に使えるというレベルだと思います。何より安いので、これまで文字起こしするかどうか悩んでいた音声データでも、「とりあえず起こしておこう」というレベルでテキスト化できるようになるのではないかと思います。

なお、ログありの場合、音声データをアドバンスメディア社さんに提供することに同意することになりますので、くれぐれも機密情報など、センシティブな情報にこの方法を適用するかどうかは一考が必要かと思います。(ログなしの場合、データ提供の必要はありません。それでも1時間158円なので、安すぎますね…)

以上、AmiVoice Cloud Platformを使った非同期文字起こしの試用レポートでした 😄

宣伝

コンテンツマーケティング、編集プロダクションのワークフロー効率化に関するお問い合わせは、株式会社プレーンテキストまでお気軽にお問い合わせください!