音声ファイルをAmiVoiceで音声認識してみる簡単な方法
安藤章悟
みなさま こんにちは。
AmiVoiceを使った音声認識アプリケーションを開発をしたい。でも、どれくらい正しく音声認識できるのか分からないので、まずは試してみたい。という開発者や製品企画担当者は結構多いと思います。
当社が提供している AmiVoiceAPI の場合は、体験デモページがあって、ここで気軽に試すことができます。
ただ、このページは「マイクに喋った声を音声認識する」ものなのでマイクが必要になりますし、音声ファイルを使っていろいろな音を音声認識してみるには不向きです。ですので今回は、音声ファイルで音声認識を試してみたい、という方向けに簡単な方法を説明します。
「音声ファイルを試しに音声認識してみたいけど、自分はプログラムできないから・・」というご相談を最近よく受けるのですが、試すだけならそんなに難しくないよということを伝えたいというのが、この記事の趣旨です。
はじめに
- 今回使用する音声認識エンジンは幅広い場面での会話などに対応した「会話_汎用」というもので、毎月60分まで無料で利用できます。60分を超えて利用する場合は有料になりますのでご注意ください。詳しい価格や、他の種類のエンジンについてはこちらに記載されています。AmiVoice API 価格
- 音声認識を利用するにあたって、アカウント登録時にクレジットカードの登録が必須となります。60分の無料枠内だけの使用想定でも登録は必要となりますので、ご了承ください。
- 音声認識処理を行う際に、音声データがアドバンスト・メディア社の管理するサーバーに送信されます。送信された音声データがサーバーに保存されるかどうかはプランによって選択可能です。*1
- 今回の記事はプログラミングの知識が無くても読めるようになっています。
- 今回の記事はWindows10がインストールされたPCを使用する想定となります。
- 今回の記事は16MBytesより小さなサイズの音声ファイルを音声認識するものです。このサイズを超える場合は分割等で16MBytesより小さなサイズにする必要があります。*2
まずはユーザー登録
利用にあたり、ユーザー登録が必要になります。詳しくは下記の記事を参考にしてください。手順の2)の利用申込まで進めていただいた前提で進めます。
利用申込をして、マイページを開くと「接続情報」タブにAPPKEYというものが表示されるので、これを記録しておいてください(後で使います)
※重要:この画面の情報は他の人には絶対に知られないように厳重に管理してください。もしも知られてしまうと、有料の音声認識を自分以外に使用されてしまう可能性があります。
音声ファイルを使って音声認識を試してみよう
さて、ユーザー登録ができたら実際に音声認識してみましょう。サンプルプログラムに音声ファイルを認識するものがあるので、それを使います。ステップとしては下記の5つになります
- サンプルプログラムをダウンロードして、解凍(展開)する
- 音声ファイルを所定のフォルダに置く
- run.batファイルを編集する
- run.batファイルを実行する
- 音声認識結果を見やすくする
順番に見て行きましょう。
1.サンプルプログラムをダウンロードして、解凍(展開)する
まずは、こちらのページからサンプルプログラムをダウンロードしてください。下記の1.1.8.zip(2023年1月現在) をクリックするとダウンロードできます。
ダウンロードをしたら、zipファイルを解凍(展開)してください。解凍した後の状態をエクスプローラーで見ると下記のようになります。今回の説明ではデスクトップに解凍しましたが、どこでもお好きな場所で大丈夫です。
2.音声ファイルを所定のフォルダに置く
音声認識したい音声ファイルを、audioフォルダの中にコピーしてください。今回の説明では私が喋った音声を.mp3にした「myvoice.mp3」というファイルを作りました。エクスプローラーで見ると下記のようになります。
なお、音声ファイルにはいくつか注意点がありますので、下記をご確認ください。
- 音声ファイルのフォーマットには対応しているものと、していないものがあります。詳しくは下記ページをご覧ください。
- 音声ファイルがステレオの場合は、1チャンネル目のみが音声認識処理対象となります。
- 今回の方法では、音声ファイルのサイズの上限は16MBytesです。このサイズを超える場合は、分割等で16MBytesより小さなサイズにする必要があります。
3.run.batファイルを編集する
「Hrp」フォルダの中の「curl」フォルダにある run.bat というファイルを編集します。ダブルクリックすると実行してしまうので、右クリックして編集を選んでください。メモ帳が起動し、下記のような画面が表示されます。
※画像をクリックすると拡大されます。
このファイルを2ヶ所修正して、下記のようにします。
左の修正では、読み込む音声ファイルを書き換えて「myvoice.mp3」に変更しています。また、右の修正は音声認識結果を「result.txt」というファイルに保存するようにしています。
修正が出来たら、ファイルを上書き保存してください。
4.run.batファイルを実行する
編集したrun.batをダブルクリックして、実行してください。下記の画面が表示されます。
ここに、ユーザー登録のときに記録しておいたAppKeyを入力します。AppKeyはとても長いので手打ちではなくマイページ画面からコピーして、この黒い画面の上で右クリックしてペーストするといいでしょう。
正しいAppKeyを入力したら、下記のような画面になります。音声認識処理には時間がかかるので、音声ファイルの大きさによっては少し待ち時間が発生するかもしれません。今回作ったmyvoice.mp3は喋っている長さが3秒くらいですが、音声認識処理は1~2秒くらいで終わりました。
また、run.batの実行が正常に行われた場合は、同じフォルダに「result.txt」というファイルができます。このファイルに音声認識結果が保存されます。
5.音声認識結果を見やすくする
result.txtを開いてみましょう。下記のような内容が表示されると思います。
これはJSONという形式です。また、文字がUnicodeエスケープ形式というもので記述されていて、このままだと読めないので見やすく整形しましょう。
今回私はVisual Studio CodeというMicrosoftが提供しているツールを使って整形をしました。こちらの手順は少し長いので概要を注釈に示しておきます。*3
もっと簡単に整形するには、Googleなどの検索エンジンで「JSON 整形」などのキーワードで検索するとJSON形式を読みやすく変換してくれるサービスがいくつか見つかるかと思いますので、それらのサービスを使ってもいいかと思います。(当社から提供しているサービスではないため、ご利用は自己責任でお願いいたします。)
整形した結果は下記のようになります。「myvoice.mp3」では私が「あらゆる現実をすべて自分の方へねじ曲げたのだ」と喋っていますが、下記のようにその音声認識結果が確認できます。
また、ファイルの末尾には、音声ファイル全体の音声認識結果が入っています。
こちらの “text” が音声認識結果のテキストになります。他の情報については詳しくはマニュアルの下記に書いてあります。
A イベントパケット – AmiVoice Cloud Platform
まとめ
今回はAmiVoice Cloud Platformを使って、音声ファイルを簡単に音声認識してみる方法について説明しました。
この記事では詳しい解説はしませんが .bat ファイルの書き方を学ぶと複数ファイルを一気に処理するようにしたり、フォルダの中のすべての音声ファイルを処理するようにアレンジすることもできます。また、音声認識結果についてはJSONを手作業で整形しましたが、プログラムを使えばもっとさまざまな活用をすることもできるようになるでしょう。
今回の記事が音声認識を使う入り口になってもらえたら嬉しいです。
この記事を書いた人
-
安藤章悟
音声認識の研究をしていたら、近所に音声認識屋を見つけてしまい入社。今に至る。
趣味は海外旅行と美味しいものを食べることとサウナ。
*1:「ログ保存あり」と「ログ保存なし」という2種類のプランがあります。「ログ保存あり」ではログがサーバーに保存され製品・サービスの研究開発・品質向上のために利用されます。「ログ保存なし」では音声も音声認識結果もサーバーに保存されなくなります。
*2:16MBytesを超える音声ファイルは「非同期HTTP音声認識API」を使うことで処理が可能になります。詳しい説明はこちらのマニュアルを御覧ください
*3:今回Visual Studio Codeで音声認識結果のJSONを整形した手順は下記になります。
手順1:Visual Studio Codeをインストールします。
手順2:VIsual Studio Codeを起動し、拡張機能「Encode Decode」をインストールします
手順3:VIsual Studio Codeでresult.txtを開きます
手順4:画面右下にある言語モードの選択で「JSON」を指定します
手順5:result.txtの中身が表示されている場所で右クリックをして「ドキュメントのフォーマット」を指定します(段組みなどの見た目が整形されます)
手順6:検索窓を表示して(ctrl+f)、正規表現をONにして(alt+r)、「\\u.{4}」で検索します(Unicodeエスケープ形式である「\uxxxx」という部分だけが検索されます)
手順7:検索された個所だけを選択します(alt+enter)
手順8:Encode Decodeのメニューを開き(ctrl+alt+c)、Unicode to Stringを選択します。