作者 | Alexander Kuznetsov
译者 | 弯月,责编 | 夕颜
出品 | CSDN(ID:CSDNnews)
机器人比人类更加适合简单的劳动密集型任务,因此我们可以积极使用机器人来处理日常的常规操作。自动化的应用很广泛,包括与客户在电话中交谈。
在本文中,我们就来谈一谈如何通过语音识别分辨通话者的性别,并处理对话的技术和细节。
首先,我们讨论一个业务案例,然后将详细讨论技术。
我介绍一个最有趣的业务案例:引入语音机器人取代呼叫中心的员工。这个机器人的功能不是执行常规任务(例如确认送货地址),而是找出为什么有些客户访问公司网站的次数减少了。
这项技术基于功能完整的神经网络,而不是仅靠某个脚本。神经网络帮助机器人解决了常常费解的一些问题。这里,我指的是对话者给出这样的回答:“呃,我不知道,也许是,也许不是吧”,或者“呃,也许吧,可能不是。”一些人类常用的表达方式却会成为机器人无法逾越的障碍。
经过训练后,机器人能够明白不同短语的含义以及可能的答案。机器人能够发出多种声音,包括男性和女性的声音。我们的主要任务是让机器人更像一个活人,跟它对话的人类不会测试机器本身的功能,而是在目标场景的背景下进行对话。
以下是一个结果的示例。
https://soundcloud.com/daniil-dymshits/sets/neuronet-kupivip-black-friday
这个机器人能够听取对话者的声音,并给出有意义的答案。该对话脚本的不同分支总数超过一千。
这个机器人的主要目的是了解公司网站上客户活动减少的原因,并为客户提供有意义的报价。这是该公司首次实现呼叫中心自动化的一次尝试。
新机器人的效果得到了显著提升。
下面,我们来谈谈基本的技术。
确保机器人性能的三项关键技术为:
通过语音识别对话者的性别
年龄识别
管理与人类的对话
我们开发这个功能是为了利用机器人进行问卷调查。以前,问卷调查都是要求人们填写调查的问题。例如,问卷上必须标明对话者的性别。显然,人类面试官无需询问交谈的对方是男人还是女人。在99%的情况下,都不会出错。然而,对于机器人,情况就会有所不同。为了让机器人学会准确地识别声音,开发人员不得不解决许多问题。这项工作并没有白费,如今的技术可以根据性别设置个性化的语音提示。
重要的一点是:女性声音具有普遍性,适用于处理最广泛的产品,对于女性产品尤其重要。根据各种研究,任何听众听到女性的声音都会感觉很舒服,因此转换成女性声音的效果更好。例外情况是宣传男性产品的运动,这时男性的声音更好。
这种机器人是如何实现的?首先,根据语音记录和持续20 ms的片段处理来执行主要数据处理。使用VAD(语音活动检测)组件对所有收集的语音片段进行预处理。这一步非常必要,通过这一步我们可以将语音与噪声分离。删除了所有不必要的元素,从而提高了模型的准确性。
然后,采用一阶/二阶微分的倒频谱系数空间识别声音。GMM(高斯混合模型)方法是这种方法的基础。
因此,我们采用10–20 ms的间隔并计算当前的功率谱,然后使用傅里叶逆变换对频谱的对数进行搜索,并寻找必要的系数。
我们的GMM模型可分别使用男性和女性声音进行训练,还可以使用模型来分辨成人和儿童的声音。当然,训练系统不能什么都没有,你需要标记过的语音录音。
为了提高系统的效率,我们使用音色语音模型的系数:
音色清晰度
音色温暖度
音色亮度
音色深度
音色稳定性
音色增长
音色不均
音色回声
我们需要使用音色模型来正确识别孩子的声音,因为其他模型都将孩子的声音视为女性。此外,你还需要区分低沉的女性声音(例如,吸烟的老年妇女的声音),男性声音较高的声音等。顺便说一句,如果一个人说“你好”然后咳嗽,那么以前所有不带音色过滤器的模型都会将这种声音视为男性。
该系统的主要组件是基于MLP多层感知器的数据分类模块。它可以接收来自男性和女性声音模型的数据以及来自音色模型的数据。系统接收预分类值的数组作为输入,然后输出分辨性别的结果。
这种技术可用于在线(根据客户的第一句话)和离线分类模式(在对话之后)。性别识别准确率约为95%。值得一提的是,在线工作时的延迟不会超过120–150 ms,只有这样机器人才能更像人一样。通常,机器人与人交流时的停顿会长达几秒,人类会对这种行为感到奇怪,立即就能判断出对方使用了数字系统。
开发人员还在添加处理文本的功能。如果对话者提及自己是女性,那么对话者肯定是女性。在不久的将来,我们将改进这项技术并将其集成到识别系统中。
确定对话者的年龄
这项技术主要是为了防止向未成年人提供各种产品和服务。此外,了解年龄对于按年龄类别个性化报价非常有用。
我们采用了与前面的情况完全相同的技术。系统的准确性约为90%。
构造对话
接下来,我们来讨论最有趣的部分:构造对话的原理。
这项技术的主要目的是有效地替换人类,机器人必须能够处理线性和非线性对话场景。第一种情况指的是问卷调查等;第二种可以是呼叫中心、技术支持服务等与用户的交互。
工作原理:我们使用基于语义分析的NLU引擎,从ASR系统接收文本。然后,定义构造对话流的逻辑中使用的识别对象,例如实体和意图。
举例说明这些技术的使用。
我们从语音识别系统(ASR)收到如下文本:
“总的来说,我对您的推荐很感兴趣,但是我希望价格能再便宜一点。我现在有点忙。你能在明天六点再给我打个电话吗?”
使用NLU引擎填充的对象:
意图:
确认=真
异议=昂贵
问题=null
回电=真
错误的时间=真
实体:
日期=2019年1月2日(假设通话日期为2019年1月1日)
时间= 18:00
数量= 6
在这个示例中,填充对象的方法如下:
意图:
“我对您的推荐感兴趣”转换为“确认”意图,值为“真”。
“但是我希望价格能再便宜一点”转换为“异议”,意思是“昂贵”。
“我现在有点忙”转换为“错误的时间”,值为“真”。
“你能在明天六点再给我打个电话吗?”转换为“回电”,值为“真”。
用户没有提出任何问题,因此“问题”的意图为空。
实体:
文本“明天”自动转换为“2019年1月2日”的实体,计算公式为:目前的日期+1(假设通话日期为2019年1月1日)。
文本“六点”自动转换为“时间”实体,值为“下午6:00”。
文本“六”转换为值为“6”的“数量”实体,由于存在较高优先级的实体,因此在此逻辑中可以将其忽略。
现在,所有的意图和实体都分配了特定的值,接下来我们来构建对话流程。
首先,我们来看看NLU Engine支持的算法。该系统包括两个级别。
第一层使用相对较小的数据样本,其中包含大约600–1,000条记录。此处使用机器学习算法,识别准确度为90%–95%。
在启动该项目并积累100万条以上记录的大量数据之后,我们进行第二级的转换。此处使用DL算法。识别准确度为95%–98%。
该解决方案与以下两个子系统一起使用:
用于文本数据分类的子系统
对话设计子系统
这两个子系统并行工作。分类和分类系统根据与用户的语音通话接收识别的文本,并通过Entity和Value参数构造答复。
非线性场景的对话构建子系统是基于神经网络构建的。该系统根据与用户的语音通话接收识别的文本,并发出有关应在下一个时刻播放哪些录音的决定。
非线性方案适用于机器人不知道谁在打电话,不知道用户对哪个产品感兴趣,也不知道可能被问及哪些问题。此时,通话的推进取决于客户的响应。
但是,在拨出电话的时候,线性方案才是最佳解决方案。本文的开头给出了相应的示例。线性场景的另一个示例与调查有关,这种情况下客户的回答无关紧要,因为我们会对客户的回答做一步的分析。但是,重要的是引导客户回答问卷上的所有问题。
总的来说,我们要强调的是,语音机器人不会取代人类。如今,机器人能够胜任打电话询问一些问题,并聆听、记录和/或分析答案。希望借此将呼叫中心和技术支持的操作员从日复一日的例行工作中解放出来,让他们专心解决真正有趣的问题以及重要的任务。
原文链接:
https://hackernoon.com/the-future-is-now-how-voice-robots-work-and-what-they-can-do-8y2b3y8j
本文为CSDN翻译文章,转载请注明出处。
【END】
更多精彩推荐
AI 时代,为什么程序员很贵?
“生命游戏之父”因新冠肺炎逝世,回顾数学顽童的一生
天呐,你竟然还在用 try–catch-finally
北京四环堵车引发的智能交通大构想
你公司的虚拟机还闲着?基于Jenkins和Kubernetes的持续集成测试实践了解一下!
从Web1.0到Web3.0:详析这些年互联网的发展及未来方向
你点的每个“在看”,我都认真当成了喜欢