1

<subdialog>私の VXML/GRXML IVR アプリの一部は、2 ~ 3 分間のオーディオを再生し、その後、メニューとして を介してカスタム コンテキストの Nuance OSDM を実行します。

これにより、OSDM がプロンプトの終了後にのみリッスンを開始するのではなく、2 ~ 3 分間のプロンプトをリッスンするため、レコグナイザーでタイムアウト エラーが発生します。

かなり前に同様の問題を修正したことを覚えていますが、どのように修正したか思い出せません。

OSDM プロンプト自体が再生を開始するまでレコグナイザーを「強制的に」待機させるために使用できるフェッチまたはタイムアウト用の VXML または OSDM プロパティはありますか?

4

2 に答える 2

1

VoiceXML では、prompt 要素が実行されたときにプロンプ​​トは実際には再生されず、キューに入れられます。

キュー内のプロンプトのみが再生されます

  1. 通訳者が待機状態(認識など)に達したとき、または
  2. fetchaudio 属性が対応する fetch 要素に設定されているときに、インタープリターがリソースをフェッチするとき。

詳細については、VoiceXML 2.0 仕様、4.1.8 Prompt Queueing and Input Collection を参照してください。

ご覧のとおり、プロンプト キューを明示的にフラッシュするために使用できる VoiceXML ディレクティブはありません。トリックは、#2 を満たすためにどこかに fetchaudio を指定することです。

したがってfetchaudio、要素に属性を指定して、プロンプト キューを強制的に再生することをお勧めしますsubdialog。fetchaudio は実際には聞きたくないので、10 ミリ秒の無音オーディオ ファイルにすることができます。

<block>
   <prompt>
     <audio src="audio/very_long_message.wav">
   </prompt>
</block>

<subdialog src="osdm/custom" fetchaudio="audio/10ms_silence.wav"/>
   ...
</subdialog>

ユーザーは、長いプレフィックス プロンプト中に割り込むことはできませんが、OSDM サブダイアログでは割り込むことができることに注意してください。

于 2013-04-05T02:03:34.737 に答える