天猫精灵如何和我们聊天?

简介: 天猫精灵已经走过几年的历史,在这几年中,天猫精灵变得更加智能,其中的体现之一是交互方式变得越来越自然。本文将介绍天猫精灵的全双工自然对话交互方式。

什么是全双工自然对话?

如果孙悟空的金箍棒加入天猫精灵语音交互的支持,那么孙悟空在获得金箍棒后会怎样给他的猴儿们演示呢?

image.png

在一问一答方式中,孙悟空首先需要唤醒金箍棒,然后再发出大一些的指令,金箍棒在收到指令后会变粗变高并回复已经变大。如果孙悟空要想让金箍棒再大一些,需要再次唤醒金箍棒并发出指令。每次想让金箍棒大一些,孙悟空就要重复这个过程。

在连续对话方式中,孙悟空也要先唤醒金箍棒,然后在发出大一些的指令,金箍棒也会在收到指令后会变粗变高并回复已经变大。如果孙悟空要想金箍棒再大一些,可以选择等待金箍棒的回复结束,然后直接说出大一些的指令。接下来每次想让金箍棒大一些,孙悟空只需要等待金箍棒回复结束,然后直接说出大一些的指令即可。

在自然对话模式中,孙悟空先唤醒金箍棒,然后发出大一些的指令,金箍棒在收到指令后会直接变粗变高。接下来,如果孙悟空想金箍棒在大一些,直接说出大一些指令即可,不需要再次唤醒,也不需要等待回复结束。

天猫精灵有孙悟空演示金箍棒的场景吗?答案是肯定的,例如音量控制就非常相似。那么天猫精灵的全双工自然对话是怎么实现的呢?

技术方案

设备端:负责听和说。主要解决什么时候听,有没有听到语音,听到的语音有多长;什么时候说,以及说什么。

语音识别:即 ASR,将用户的语音识别成文本,并提取声音的特征。

语义理解:即 NLU,负责理解用户说了什么并转换成机器可读的信息。

语音合成:即 TTS,负责将文本转换成语音。

对话管理:即 DM,根据语义理解的结果和会话的上下文信息调用各种服务完成用户的请求。

人机交互识别:根据 ASR 输出的声学特征判断收到语音是不是用户和音箱说的话。

image.png

设备端交互管理

用户打开自然对话后,服务端在对用户进行应答的同时会下发自然对话收音指令到设备端。

设备端收到自然对话收音指令后,进入自然对话状态并开始收音。

在自然对话状态下,设备端检测到用户说话时开始发起自然对话交互请求;检测到用户说话结束时结束请求,并上报自然对话状态的持续时长和用户的说话时长到服务端。

设备端收到服务端应答,但是应答中不包含自然对话收音指令时,如果当前处于自然对话状态则退出自然对话。

自然对话收音指令中包含收音的持续时长,如果在这个时长内没有检测到声音也会退出自然对话。

设备端播放管理

在用户交互过程中,需要根据用户的意图决定被打断的播放动作是否需要继续。比如,用户在播放音乐时说“收藏这首歌”,那么在执行用户指令后需要继续恢复播放音乐;而用户在收听天气时问了算术,那么在执行用户的指令后不需要继续播放天气。

所以我们把音箱播放的类型分成 3 类,即需要恢复的播放、不需要恢复的播放以及提示音,并根据当前的播放类型和即将播放的类型来确定是否保存播放状态。

持续时长

用户不会一直和音箱交互,持续的收音和处理会极大的增加云端的处理负担,也没有必要,因此我们需要对自然对话的持续时长进行限制。但是用户和用户交互的时长又不是确定的,因此我们采取了滑窗的计时方式,即每一次用户交互后,我们都会重新计时,等待用户进行交互。

人机交互识别

在自然对话持续的过程中,用户可能在与其它人聊天,我们需要识别出来,并且做到用户无感知。在实际实践过程中,我们以语音识别时提取的声学特征为输入,通过深度学习算法来判断用户是否在与与音箱进行交互。如果发现请求不是用户和精灵的交互,精灵不会做出响应。

会话流

在自然对话持续的过程中,语义理解服务会记住会话的历史,并结合历史来处理用户的请求,通过这种方式,用户的多次连续交互就可以形成一个会话流,与用户的交互也更加自然。例如,用户询问今天说“今天天气怎么样”,精灵会回复今天的天气,如果用户再询问明天的天气,那么用户不用说“明天天气怎么样”,而只需要说“明天呢”。

总结

全双工自然对话是一个系统的工程,涉及到从设备端的前端信号处理、设备端语音交互管理、到云端网关、语音识别、语义理解等整个语音交互链路,涉及到部门多个团队的协作,项目的顺利推进离不开各个团队的通力协作,充分体现了“因为信任所以简单”和“此时此刻非我莫属”的价值观。

全双工自然对话上线后受到了用户的广泛好评,自然对话的用户只要使用精灵,几乎都会使用这个功能来与天猫精灵交互,而这部分用户的活跃度也比其它用户更高。

当然,在提升用户交互体验的道路上,全双工自然对话不是终点,还有很多可以提升的地方,我们会继续努力,为用户提供更好的交互体验。

感谢

衷心感谢参与项目的所有同学,有些同学甚至为此取消了国庆假期的安排。在大家的共同努力下,短短一个多月时间内就完成了全链路方案的实现和落地,让用户可以更早的体验到精灵的黑科技。

相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
消息中间件 NoSQL API
环信实现聊天功能
环信实现聊天功能
101 0
|
2月前
|
监控 小程序 JavaScript
讯飞-微信小程序-语音助手
讯飞-微信小程序-语音助手
95 1
讯飞-微信小程序-语音助手
|
5月前
|
机器学习/深度学习 人工智能 视频直播
AI直播手机APP震撼发布!3大场景直播,60秒一键开播!
🎉 青否数字人AI直播APP发布!🚀 在抖音等平台60秒一键开播,简化直播流程。💡 3种AI直播模式,融合6大AIGC技术,助力新手轻松直播带货且避免违规。💪 AI主播、声音克隆,实时话术改写,智能互动与讲品同步,提升转化。📊 实景与视频直播结合,适应多种场景。🌐 独立部署,自定义版权,1年免费升级,专业售后支持。🚀 (直播: zhibo175) #青否数字人 #AI直播
AI直播手机APP震撼发布!3大场景直播,60秒一键开播!
|
SQL 开发框架 .NET
初识天猫精灵语音技能
初识天猫精灵语音技能
474 0
初识天猫精灵语音技能
|
机器人
话痨小机器人快陪我聊天
话痨小机器人快陪我聊天
127 0
话痨小机器人快陪我聊天
|
自然语言处理 JavaScript Java
|
自然语言处理 JavaScript Java
天猫精灵开放平台体验创建语音技能
天猫测评活动——创建一个语音技能的真实操作流程记录
|
数据可视化 Java 开发者
在天猫精灵开放平台上搭建自己的语音小助手
在天猫精灵开发平台中,对于新人官方很好的提供了一些轻代码的模板,在demo上稍微添加一些调用接口就可以轻松完成自己的需求,根据这一点,对于开发者来说是十分方便了,在demo基础上,很方便的就可以到达自己所需要的效果,也全程无需自己搭建环境,仅靠web端就可以实现代码编写、编译、调试、上线一整套流程。
1604 1
在天猫精灵开放平台上搭建自己的语音小助手
|
JSON 编解码 监控
天猫精灵音视频质保框架介绍
背景音视频做为天猫精灵的重要业务,可支持多态终端的爱家看护监控、音视频通话等场景,志在打造陪伴类心智,为用户生活增添便捷和美好。近一年业务经历了手机/音箱/云端/服务商等整体换血,在维持40万日活访问的基础上,打造新品卖点,提升性能耗时。音视频业务的质量保证,除了要考虑通用音视频指标,还要结合业务架构实际,从功能/稳定/性能/QoS等方面提升用户体验,了解行业位置。现将质保框架总结如下,希望能抛砖
天猫精灵音视频质保框架介绍
|
开发工具 数据安全/隐私保护 开发者
简单的环信单聊(用于商城聊天)
简单的环信单聊(用于商城聊天)
241 0
简单的环信单聊(用于商城聊天)