メインコンテンツまでスキップ

sコマンドパケット/sコマンド応答パケット

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>説明
authorizationauthrization にはマイページに記載された[APPKEY] 、または、ワンタイム AppKey 発行 APIで取得したワンタイム AppKey を設定します。このパラメータは必須です。
profileIdprofileId は、ユーザー固有の単語を登録する場合の、ユーザー固有のデータファイル(プロファイル)の ID です。そのプロファイルを指定して使用できるのは、そのユーザーのみです。プロファイルは、ユーザー固有の領域に格納されますので、他のユーザーとの名前の衝突は起きません。

※ profileId には、半角英数文字、および、「-」(半角マイナス)、「_」(半角アンダーライン) で構成される文字列を指定します。ただし、「__」(半角アンダーライン 2 文字)ではじまる文字列は、 音声認識エンジン側で予約されていますので、「__」(半角アンダーライン 2 文字)ではじまる文字列は 指定しないようにしてください。

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

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

マイページの単語登録画面で作成したプロファイル(マイ単語帳)と profileWords の関係については、こちらのページの profileId と profileWords を参照してください。 profileId と profileWords の両方を指定する場合には、 profileId を先に指定する必要があります。
profileWordsprofileWords パラメータには登録したい単語の表記と読みを設定します。『表記\<半角スペース>読み』のように登録します。複数登録する場合は「 | 」で区切ります。送信時は profileWords パラメータの値全体を「"」で囲みます。 ※クラス名を指定する場合は、『表記\<半角スペース>読み \<半角スペース> クラス名』としてください。
keepFillerToken発話に含まれるフィラー単語(「あー」や「えー」など)を認識結果文字列に含めたい場合には、以下のように指定します。 keepFillerToken=1

フィラー単語には様々なものがありますが、すべて、表記の前後が半角の%で囲まれています。(例) %あー%  %えー%   %おー%  %えーっと%

keepFillerToken=1 の指定をしていない場合、フィラー単語は認識結果文字列から除去されます。

マイページで登録した単語を利用したい場合の 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 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 connect to recognizer server (can’t find available servers because all requested servers are busy)”接続したいエンジンの音声認識サーバの全てが混雑しているという理由で接続に失敗。
“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 find available servers)”接続したいエンジンを利用する権限がない、音声フォーマット名の指定が間違っている、などの理由で接続に失敗。
“s can’t connect to recognizer server (can’t connect to busy server)”接続対象の音声認識サーバの音声キューが混雑しているという理由で接続に失敗。※ACP サービスでは発生しない。
“s can’t connect to recognizer server (can’t connect to server)”その他の理由で接続に失敗。
"s can't start feeding audio data to recognizer server"音声データの送信開始処理に失敗しました。
"s session timeout occurred"セッションタイムアウトが発生しました。