リクエストパラメータ
AmiVoice API で音声認識をリクエストするときに設定するパラメータについて説明します。HTTP、WebSocket インタフェースでそれぞれ送信方法が異なりますが、設定できるパラメータは同じです。
パラメータの一覧
authorization(認証情報)とgrammarFileNames(接続エンジン名)は必須です。その他のパラメータはオプションです。インタフェース毎に対応していないものもありますので、下記の表を参照してください。
| パラメータ名 | 説明 | 必須 | 同期HTTP | WebSocket | 非同期HTTP |
|---|---|---|---|---|---|
| authorization | 認証情報 | ● | ● | ● | ● |
| grammarFileNames | 接続エンジン名 | ● | ● | ● | ● |
| profileId | プロファイル ID | ● | ● | ● | |
| profileWords | 単語登録リスト | ● | ● | ● | |
| keepFillerToken | フィラー単語(不要語)の自動削除の抑制 | ● | ● | ● | |
| segmenterProperties | 発話区間検出・話者ダイアライゼーションのパラメータ | ● | ● | ● (*1) | |
| extension | 使用量集計タグ | ● | ● | ● | |
| maxDecodingTime | 最大認識処理時間 | ● | ● | ● | |
| maxResponseTime | 最大応答時間 | ● | ● | ● | |
| maxDecodingRate | 最大 RT | ● | ● | ● | |
| targetResponseTime | 目標応答時間 | ● | ● | ● | |
| targetDecodingRate | 目標 RT | ● | ● | ● | |
| recognitionTimeout | 認識完了タイムアウト | ● | ● | ● | |
| resultUpdatedInterval | 認識中イベントの間隔 | ● | |||
| noInputTimeout | 発話開始待ちタイムアウト | ● | |||
| loggingOptOut | ログ保存のあり、なしの変更 | ● | |||
| contentId | ユーザー定義 ID | ● | |||
| compatibleWithSync | 結果フォーマットの互換性 | ● | |||
| speakerDiarization | 話者ダイアライゼーションの有効化オプション | ● | |||
| diarizationMinSpeaker | 話者ダイアライゼーションの最小推定話者人数 | ● | |||
| diarizationMaxSpeaker | 話者ダイアライゼーションの最大推定話者人数 | ● | |||
| sentimentAnalysis | 感情分析の有効化オプション | ● |
(*1)非同期 HTTP インタフェースでは、話者ダイアライゼーションに関するパラメータは使えません
これらのリクエストパラメータの送信方法については、次のセクションを参照してください。
パラメータの詳細
以下ではパラメータの詳細について説明します。
必須パラメータ
authorization
認証情報
API を利用するためには必ず認証情報を設定する必要があります。認証情報は、マイページに記載された[API キー]、または、API キー発行 APIで取得した API キーです。
ブラウザアプリケーションから音声認識サーバに接続する場合には、認証情報が漏洩してしまった場合の危険性を考慮して、有効期限や IP アドレスの制限付きの API キーを使用することを推奨します。詳細は、API キーを参照してください。
grammarFileNames
接続エンジン名
そのセッションで使用したい音声認識エンジンを指定します。1 回のセッションで 1 つ指定します。設定できる値は接続エンジン名の一覧表か、マイページを参照してください。詳細は音声認識エンジンを参照してください。
オプションパラメータ
profileId
プロファイル ID
プロファイルとは、音声認識サーバ上に存在するユーザーごとのデータファイルで、ユーザーが名前をつけて、登録した単語を保存できます。プロファイル ID はそのデータファイルを指定するための識別子です。詳細は、ユーザー辞書を参照してく ださい。
profileWords
ユーザー辞書単語リスト
セッションで有効なユーザー辞書の単語を登録できます。ハイブリッドエンジンの単語登録の場合、ひとつの単語は『表記<半角スペース>読み』という形式で登録します。クラス名を指定する場合は、『表記<半角スペース>読み<半角スペース>クラス名』としてください。End to End エンジンの単語強調の場合、『表記<半角スペース>代替表記<半角スペース>単語強調度』という形式で登録します。代替表記と単語強調度は省略可能ですが、代替表記のみを省略する場合は『表記<半角スペース><半角スペース>単語強調度』とします。単語登録も単語強調も、複数登録する場合は、単語と単語を「|」(半角縦棒)で区切ります。値のフォーマットは以下のようになります (単語登録でクラス名を指定していない場合の例です)。
表記1 読み1|表記2 読み2|表記3 読み3|表記4 読み4
詳細は、ユーザー辞書を参照してください。
keepFillerToken
フィラー単語(不要語)の自動削除の抑制
1か0を指定します。デフォルトは0です。音声認識結果に含まれるフィラー単語 (「あー」や「えー」など)を自動的に除去したくないときに1を指定します。フィラー単語の自動削除も参照してください。
フィラー単語は単語の前後を半角の「%」で囲まれています。以下はフィラー単語の例です。
%あー%
%えー%
%おー%
%えっと%
AmiVoice Tech BlogのAmiVoice APIで不要語(フィラー)を表示するか除去するか選ぶ方法も参照してください。
segmenterProperties
発話区間検出のパラメータ
発話の検出されやすさ等を調節するパラメータです。まずはデフォルトで試してみてから、必要に応じて調節を行うようにしてください。パラメータは以下のものを設定できます。
デフォルト値は同期 HTTP インタフェースおよび WebSocket インタフェースが共通で、非同期 HTTP インタフェースは一部異なる値が設定されています。後者は()内に記載します。
デフォルト値については予告なく変更される可能性があります。
threshold- 発話か否かを判断するためスコアの閾値であり、スコアがこの値以上であれば発話とみなされます。この値を小さくすると発話が検出されやすくなり、発話が途切れたり末尾が切れたりしにくくなりますが、誤検出も起きやすくなります。ノイズが多い環境で誤検出が目立つ場合は、この値を大きくします。
- デフォルトは 5000(8000)です。
preTime- 発話とみなされた時間が一定時間続いたら、発話区間を検出する状態に移行しますが、この「一定時間」の長さを指定する値です。短い発話が検出されない場合や発話の先頭が切れやすい場合などは、この値を小さくします。短いノイズの誤検出が多い場合は、この値を大きくします。
- 単位はミリ秒、デフォルトは 100(100)です。50 の倍数で指定してください。
postTime- 発話区間の末尾に非発話とみなされた時間が一定時間続いたら、発話区間を検出する状態を終了しますが、この「一定時間」の長さを指定する値です。発話の途中で区切られてしまう場合は、この値を大きくします。2つの発話がつながってしまう場合は、この値を小さくします。
- 単位はミリ秒、デフォルトは 550(800)です。
preForcedTime- 発話区間を検出する状態に移行した際に、発話とみなされた最初の時刻からどれだけ遡って発話区間開始地点とするかを指定する値です。発話の先頭が切れやすい場合、この値を大きくします。
- 単位はミリ秒、デフォルトは 350(350)です。
postForcedTime- 発話区間を検出する状態が終 了した際に、非発話とみなされた最終時刻からどれだけ経過した時刻までを発話区間とするかを指定する値です。発話の末尾が切れやすい場合、この値を大きくします。レスポンスのリアルタイム性が悪い場合は、この値を小さくします。
- 単位はミリ秒、デフォルトは 350(350)です。
powerThreshold- 発話か否かを判断する際に、音量(パワー)も加味する場合のスコアの閾値です。
thresholdとは別に設定する必要があり、0 以下の値にすると無効になります。閾値以下のスコアとなった場合は、非発話とみなされます。背景の小さい音を検出しやすい場合、この値を大きくします。 - デフォルトは 100(100)です。
- 発話か否かを判断する際に、音量(パワー)も加味する場合のスコアの閾値です。
decayTime- 一定時間が経過したら
postTimeの値を単調減少させて発話を切れやすくすることができ、この「一定時間」を指定する値です。検出される発話区間が長すぎる場合、この値を小さくします。 - 単位はミリ秒、デフォルトは 5000(15000)です。
- 一定時間が経過したら
上記のパラメータの、利用シーンごとの推奨値は以下のとおりです。
| パラメータ | 多くの場面に適用できる推奨値(同期 HTTP、WebSocket インタフェースのデフォルト値) | 声がとても小さい場面の推奨値 | BGM や保留音、非定常ノイズなどが多い場面の推奨値 |
|---|---|---|---|
threshold | 5000 | 5000 | 9000 |
preTime | 100 | 100 | 100 |
postTime | 550 | 550 | 550 |
preForcedTime | 350 | 350 | 350 |
postForcedTime | 350 | 350 | 350 |
powerThreshold | 100 | 0 | 100 |
decayTime | 5000 | 5000 | 5000 |
話者ダイアライゼーションに関するパラメータ
話者ダイアライゼーションに関するパラメータです。同期 HTTP と WebSocket インタフェースでのみ設定可能です。以下のパラメータを設定できます。
useDiarizer1を設定すると、同期 HTTP や WebSocket インターフェースで話者ダイアライゼーションを有効にします。デフォルトは無効です。詳細は、話者ダイアライゼーションを参照してください。
diarizerAlpha- 同期 HTTP や WebSocket インターフェースでの話者ダイアライゼーションの新規話者の出現しやすさを制御するパラメータです。大きな値を指定するほど新規話者が出現しやすくなり、小さな値を指定するほど新規話者が出現しづらくなります。
diarizerAlpha=0は特別で、1e-30 が指定されたものとして扱われます。ただし、8kHz 音声に対応しているエンジン、例えば、汎用エンジン(-a-general)を利用しサンプリングレートが 8kHz の音声を送信した場合は、1e-10 が指定されたものとして扱われます。何も設定しないとdiarizerAlpha=0が指定されたことになります。
- 同期 HTTP や WebSocket インターフェースでの話者ダイアライゼーションの新規話者の出現しやすさを制御するパラメータです。大きな値を指定するほど新規話者が出現しやすくなり、小さな値を指定するほど新規話者が出現しづらくなります。
diarizerTransitionBias- 同期 HTTP や WebSocket インターフェースでの話者ダイアライゼーションの話者の切り替わりやすさを制御するパラメータです。大きな値を指定するほど話者が切り替わりやすくなり、小さな値を指定するほど話者が切り替わりづらくなります。
diarizerTransitionBias=0は特別で、1e-20 が指定されたものとして扱われます。何も設定しないとdiarizerTransitionBias=0が指定されたことになります。
- 同期 HTTP や WebSocket インターフェースでの話者ダイアライゼーションの話者の切り替わりやすさを制御するパラメータです。大きな値を指定するほど話者が切り替わりやすくなり、小さな値を指定するほど話者が切り替わりづらくなります。
パラメータの設定方法
segmenterProperties=に続けてパラメータの設定を記述してください。複数のパラメータを同時に設定する場合は、それぞれのパラメータは半角スペースで区切ります。