VoiceXML では、record要素を使用して、ユーザーからのメッセージを録音します。record要素には属性 call dtmftermがあり、これを true (デフォルト設定) に設定すると、記録が終了します。この属性が false に設定されている場合、maxtime設定に達するか、 finalsilenceの期間の無音に達すると、録音が終了します。dtmftermをfalseに設定すると、DTMF が記録の一部になるだけです。dtmftermを true に設定すると、記録が終了します。
発信者が作成した録音を使用するアプリケーションを作成しましたが、要件のように録音を操作するアプリケーションは作成しませんでした。できることは、録音を連結することです。これは、C# を使用して wav 録音を連結する方法を示す QA です。
実験する必要があるのは、文法を使用してどの DTMF キーが押されたかをキャッチできるかどうかです。仕様はこれに当てはまりませんが、使用している VoiceXML IVR プラットフォームに多少固有のものである可能性があります。使用された DTMF キーがわかっている場合は、* を押して無音を挿入し、# を押して録音を終了するようにユーザーに指示できます。どちらも録音を終了しますが、VoiceXML のロジックは、* が押された場合は再び録音に戻り、# が押された場合は録音プロセスを完全に停止します。次に、連結を使用してこれらの録音をつなぎ合わせ、ユーザーが録音したスニペットの間に挿入される連結プロセスで、事前に録音された無音の wav ファイルを使用します。
タグから、VoiceXML アプリケーションに C# と MVC を使用しているように見えます。ASP.NET MVC 4 を使用した VoiceXML アプリケーションの開発を容易にする、VoiceModelというオープン ソース プロジェクトがあります。この環境での録音の処理方法については、こちらを参照してください。