AmiVoice Techblog

AmiVoiceの音声認識に関する技術情報・活用方法・組み込み方などを発信するアドバンスト・メディアのテックブログです

AmiVoice Cloud Platformの3種類の音声認識API(非同期HTTP音声認識APIが新たに追加されました)

f:id:amivoice_techblog:20210115094116p:plain 安藤章悟

みなさま、こんにちは。

当社ではソフトウェア開発者のためのクラウド音声認識APIAmiVoice Cloud Platform として提供しています。これまで用途に応じてプロトコルの異なる2種類のAPIを提供していましたが、この度もう1種類追加して3種類のAPIを提供するようになりました

今回は新しく追加されたAPIを中心に、3種類のAPIについて解説をします

どんなAPIが追加されたのか

今回追加されたAPIは「非同期HTTP音声認識API」というものです。

これまでは、リアルタイム音声認識用の「WebSocket音声認識API」とバッチ音声認識用の「HTTP音声認識API」の2つがありました。この「HTTP音声認識API」は16MBytesまでの音声ファイルを音声認識するものでしたが、今回追加されたAPIでは16MBytesより大きいファイルも音声認識可能となります。

また、今回追加されたAPIは「非同期HTTP音声認識API」という名称なので、それに合わせて従来のAPIの名称を「HTTP音声認識API」から「同期HTTP音声認識API」に変更しています。

まとめますと、これからのAmiVoice Cloud PlatformのAPIは以下の3種類となります。

それぞれ簡単に説明します。

 

WebSocket音声認識API

WebSocket音声認識APIでは、音声ストリームをリアルタイムでテキスト化することができます。下記のようなリアルタイムに音声認識結果を活用する用途に向いています。

  • コールセンターの会話をリアルタイムにテキスト化
  • 会議の発言をリアルタイムにテキスト化
  • スマートフォンやIoTデバイスの音声操作
  • 音声対話システム

WebSocket音声認識APIを使うと、喋っている途中の音声認識結果を取得したり、喋り終わりを検知した直後に確定した音声認識結果を取得することができますが、その代わりに音声データをストリームで送る必要があります。そのため音声データをバイナリで扱ったり、必要に応じて録音デバイスの制御等を行うなど、少し実装の手間は多くなります。

 

(名称変更)同期HTTP音声認識API

同期HTTP音声認識APIでは、音声ファイルをテキスト化することができます。動作は非常にシンプルで、音声ファイルを送ったら音声認識処理がされ、処理完了後に結果が返ってきます。下記のような短い音声ファイルをテキスト化する用途に向いています。

  • 音声メモや留守番電話など、短い音声ファイルのテキスト化
  • 音声認識を使ったシステムのPoCや音声認識精度の評価

この次で説明する非同期HTTP音声認識APIとの比較のために動作シーケンスを簡単に図示します。同期HTTP音声認識APIのシーケンスは下記のようになります。

f:id:amivoice_techblog:20211006132534p:plain

同期HTTP音声認識APIでは音声ファイルを送ってから音声認識処理が完了するまでの間、アプリケーション側には待ち時間が発生することになります。また、その際にセッションを繋ぎ続けておく必要がありますが、もしもセッションが途中で切れてしまうとやり直しになってしまうため、送信可能な音声ファイルサイズに上限(16MBytes)を設けています。

(NEW!)非同期HTTP音声認識API

非同期HTTP音声認識APIでも、同期HTTP音声認識APIと同じく音声ファイルをテキスト化することができますが、処理のされ方が少しだけ異なります。下記のような長い音声ファイルを含むものや、大量の音声ファイルをテキスト化する用途に向いています。

  • コールセンターの通話録音音声ファイルのテキスト化
  • 会議録音音声ファイルのテキスト化
  • 動画ファイルのテキスト化や字幕作成

非同期HTTP音声認識APIのシーケンスは下記のようになります。

f:id:amivoice_techblog:20211006132549p:plain

音声ファイルを送ると sessionid という値が返却されます。その後、この sessionid を使って音声認識処理の状況を確認したり、音声認識結果を取得することができます。

非同期HTTP音声認識APIでは、APIを実行すると即時に応答が返ってきます。そのためセッション保持の必要もないので、16MBytesを超える大きなサイズの音声ファイルの音声認識処理も可能としています。

 

同期HTTP音声認識APIと、非同期HTTP音声認識APIのどちらを使うべきか

音声ファイルを音声認識する時、同期と非同期のどちらを使えばいいのか?については下記を参考にしてもらうとよいと思います。

  • 同期HTTP音声認識API
    実装が比較的簡単なので、小さなファイルサイズの音声を扱う場合や、お試しで音声ファイルを処理してみる用途に向いています。ただし、16MBytes以上のファイルサイズには対応していないのでご注意ください。
  • 非同期HTTP音声認識API
    実装にはひと手間必要になりますが、これまでは処理出来なかった*1大きなファイルサイズの音声にも対応しているので、長時間の音声通話や会議などの音声のテキスト化をお考えの方に向いています。もちろん小さなファイルサイズの音声を扱うこともできます。

詳細情報

実際に開発する際に必要となるマニュアルは下記にございますので、詳しくはこちらをご覧ください。

I/F仕様 非同期HTTP音声認識API 概要 - AmiVoice Cloud Platform

さいごに

今回は2021年10月に追加された非同期HTTP音声認識APIを含む現在の3種類のAPIについて解説させて頂きました。今後も用途に応じてより使いやすいAPIを提供していきたいです。もしもご意見やご要望があれば、コメントなどで送って頂けると嬉しいです。

この記事を書いた人


  • 安藤章悟

    音声認識の研究をしていたら、近所に音声認識屋を見つけてしまい入社。今に至る。

    趣味は海外旅行と美味しいものを食べることとサウナ。

*1:実は、今までも音声ファイルを無理やりWebsocket音声認識APIにストリーミングで投げることで大きなサイズの音声ファイルを音声認識処理することは可能でした。ただ、この方法は音声認識サーバーに想定外の高負荷がかかってしまう場合があるので、大きなサイズの音声ファイルには非同期HTTP音声認識APIをご使用頂きますよう、よろしくお願いいたします。