sコマンドパケット/sコマンド応答パケット
s コマンドパケットと s コマンド応答パケットは、対になっています。 s コマンドで音声データ送信開始をサーバに通知すると、サーバは s コマンド応答パケットを返します。
s コマンド応答パケットが "s" 一文字の場合は成功です。続けて p コマンドパケットによる音声データの供給を始めることができます。音声データの送信がすべて終了したら e コマンドパケットで送信終了を通知しますが、その後も接続が維持されていれば、再び s コマンドパケットから再開できます。
s コマンドパケット
音声データ送信を開始します。 送信開始を通知することに加えて、送信する音声のフォーマットや使用したい音声認識エンジン(接続エンジン名)、認証情報(APPKEY)その他のパラメータを送信する必要があります。
形式
タイプ TEXT
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 | authorization にはマイページに記載された[APPKEY] 、または、ワンタイム APPKEY 発行 APIで取得したワンタイム APPKEY を設定します。このパラメータは必須です。 |
profileId | profileId は、ユーザー固有の単語を登録する場合の、ユーザー固有のデータファイル(プロファイル)の ID です。そのプロファイルを指定して使用できるのは、そのユーザーのみです。プロファイルは、ユーザー固有の領域に格納されますので、他のユーザーとの名前の衝突は起きません。 ※ profileId には、半角英数文字、および、「-」(半角マイナス)、「_」(半角アンダーライン) で構成される文字列を指定します。ただし、「__」(半角アンダーライン 2 文字)ではじまる文字列は、 音声認識エンジン側で予約されていますので、「__」(半角アンダーライン 2 文字)ではじまる文字列は 指定しないようにしてください。 マイページの単語登録で単語を登録すると、マイページの接続情報に記載のあるサービス ID(ユーザー ID から自動生成されます)と同じ名前のプロファイル(マイ単語帳)がサーバ上に自動的に作成保存されます。このプロファイル(マイ単語帳)を利用して音声認識を行いたいときは、「サービス ID の先頭に半角コロン":"を付加した文字列」を、 profileId に指定します。(例)サービス ID が「aiueo12345」の場合、「:aiueo12345」を profileId の値とします。 単語登録 単語登録は、マイページの単語登録画面で行うのがもっとも簡単です。この方法であれば、後述する profileWords を利用する必要はあまりありません。 マイページの単語登録画面で作成したプロファイル(マイ単語帳)と profileWords の関係については、こちらのページの profileId と profileWords を参照してください。 profileId と profileWords の両方を指定する場合には、 profileId を先に指定する必要があります。 |
profileWords | profileWords パラメータには登録したい単語の表記と読みを設定します。『表記\<半角スペース>読み』のように登録します。複数登録する場合は「 | 」で区切ります。送信時は profileWords パラメータの値全体を「"」で囲みます。 ※クラス名を指定する場合は、『表記\<半角スペース>読み \<半角スペース> クラス名』としてください。 |
keepFillerToken | 発話に含まれるフィラー単語(「あー」や「えー」など)を認識結果文字列に含めたい場合には、以下のように指定します。 keepFillerToken=1 フィラー単語には様々なものがありますが、すべて、表記の前後が半角の%で囲まれています。(例) %あー% %えー% %おー% %えーっと% keepFillerToken=1 の指定をしていない場合、フィラー単語は認識結果文字列から除去されます。 |
segmenterProperties | 発話検出のパラメータです。話者ダイアライゼーションの有効・無効を制御したり、結果を調整するためのパラメータを設定できます。複数のパラメータを空白で区切って設定できます。 segmenterProperties="key1=value1 key2=value2..." 設定できるパラメータは以下のとおりです。 useDiarizer 1を設定すると話者ダイアライゼーションが有効になります。 ・指定可能な値: 0 または 1 ・デフォルト値: 0 diarizerAlpha 新規話者の出現しやすさを制御するパラメータです。 大きな値を指定するほど新規話者が出現しやすくなり、小さな値を指定するほど新規話者が出現しづらくなります。 useDiarizer=1 のときのみ有効です。・指定可能な値: 0以上 ・目安となる範囲: 1e-100~1e50 ・デフォルト値: 1 diarizerTransitionBias 話者の切り替わりやすさを制御するパラメータです。 大きな値を指定するほど話者が切り替わりやすくなり、小さな値を指定するほど話者が切り替わりづらくなります。 useDiarizer=1 のときのみ有効です。・指定可能な値: 0以上1未満 ・目安となる範囲: 1e-150~1e-10 ・デフォルト値: 1e-40 (8kの場合は、1e-20) |
マイページで登録した単語を利用したい場合の 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 ファイルからの追加登録や、全入れ換えをユーザーが選択できます。
- 独自プロファイルに単語を保存するための接続では、
profileId
の先頭に「:」(半角コロン)を付けてはいけません。先頭に半角コロンを付けると、そのプロファイルに単語が保存されませんのでご注意ください。
登録単語の使用方法
プロファイルに登録した単語を利用して音声認識を行うためには、sコマンドパケットを送信するときの profileId
に、以前に単語登録を行ったプロファイルの profileId
を、先頭に「:」(半角コロン)を付けて指定します。
複数のメンバーが利用する場合で、profileId
の先頭に「:」をつけないで指定した場合は、認識精度が低下する場合があります。
登録単語の削除方法
登録した単語を削除したい場合には、s コマンド送信時に profileId
を指定したうえで、 profileWords
に半角スペース 1 個を指定してください。
独自プロファイルを音声認識に利用したい場合の s コマンド
s MSB16K -a-general profileId=:test authorization=XXXXXXXXXXXXXX
s コマンド応答パケット
s コマンドに対する応答としてサーバからクライアントに送信されます。
形式
タイプ TEXT
開始要求成功時の応答パケット
送信開始要求が成功すると、s 一文字が返ります。
s
開始要求失敗時の応答パケット
送信開始要求が失敗すると、s の後ろに半角スペースを挟んでエラーメッセージが返ります。
s <error_message>
エラーメッセージ
クライアントエラー
s
コマンドのリクエストパラメータや認証情報の誤りによるエラーです。修正してから再度リクエストを送信してください。
エラーメッセージ | 内容 |
---|---|
s received unsupported audio format | 指定された音声フォーマットに誤りがありました。 |
s can't verify service authorization | 設定された APPKEY に誤りがありました。 |
s service authorization has expired: <expirationTime> <expiresIn> | APPKEY の有効期限が切れています。 |
s can’t connect to recognizer server (can’t find available servers) | 指定された接続エンジン名や音声フォーマットから適切なエンジンを見つけられないため、接続に失敗しました。 |
s can't start feeding audio data to recognizer server | 指定されたセグメンターのパラメータに誤りがあり、音声データの送信開始処理に失敗しました。 |
s can’t connect to recognizer server (can’t find available servers because requested dictation grammar file name is invalid) | 指定された接続エンジン名が無効なため、接続に失敗しました。 |
サーバーエラー
基盤システムの障害などによって稀に起きてしまう可能性のあるエラーです。しばらく待ってから再度リクエストを送信してください。
エラーメッセージ | 内容 |
---|---|
s can't connect to recognizer server (can't connect to server)" | 音声認識サーバに接続できませんでした。 |
s can’t connect to recognizer server (can’t find available servers because all requested servers are busy) | 指定された接続エンジン名や音声フォーマットに対する適切な音声認識サーバの全て混雑しているために接続できませんでした。 |
s can't connect to recognizer server (can't send data) | 基盤システム内のサーバ間の通信エラーにより接続に失敗しました。 |
s can't connect to recognizer server (can't receive data) | 基盤システム内のサーバ間の通信エラーにより接続に失敗しました。 |
s can't connect to recognizer server (disconnected by force) | 基盤システム内のサーバ間の通信エラーにより接続に失敗しました。 |
制限事項によるエラー
制限事項に抵触した場合に発生します。s
コマンドのリクエストからやり直してください。
エラーメッセージ | 内容 |
---|---|
s session timeout occurred | セッションタイムアウトが発生しました。制限事項のセッションの最大時間を超えた場合に発生します。サーバ側から切断処理を行いました。 |