VoiceXML では、prompt 要素が実行されたときにプロンプトは実際には再生されず、キューに入れられます。
キュー内のプロンプトのみが再生されます
- 通訳者が待機状態(認識など)に達したとき、または
- 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 サブダイアログでは割り込むことができることに注意してください。