WebSocket音声認識APIの利用体験 - AmiVoice Cloud Platform

WebSocket音声認識APIについて、 サンプルプログラムの実行を例にして説明します。 JavaScript版のサンプルプログラムを除けば、その他のサンプルプログラムはすべてコンソール上で実行されるコンソールアプリです。 JavaScript版はブラウザ上で動作するサンプルです。

ダウンロード

サンプルプログラムをダウンロードします。

引数指定

実行例で指定されている引数は次の通りです。

音声認識APIエンドポイント:
 wss://acp-api.amivoice.com/v1/ (ログ保存あり)
 wss://acp-api.amivoice.com/v1/nolog/(ログ保存なし)
 ※パスを省略して “wss://acp-api.amivoice.com” とした場合、ログ保存ありの接続になります。
音声ファイル:
 test.wav(サンプルプログラムに同梱)
音声フォーマット:
 16K
接続エンジン名:
 -a-general(汎用)
<AppKey>:
 マイページに表示される[APPKEY] を指定してください。

実行

実行する際は、サンプルプログラム(sample.zip)を解凍して生成される sample /Wrp /<プログラミング> をカレントディレクトリとしてください。

※お使いのPCがWindowsであれば、各<プログラミング言語>フォルダ直下にあるrun.batをダブルクリックすることで、そのフォルダをカレントディレクトリとして実行することができます。 実行すると、AppKeyの入力を促されます。

Java

java -cp .;Wrp.jar WrpSimpleTester wss://acp-api.amivoice.com/v1/ ../../audio/test.wav 16K -a-general <AppKey>  

C#

bin\Release\WrpSimpleTester.exe wss://acp-api.amivoice.com/v1/ ../../audio/test.wav 16K -a-general <AppKey>

C++

set SSL_CERT_FILE=../../curl-ca-bundle.crt
bin\winnt64_vc140_release\WrpSimpleTester.exe wss://acp-api.amivoice.com/v1/ ../../audio/test.wav 16K -a-general <AppKey>

PHP

php -dinclude_path=src -dopenssl.cafile=../../curl-ca-bundle.crt -dextension=openssl WrpSimpleTester.php wss://acp-api.amivoice.com/v1/ ../../audio/test.wav 16K -a-general <AppKey>

Python

set PYTHONPATH=src
set SSL_CERT_FILE=../../curl-ca-bundle.crt
python WrpSimpleTester.py wss://acp-api.amivoice.com/v1/ ../../audio/test.wav 16K -a-general <AppKey>

JavaScript

JavaScriptのサンプルプログラムは、マイクでリアルタイムに録音するものです。
実行の手順は以下の通りです。

(1)WrpTester.htmlまたはwrp.html をブラウザ(IEを除く)で開きます。
(2)[サービスID]に、マイページの[サービスID]を入力します。
(3)[パスワード]に、マイページの[サービスパスワード]を入力します。
(4)[ワンタイムAppKey取得]ボタンをクリックします。
(5)[AppKey]にワンタイムAppKeyが入力されたことを確認します。
(6)[録音開始]ボタンをクリックします。
(7)マイクの使用許可ダイアログで[許可]をクリックします。
(8)日本語を自由に発話します。
(9)ページの下半分に、認識結果テキストと、サーバから送られてくるイベントが次々と表示されます。

※表示されるイベントのJSONに含まれる文字列がUnicode エスケープ形式のままになっていますが、お使いの開発言語に備わるJSONパーサーを通すと、これらは可読可能なUTF-8文字列に自動的に変換されます。UTF-8文字列に変換するための特別な処理は必要ありません。

※以下のデモページでも、WebSocket音声認識APIを体験できます。こちらは、ユーザー登録が不要で利用料金もかかりません。
音声認識を試すDEMONSTRATION

結果

実行が成功すると、以下のように結果がJSON形式で返却されます。

{"results":[{"tokens":[{"written":"\u30a2\u30c9\u30d0\u30f3\u30b9\u30c8\u30fb\u30e1\u30c7\u30a3\u30a2","confidence":0.93,"starttime":554,"endtime":1562, ...
...
"text":"\u30a2\u30c9\u30d0\u30f3\u30b9\u30c8\u30fb ... ",
"code":"","message":""}
-> アドバンスト・メディアは、人と機械との自然なコミュニケーションを実現し、豊かな未来を創造していくことを目指します。

この実行結果では、JSON文字列をそのまま表示しているため、JSON内の文字列が Unicode エスケープ形式として見えていますが、お使いの開発言語に備わるJSONパーサーなどで、簡単に可読可能なUTF-8文字列に変換できます。最後の「 -> 」に続く部分が、認識結果(”text”:の値)をUTF-8に変換した結果です。すべてのサンプルプログラムには、この変換処理が含まれています(curl実行サンプルを除く)。
JSONのフォーマットについては、「I/F仕様 WebSocket音声認識API」 > イベントパケット > A イベントパケットを参照してください。

補足

サンプルプログラムはすべて、プロジェクトに同梱されているWrpクライアントライブラリ(com.amivoice.wrp.Wrp)を使用して作られています。Wrpクライアントライブラリは、クライアントアプリから WebSocket 音声認識APIを利用する際の通信処理などをパッケージ化したクラスライブラリです。Wrpクライアントライブラリのインターフェイス仕様については、クライアントライブラリの Wrp(WebSocket音声認識APIクライアント) を参照してください。
また、Wrpクライアントライブラリを使用せず、 WebSocket音声認識APIを直接的に利用することも可能です。 WebSocket音声認識APIの詳細については I/F仕様 WebSocket音声認識API を参照してください。