变量电话机器人系统的自动打断(就是检测到声音,就自动停止放音)

start_asr 有一个参数 pause_play_ms,demo是200, 就是检测到说话声音持续时间时间超过pause_play_ms,就自动暂停放音。如果你不需要这个功能设置为0, 如果你启用了这个功能,asrmessage_notify通知每播放一个新的声音就必须要恢复放音console_playback(resume)。否则机器人放音一直暂停着(收不到playback_result通知)。

业务打断(就是流程停止放音,或者播放一个新的声音实现打断。)
asrprogress_notify返回 console_playback(pause),或者asrmessage_notify返回播放新的声音,就会停止播放当前的声音。

怎么禁用打断功能
机器人放音的时候可以识别用户说话,但是不打断机器人放音:playback的allow_interrupt设置-1,关闭自动打断。asrprogress_notify返回 noop。 asrmessage_notif
如果playstate等于false(当前没放音),执行业务逻辑播放新的声音。asrmessage_notif如果playstate等于true(当前在放音,不处理),返回noop,并且把识别结果记录到flowdata,等paly_result的时候再处理识别结果。如果paly_result的时候检测放音过程是否有识别结果,如果有执行业务逻辑处理流程,如果没有返回wait.

放音的时候直接暂停asr, 自然也就不会打断了。playback的block_asr设置为-1.本次放音,禁用了asr,就可以了。

噪音打断怎么解决
如果要完全避免噪音打断可以把自动打断关闭,使用关键词打断。如果要求不高可以把pause_play_ms设置大些,比如1000。playback新加了一个自动打断控制参数,可以设置本次机器人放音多久才启用自动打断。

怎么实现关键词打断
start_asr的pause_play_ms 设置 0 ,关闭自动打断
asrprogress_notify 的识别结果如果是关键词 返回 console_playback(pause),如果不是关键词 返回 noop
asrmessage_notify 的整句话识别结果如果匹配,直接播放新的声音文件,执行新的业务流程,如果不匹配, 判断playstate(户说话结束的时候,机器人是否也放音完成),playstate为true返回console_playback(resume),playstate为false,执行playback_result通知一样的流程。
playback_result 收到这个通知,说明声音播放完成,等待用户说话超时,asrstate为true是表示用户当前已经在说话, 可以返回noop,否则必须播放一个声音,提示用户说话。
多种打断方案集合使用流程
start_asr 开始asr,设置 pause_play_ms 为 200-1000之间 (设置自动打断时间)
playback wait设置 3000-5000,并且设置allow_interrupt动态修改自动打断时间,
asrprogress_notify 检查是否有关键词有关键词返回console_playback(pause),没关键词返回 noop
asrmessage_notify 根据识别结果,playms(用来判断 是否 机器人刚说话,用户也开始说话) ,playstate(用来判断 用户说话结束的时候,机器人是否也放音完成),等条件返回console_playback(resume)继续放音,或者返回playback播放一个新的声音。
playback_result asrstate为true是表示用户当前已经在说话, 可以返回noop,否则必须播放一个声音,提示用户说话。
怎么实现放音的时候暂停ASR(就是机器人说话的时候,不识别用户说话,也不打断机器人说,类似单工模式一个人说一个人听。)
2.3版本playback添加了一个参数block_asr,playback的时候把block_asr设置为-1,就可以了。

机器人刚放音,用户也开始说话,或者用户刚开始说话机器人也开始放音,怎么解决。
asrprogress_notify和asrmessage_notify 新加了一个参数 playms,playms意思是用户开始说话时机器人放音时间(如果大于0就是放音时间),0就是机器人没在放音。
asrmessage_notify 的参数 playstate 表示用户说话结束的时候(发送asrmessage的时候)机器人是否在放音。
由此可以推断出 asrmessage_notify 的时候 如果 playms>0并且<2000(自己定义一个合适的),说明机器人刚开始放音用户就开始说话了。
如果 playms等于0,playstate等于true,说明用户刚开始说话,机器人也开始放音了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI_wx_3307623172

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值