智能语音系统的搭建着重点是什么
随着人工智能命题的提出,近年来涌现出一大批基于人工智能的呼叫中心业务服务商和集成商,仅智能外呼这一模块儿就将近百家公司在推广和运营。可以说整个基于人工智能技术的市场开始蓬勃的发展起来了。
简单介绍一下什么叫做智能语音交互平台。其实大实话就是在呼叫中心基础上,集成ASR、TTS、的呼叫服务平台。那么如何我们自己去搭建智能语音系统呢?
我们先列出搭建智能外呼系统的搭建需要哪些技术和服务:
[if!supportLists]· [endif]首先最重要的是交换机:
[if!supportLists]1. [endif]PBX也就是交换机,商用设备原厂包括像华为、Avaya、思科、东汇等这些生产硬件交换机,
[if!supportLists]2. [endif]还有就是目前FreeSitch、asterrisk、OpenPBX这些软件交换机。
[if!supportLists]· [endif]其次是AI技术:及包含语音识别、语义理解、语音合成这三种技术是核心组成部分。语音识别相当于人的“耳朵”,接进电话后,对人的话语进行处理转义成系统能够识别的数据交由系统处理去识别。在进一步的话,可以转义为文字。语义理解相当于人的"大脑",根据话语识别人的意图。语音合成,相当于人的”嘴巴“,识别人的意图之后,依照特定的回答方式,去回复和引导对话。
[if!supportLists]· [endif]再者是前端服务平台:即用户登录、配置呼叫流程,建立呼叫任务、统计呼叫数据、导出呼叫报表的网站,这个是终端用户唯一可以看到并且操作的界面。
[if!supportLists]· [endif]最后是外呼线路:其中包括三大运营商以及其他小型的集成线路供应商,主要目的是外呼电话或者是接入电话。
也有人可能有疑问:”智能语音交互系统最重要的不是人工智能么,和交换机有啥关系?”为什么说最重要的是交换机呢,原因是不管我们是外呼还是接入电话、都需要前端服务平台把外呼请求发送给交换机,通过外呼线路而拨出去。换句话说交换机是控制整体的外呼情况。硬件的交换机,比如说像华为的交换机,价格在大约几万到几百万不等的价格。对于想要建立自己的智能语音交互系统来说,价格对于一些小型公司来说承受不起,而FreeSitch这种软交换则大大方便了小型公司建立自己的智能语音交互系统。
什么是FreeSwitch?
FreeSitch是一个电话的软交换解决方案,包括一个软电话和软交换机用以提供语音和聊天的产品驱动。FreeSitch可以用作交换机引擎、PBX、多媒体网关以及多媒体服务器等。支持多种通讯技术标准,包括SIP,H.323,IAX2以及GoogleTalk,同时也可以方便的与其他开源的PBX系统进行对接。而且具有很强的伸缩性。旨在为音频、视频、文字或任何其他形式的媒体,提供路由和互连通信协议。
FreeSwitch的典型功能
[if!supportLists]· [endif]在线计费、预付费功能。
[if!supportLists]· [endif]电话路由服务器。
[if!supportLists]· [endif]语音转码服务器。
[if!supportLists]· [endif]支持资源优先权和QoS的服务器。
[if!supportLists]· [endif]多点会议服务器。
[if!supportLists]· [endif]IVR、语音通知服务器。
[if!supportLists]· [endif]VoiceMail服务器。
[if!supportLists]· [endif]PBX应用和软交换。
[if!supportLists]· [endif]应用层网关。
[if!supportLists]· [endif]防火墙/NAT穿越应用。
[if!supportLists]· [endif]私有服务器。
[if!supportLists]· [endif]SIP网间互联网关。
[if!supportLists]· [endif]SBC及安全网关。
FreeSwitch最典型的功能是作为一个服务器,并用电话客户端软件连接到它。虽然FreeSwitch支持众多的通信协议,但其最主要的协议还是SIP,通过SIP中继发起会话协议。
使用FreeSwitch这种软交换的好处在于,你只需要一台服务器就可以随时搭建自己的外呼中心,而且FreeSwitch支持跨平台运行。能够原生运行Windows、Linux、BSD等诸多32/64位平台。
FreeSwitch内部使用线程模型来处理并发请求,每个连接都在单独的线程中进行处理,不同的线程间通过Mutex互斥访问共享资源,并通过消息和异步事件等方式进行通信。FreeSwitch本身是比较稳定的,它是比较优秀的开源软件。另一方面来讲,FreeSwitch又是比较激进的,它的开发分支里会有大量的新特性加入,因此在测试不全面的情况下,很容易出现不稳定的情况。而在用于生产环境的情况下,系统的稳定性是系统能否正常被使用的关键。之前我们在做项目的过程中,就遇到一些FreeSwitch不稳定的情况,导致外呼情况不理想。举一个例子:我们在进行测试外呼的时候,语音通话断断续续,虽然前端服务平台可以很好的接受到数据的传输,但是,真正在与人工进行沟通的时候,会出现各种各样的沟通障碍,为了解决这一个问题,我们花费了几个月的时间,去研究FreeSwitch的结构特性。终于把这个问题解决掉。我们的项目才得以继续推动,最终得以真正落地部署实施。
也有人可能有疑问:”FreeSwitch软交换虽然重要,但是既然是智能语音交互系统人工智能不重要吗?”,重要,当然重要!容我慢慢道来~
AI技术
1.通信原理
先简单解释一下正常打电话这个流程
流程:A→PSTN→B
解释:PSTN是Public
SwitchedTelephoneNetwork,意思为公共交换电话网络,也就是我们的运营商的网络电话,
那我们平时如何给呼叫中心比如打电话是如何打的?:个人A打电话给呼叫中心1***6打电话,拨通后听到录音,您好,拨打人工台,请按0键,按键之后,出现盲音,真正接通之后,客服接通了电话。
流程:A→PSTN→PBX→IVR→客服
解释:PBX也叫交换机、相当于整个呼叫中心的出入口
IVR也叫互动/交互式语音应答,语音导航,也就是相当于咨询业务请按键,这一环节,根据业务去分流到客服。
智能语音交互平台(智能机器人)落实到具体具体业务场景是如何实现的:
如:”个人A要在某一个大型酒店预订位子“,
A拨通后先听到了声音,“您好,我是机器人小岳,需要我帮您订位子是吗?
个人A说,“我不要和机器人说话,找个真人来”。
然后听到录音,“为您转接很贵的真人客服,排队中,请稍后”。
几分钟后接通,真人客服接了电话。
流程:A→PSTN→PBX→IVR(TTS→ASR→NLP→TTS)→ACD→客服
解释:在IVR部分:不再需要提示按键,而是直接问来电方需要办理什么业务,然后识别语音、理解意图后,根据用户的需求,回答后转入对应的业务队列排队。
上边是接通的流程,呼出的流程与之相反,就不在赘述了。
2.现在市场上的AI技术的运用
目前市场上的不管是ASR、TTS、NLP都被阿里百度科大讯飞等巨头公司所占据,这些技术在国内基本已经成为定局。像ASR这类引擎市场上大部分都是用的阿里云和讯飞云的,要不就是百度云。阿里云和讯飞云的识别率高一些,可以达到97%左右、百度的差一些,识别率在80%左右,我们当初在做项目的时候选择ASR做过测试,事实证明阿里云识别率更高同时也可以识别方言。因此,我们在做项目的时候,当仁不让的选择了阿里云的
TTS我们选择的是讯飞的,选择的理由很简单,毕竟科大讯飞是人工智能领域巨头级的公司,质量当然有的保证。
3.AI能力对接
在具体落地中,这个领域的常规参与者通常具备呼叫中心能力或者AI能力其中一种,而主要的对接点也就在于AI能力与呼叫中心设备去对接,而ASR/TTS与呼叫中心设备对接的常规协议主要是mrcp/sip。
媒体资源控制协议(MediaResourceControl
Protocol,MRCP)是一种通讯协议,用于语音服务器向客户端提供各种语音服务(如语音识别和语音合成)。有两个版本的MRCP协议,版本2使用SIP作为控制协议,版本1使用RTSP。
实际对接的时候,会遇到不少技术问题,当我们ASR/TTS引擎做私有云部署,为了避免了内外网穿透时防火墙的诸多设置和语音流的时延。这在我们当时对接的时候也花费了好大一番功夫。
前端服务平台:
其中最重要的就是配置呼叫流程这一块儿了,
这一块儿很容易被忽视,但是这反而是可以出成绩的地方。一般来说一套最佳话术模板,可以以一敌万。心理学基础必须要有,一句话怎么说能让接电话的人最大概率的顺着自己的思路走,达成目的,从而形成特定细分领域机器人话术模板,得到最佳的外呼效果(接通率、通话时长、电销意愿、催收意愿)或者是接通效果(满意度)
其余的基本就是web端的东西了,具体功能点呢,即用户登录、配置呼叫流程,建立呼叫任务、统计呼叫数据、导出呼叫报表,这些功能点基本实现就可以,因为站在产品角度,产品最重要的价值就是可以呼通或者接通用户的电话,并且能够准确的识别用户的意图,并且准确的回答用户。这就是智能语音交互系统的最终目标,也一直是我们的最终目标。
外呼线路厂商:
一般如果是购买系统的话,是给提供线路的,只需交一些线路费用。如果是自己做项目的话,网上、淘宝上一大堆,费用可以谈,也给提供线路对接的接口。
智能语音领域人才内卷严重我们应该具备什么样的能力
但其实回落也是好事,因为本质上是越来越集中的一些人、一些公司去做一些事情。在盲目期,很多公司想怎么干就怎么干,等到整个事情变得足够清楚的时候,才开始分析投入产出比。
第二点是技术点,语音技术从识别开始。识别是整个语音交互或者整个交互里面最开始的点,所以大家都会从识别开始做,公司里面做识别的人也最多。
虽然端到端的技术在往前走,但是识别在工业界的应用发展的还是很缓慢的。其实从识别这个点开始,到后面整个技术链条都在发展,像合成的Tacotron把之前的传统技术都碾压了一遍,包括声纹技术、最近比较火的音频事件检测,这些以前都是用很传统的方法做的,现在你会发现很多不一样的东西,比如歌唱合成,有很多其他的东西和语音融合,跨学科和跨技术的融合。
所以大家不要钻到某一个技术点里面去,要去多看看整个大的应用。
第三个点就是落地的问题,已经包含在第一点里面了。不仅是语音方向,还有图像、NLP,人工智能落地之后,三大学科都在遇到各种各样的问题,那么必然会导致公司招了人,落地的时候发现了问题,那么公司就不再会养这么多人在团队里,这就会带来一些企业的壮大和一些企业的淘汰,或者公司只能做某个方向,什么都想做是不可能的。
杨超老师:现在国内有几类不同的语音公司,一类是像讯飞、思必驰、云知声以及我所在的出门问问,这类公司是专注语音技术的公司,核心的技术就是语音,所以得在语音这个场景中深耕。这类公司落地的场景是语音落地最好的场景,大家也尝试了很多,像车载、医疗、政府政务、金融、电信、智能客服,有很多的领域,大家都在落地,但是竞争依然非常激烈。
还有一类公司是互联网公司,比如BAT、京东、搜狗,包括现在最火的美团、滴滴、头条、快手,这些公司都有自己的语音团队,他们可能不需要依靠语音存活下去,他们的团队主要是在自己公司的产品、业务中落地语音技术,相对而言生存状况会好一些。
其实语音在这类公司反而更好去落地,纯语音的公司想去为互联网公司做一些业务,要是在五年前可能可行,但是现在大家都有自己的团队了,想让他们用其他公司提供的技术是不太可能的。
像这些大型互联网公司的产品,比如手机游戏,大家在玩游戏的时候发一段语音,识别成文字去交流,是很好的一个场景;一些短视频里面音频内容的产出、直播里面声音的监管、客服的质检,还有外卖、打车里面都有很多的场景,以及现在风口最对的在线教育类的一些公司也都有自己的语音团队去做一些落地,在这些公司里,语音还是真正的赋能了。
但是因为语音不是ToB类的,没法直接看到它到底产生了多少经济上的价值。我觉得现在国内大部分的大型互联公司应该都有自己的语音团队。
今年CCF的语音专业组办了一个走进企业的活动,8月走进了19家企业,即使这样还没有覆盖到中国所有的语音公司,可以看出国内语音相关的公司、团队真的很多。
所以语音整个的发展还是很好的,但是就像本谷说的,之前存在一定的泡沫现象,所以接下来我们还会提到内卷的问题,后面我们再提。
张俊博老师:这个问题是挺大的一个问题,应该说时代一直在变化,各企业选择自然语音,情况也确实不太相同。一般来说还是有些共性的,做语音的公司几乎都会有数据积累,他们觉得数据很有价值,但是一直都闲在那用不起来,浪费了很可惜,所以很多企业其实一开始也就是为了这个原因去招一些人在做,包括很多大型的很早就做语音的企业,一开始也是为了充分利用数据。
自己做语音,确实有很多优势,充分利用数据,并且能够定制,贴近自己的业务,所以现在很多公司也确实是选择自己做,这也是正确的。在技术方面,我觉得大家都差不多,Paper都是公开的,尤其现在开源运动这么火热,代码也可以说是公开的,所以各家公司之间应该至少是没有技术上的代差。
但是有实力的公司,一般来说都能够腾出一些资源去做一些技术的探索,比如发一些论文,或者让大家去参加比赛等等,这些事情并不会被业务绑的那么死。
所以说大家如果有实力进有实力的公司,那一定要争取进的机会,要比一些比较小的地方机会要多很多。小米其实是非常好的一个选择,尤其是去年Povey博士也加入了小米,他可以确保我们的技术是领先的。
现在我们团队已经非常强大了,现在算法团队大概有几十人吧,很多大牛,涵盖了语音的所有方向,而且每个方向都是先进水平,近两年我们也参加一些算法比赛,每次参赛都是冠军。雷总刚刚这个在会上宣布了明年的扩招计划,小米可能至少扩招5000以上的工程师,而且语音是重点的方向。
网上有评论算法工程师内卷严重,智能语音领域人才供需现状怎么样?是否有类似状况?付立老师:我对内卷的理解就是没事干了,但是还得继续瞎忙活。算法方面的内卷,网上也有很多的讨论。
算法内卷出现其实也是跟其他问题一样,都算是客观规律吧,我们也不可能天天都在搞创新,每天都能弄出个重大突破,关键还是自己要保持一种学习的心态,不断的提升自我。
其实内卷这个词我也是前两天才听说的,至少上个月我大脑里的语音识别系统还无法识别内卷这个词,不知道线上的ASR模型会得到什么样的结果,这也可以从侧面看出,正是因为语言的变化,还有一些场景的多样性,语音技术其实还有很多实际的问题需要解决,真正到了落地的时候,我们还要花很多精力,投入很多时间去把这个事情做好。
对于我们公司京东数科,我的整体感觉是内卷还不是主要问题。我们公司这几年也在持续招聘优秀的人才加盟。
吴本谷老师:供需怎么样,我觉得其实还是看人,基本上识别的人稍微好一点的早就被定了,大公司的headcount少得可怜。如果你有绝对的优势,或者在语音识别圈子很有名,或者在某个方向上足够深,其实你找工作都很好找。
但是如果你平庸一点,想去大公司很难,因为大公司基本上好的职位都被占了,你得想其他的方向。现在投大公司的人太多了,必然会导致大公司对应聘者的要求越来越高,但是你可以看看其他公司,要求可能没那么高。不一定创业公司跟大公司哪个更好,核心问题还是你在这个地方是不是能得到成长。
我们可以把公司和个人能力分一二三流,如果你是二流水平找三流的公司,那肯定要你,反之,如果你是三流的水平去抢一流的公司,那你就难了。像百度、阿里、小米这些,想进去都很难。所以还得看你自己跟公司的匹配度,这个是最重要的,至于内卷其实不重要。如果你不匹配,不能适应这个公司的节奏,其实你过去也挺痛苦的。找到一个擅长带你的老大,或者你跟你对脾气的老大,或者是对脾气的一个负责人,然后跟你去做整个的职业规划,工作几年之后你能力强了,大公司会抢你的。
杨超老师:就像本谷刚才提到的,同学们觉得特别好的机会比如谷歌、BAT,你肯定要足够优秀才可以去,因为我认识的去到这些公司的很多都是语音专业毕业的博士或者非常优秀的硕士。
而且这些岗位这几年已经有很多同学占了很多位置了,往上升管理的也没有那么多,大家还都在一线做,所以并没有那么多的职位给大家。就从我们公司而言,想招国内一流实验室的学生还是比较难的,我们收到这种简历也比较少,可能大家现在都想去大厂。
所以你可以根据自己目前的水平、状况,去做不同的选择。如果你进入我们公司的语音团队,对你的基础培养并不比那些大厂差,而且我非常注重我们这边同学的职业规划和技能培养。
像苏州这边招聘的TTS的团队基本上之前都不是做语音的,但是一年下来,他们在这块儿都已经做的挺深入的了,我们内部我自己会给他们讲课,所以都是在从头去培养这些人才。
但是如果你去大厂的话,可能你本身就比较优秀,可以做一些事情,但是你的leader不一定会为你花那么多的心思。所以找一个好的团队、一个好的负责人是同学们需要考虑的一个点。
张俊博老师:内卷这个词这两年好像确实挺流行的,按照我的理解,就是竞争激烈的意思。
但是我的体验是在语音方面一直都是供不应求的,竞争好像也不是那么明显,反而人才都是各家争抢的。每次看到出色的简历,第一反应就是赶紧抢,晚了几分钟,或者晚了一段时间,别的公司肯定抢去了。
所以,就有一个矛盾,语音算法薪水高,薪水高必然会吸引很多人进入这个领域,每个行业或者每个方向也都是这样的,优秀的缺乏,不是特别合格的就过剩。
如果仅仅是被这个行业的高薪水吸引,从这个层次看,确实是竞争激烈的。而且这种同学,绝大部分是不会被用人单位认可录用的。
简单来说就是经验丰富的非常抢手,没有经验的过剩。那些科班出身,在学校里面研究的方向就是语音的同学,还没有毕业就已经有了很多语音方面的经验,基本上不用为了找工作发愁,反而都是工作来找他们。
非科班出身的同学如果能在读研期间去比较好的公司实习也是非常有竞争力的。有的同学说“我是本科生”,那我觉得还是不要着急找工作,赶紧去读研究生。
企业技术部门倾向于招募具备哪些特质的人?会考察面试者哪些知识及素质?付立老师:考虑到我是第一个发言的,就不提太多了,只提一点我认为最重要的素质吧。我最看重的是这个人剖析问题的能力,不管是在学业上还是在工作中都能将任务分解,并能准确地定位到关键的问题在哪里。这点我是比较看重的,当然这个能力也需要一些时间和经验来训练。
在面试的时候,尤其是在面试者描述自己的工作的时候要有所侧重,能够对最关键的技术亮点有一个准确的判断,并把自己的想法、对这个项目的贡献展示出来。这一点在后续的工作中也会非常影响这个人的工作效率和沟通效率。
举个简单的例子,有一套代码,如果出现了bug,你至少应该知道这个bug在哪个位置,或者知道是哪个模块上出现的问题,这样的话即使你解决不了,你把这个问题抛出来,我们也可以通过讨论合作的方式一起解决。
所以关键是要把问题分析清楚,要以一种有效的方式跟别人交流。
吴本谷老师:我先说会考查哪些知识点吧,各个公司都差不多。第一点是数据结构与算法,先写写代码,代码写不过可能就没有后面的机会了;第二点一般会考察机器学习或者深度学这块;如果你前两个都没有问题,那么第三点会考察语音类的知识。
基本上是以上3点。具体项目应该会在语音算法里涉及到一些。至于招募具备哪些素质的人,我之前说到的匹配是一个点,还有就是自驱,我会倾向于招一些有自驱力的人,如果你足够自驱,那么接下来所有的事情都挺好解决的。
杨超老师:关于倾向于招募具备哪些特质的人:第一个是良好的逻辑思维能力,这是技术人员必须要有的;第二个是优秀的动手能力,要能够真正的去写代码,把你遇到的问题动手拿下;第三个是主动思考的能力,不能被动的让别人告诉你怎么去做;第四个是独立解决问题的能力;第五个是良好的沟通能力。
如果这几点你都有,那就太优秀了,大部分人都是某些方面比较强,某些比较欠缺,随着你工作,这些能力会慢慢提升。作为一个刚毕业的学生,其实你只要展现出其中比较优秀的一两点,可能就可以得到面试官的青睐。
我面试的时候,一般会考察一下候选人基本的编程能力,然后再考查简历里你写的情况的真实度。
如果你写的东西你掌握得不清晰,说不出来,那我可能要打一个问号。再然后我会想办法去挖掘这个候选人的优点,因为有些东西可能没有写到简历里,比如我会问你觉得自己最优秀的地方是什么,只要你能让我看到一些优点,而且这个优点符合我刚才说的几个能力之一,可能我都会选择聘用。
张俊博老师:感觉每个面试官真的完全不一样,你无法知道你碰到的面试官是什么类型的,所以加强自己的能力吧。
讲一些我自己个人的倾向:我面试的时候肯定不会让你手推EM公式之类的,也不会让你手写实现某个成熟的算法,如果考这个的话,就相当于考谁事先背题,意义不大。
我个人比较看中两个能力,一个是灵活解决问题的能力,一个是有主动学习的欲望。面试的时候,我会针对你简历上写的某个项目,问你为什么用这个方法而不用其他的?有没有想过使用更简单、更直接的方法?有没有实验过自己的想法?这些都需要候选人做出逻辑自洽的解释。
如果在面试过程中,我能从候选人身上学到一些东西,得到一些新的知识,那我会对这个候选人非常赞赏。
现在的开源运动很火热,做项目的时候不可避免会用到一些开源的框架,如果你的项目也用到了,我可能就会问你为什么选这个框架?比其他框架有什么优势?这个框架里面的原理是什么?如果这个框架没有开源的话,让你去自己写,你写的出来吗?如果这个候选人根本不了解他调用的框架,只是表面调用了一下,我觉得这是不合格的。
那么什么样的候选人是比较优秀的呢?比方说你虽然用了这个开源框架,但用的原因仅仅是不想重复造轮子,如果让你自己实现也能实现出来,并且对技术方向的选择有非常明确的思路,这种同学我就会非常愿意录用。
还有一个必要条件就是代码写得好,代码写得好并不是精通某种语,也不是Leetcode题刷得多么厉害,我看重的是能够快速地写代码,能够真正解决实际的问题,也就是解决问题的能力,当然代码规范也是很重要的。返回搜狐,查看更多