VoiceXML - 在录制中识别DTMF

时间:2013-03-18 17:03:32

标签: c# asp.net-mvc voicexml

我一直在做IVR工作,但我们有一个案例,我喜欢一些专业知识/反馈:

是否可以录制一条消息,用户可以按下DTMF音以指示我们插入自己声音的暂停?在这种情况下,用户会记录如下内容:“早上好,[DTMF],请致电[DTMF]办公室以核对您的帐户。”。

我们不确定是否会将生成的WAV文件分割成片段以插入变量,或者在发送消息之前进行一些后处理。

有没有人有这样的经历?

由于

吉姆斯坦利 Blackboard Connect

2 个答案:

答案 0 :(得分:1)

在VoiceXML中,您可以使用record element来记录来自用户的消息。 记录元素具有属性调用 dtmfterm ,如果设置为true(默认设置)将终止记录。如果此属性设置为false,则在达到 maxtime 设置时终止录制,或者在达到 finalsilence 的持续时间内保持静音。将 dtmfterm 设置为false只会导致DTMF成为录制的一部分。将 dtmfterm 设置为true将导致录制终止。

我创建的应用程序使用调用者创建的录制文件,但从未按照您的要求操作录制文件。您可以做的是将录音连接在一起。这是一个QA that shows how to concatenate wav recordings using C#

您需要尝试的是,您是否可以使用语法来捕获按下了哪个DTMF​​键。规范就此而言,但它可能与您正在使用的VoiceXML IVR平台有些特定。如果您知道使用了什么DTMF密钥,那么您可以指示用户按*以插入静音和#以终止录制。两者都将终止录音,但如果按下*,VoiceXML中的逻辑将再次返回录音,如果按下#则完全停止录音过程。然后,您将使用串联将这些记录串在一起,并在用户记录的片段之间插入的并置过程中使用带有预先录制的静音的wav文件。

从标签看起来您正在为VoiceXML应用程序使用C#和MVC。有一个名为VoiceModel的开源项目,可以更轻松地使用ASP.NET MVC 4开发VoiceXML应用程序。您可以read about how it handles recording in this environment在这里。

答案 1 :(得分:0)

如果你想插入一个暂停并希望留在UI标签内,到目前为止我在IVR中有多少工作,我们可以在UI中保留的唯一dtmf是*我们会返回一个grammar "REPEAT“按下'*',在REPEAT的UI条件标签中,你会添加静音(暂停)wav文件。

录制部分,我们使用osdmtype = record映射到xslt,这有助于录制和识别客户的回答是/否。
但是我对这个要求确实有点困惑,需要更多细节。
抱歉无法添加评论,因为没有足够的代表 您可以给我发邮件,或者我可以在这里添加更多答案。