sコマンドパケット/sコマンド応答パケット - AmiVoice Cloud Platform

sコマンドパケットとsコマンド応答パケットは、対になっています。
sコマンドで音声データ送信開始をサーバに通知すると、サーバからはsコマンド応答パケットが返却されます。

sコマンド応答パケットが “s” 一文字の場合は成功です。続けてpコマンドパケットによる音声データの供給を始めることができます。音声データの送信がすべて終了したらeコマンドパケットで送信終了を通知しますが、その後も接続が維持されていれば、再びsコマンドパケットから再開できます。

sコマンドパケット

音声データ送信を開始します。
送信開始を通知することに加えて、送信する音声のフォーマットや使用したい音声認識エンジン(接続エンジン名)、認証情報(AppKey)その他のパラメータを送信する必要があります。

形式

タイプ TEXT

s <audio_format>
s <audio_format> <grammar_file_names>
s <audio_format> <grammar_file_names> <key>=<value> ...

sおよび各パラメータブロックの区切り文字は、半角スペースです。
以下に各パラメータの詳細について説明します。

<audio_format>

送信する音声フォーマットを指定します。このパラメータは必須です。指定できるフォーマット名については、チュートリアル > 音声フォーマットについてを参照してください。

<grammar_file_names>

接続エンジン名を指定します。このパラメータは必須です。

<key>

<key> には、以下のキー文字列が指定できます。
<value> にスペースが含まれる場合は、valueの前後を半角ダブルコーテーション「”」で囲みます。

<key> 説明
authorization

authrizationにはマイページに記載された[APPKEY] 、または、ワンタイム AppKey発行APIで取得したワンタイムAppKeyを設定します。このパラメータは必須です。

profileId

profileIdは、ユーザー固有の単語を登録する場合の、ユーザー固有のデータファイル(プロファイル)のIDです。そのプロファイルを指定して使用できるのは、そのユーザーのみです。プロファイルは、ユーザーID固有の領域に格納されますので、他のユーザーとの名前の衝突は起きません。

マイページの単語登録で単語を登録すると、ユーザーIDと同じ名前のプロファイル(マイ単語帳)がサーバ上に自動的に作成保存されます。このプロファイル(マイ単語帳)を利用して音声認識を行いたいときは、「ユーザーIDの先頭に半角コロン”:”を付加した文字列」を、profileId に指定します。
(例)ユーザIDが「aiueo12345」の場合、「:aiueo12345」をprofileId値とします。

プロファイルと単語登録について

単語登録は、マイページの単語登録画面で行うのがもっとも簡単です。この方法であれば、後述するprofileWordsを利用する必要はあまりありません。

マイページの単語登録画面で作成したプロファイル(マイ単語帳)とprofileWordsの関係については、こちらのページの「リクエストパラメータ d 」の説明欄にあるprofileIdとprofileWordsを参照してください。

profileWords

profileWordsパラメータには登録したい単語の表記と読みを設定します。『表記<半角スペース>読み』のように登録します。複数登録する場合は「|」で区切ります。送信時はprofileWordsパラメータの値全体を「”」で囲みます。

 

マイページで登録した単語を利用したい場合のsコマンド

s MSB16K -a-general profileId=:<ユーザーID> authorization=XXXXXXXXXXXXXX

このセッションのために一時的に単語登録する場合のsコマンド

s MSB16K -a-general profileWords="AMI あみ|AmiVoice あみぼいす" authorization=XXXXXXXXXXXXXX

上の例は、profileIdを指定せず 、 “AMI あみ|AmiVoice あみぼいす”(2単語)を登録しています。続けて、このセッションの中で音声データを送信すれば、これらの単語が認識処理に利用されます。その後、eコマンドパケットを送信(セション終了)すれば、これらの単語は無効になり、保存されることもありません。

独自プロファイルを作り単語登録する場合のsコマンド

s MSB16K -a-general profileId=test profileWords="AMI あみ|AmiVoice あみぼいす" authorization=XXXXXXXXXXXXXX

上の例は、profileIdは ‘test’ 、登録単語は “AMI あみ|AmiVoice あみぼいす”(2単語)です。
※独自に作ったプロファイルをマイページの単語登録画面で管理することはできません。

独自プロファイルへの単語の保存方法

sコマンドにprofileIdと profileWordsを追加して送信した後に、音声データを送らず、eコマンドパケットを送ってください。音声データ送信停止が受けつけられると、指定されたprofileIdに単語が保存されます。
プロファイルに単語を保存登録するには、毎回、保存登録したい単語を全て送信する必要があります。一度単語を登録して、後日、別の単語を追加登録したい場合は、追加する単語と過去に登録されている単語を合わせてすべて送信する必要があります。
プロファイルへの単語の保存は「全入れ換え」ということです。現在プロファイルに登録されている単語がなんであるか、過去にどのような単語を登録したかなどについては、ユーザー自身の責任です。
※ マイページの単語登録であれば、現在の登録単語を画面上で確認でき、CSVファイルからの追加登録や、全入れ換えをユーザーが選択できます。

登録単語の使用方法

プロファイルに登録した単語を利用して音声認識を行うためには、sコマンドパケットを送信するときのprofileIdに、以前に単語登録を行ったプロファイルのprofileIdを、先頭に「:」(半角コロン)を付けて指定します。
複数のメンバーが利用する場合で、profileIdの先頭に「:」をつけないで指定した場合は、認識精度が低下する場合があります。

独自プロファイルを音声認識に利用したい場合のsコマンド

s MSB16K -a-general profileId=:test authorization=XXXXXXXXXXXXXX

s コマンド応答パケット

sコマンドに対する応答としてサーバからクライアントに送信されます。

形式

タイプ TEXT

開始要求成功時の応答パケット

送信開始要求が成功すると、s 一文字が返ります。

s

開始要求失敗時の応答パケット

送信開始要求が失敗すると、s の後ろに半角スペースを挟んでエラーメッセージが返ります。

s <error_message>

エラーメッセージ

エラーメッセージ 内容
“s unsupported audio format: <audio_format>” 対応しないオーディオフォーマットが指定されました。
“s can’t verify service authorization” AppKeyが間違っています。
“s service authorization has expired: <expirationTime> <expiresIn>”AppKeyの期限が切れています。
“s can’t connect to recognizer server: <server_properties>”音声認識サーバに接続できませんでした。
“s can’t start feeding audio data to recognizer server”音声データの送信開始処理に失敗しました。
“s session timeout occurred”セッションタイムアウトが発生しました。