共计 10056 个字符,预计需要花费 26 分钟才能阅读完成。
当你和智能语音机器人对话交互时,你是否好奇电话背地的机器人如何“听懂”你的意思,又如何像人一样“答复”你的问题?其中比拟重要的技术就是 MRCP。本文次要介绍了 MRCP 在美团语音交互中的实际和利用,基于美团自研的语音辨认及语音合成能力,咱们晋升了外呼通话的成功率,并且保障了更好的用户体验。
一、背景
智能语音对话作为人工智能畛域最先落地的分支之一,能够实现与人进行自然语言多轮对话,其核心技术在近年来一直地倒退成熟,包含语音辨认、自然语言了解、对话治理等。随同着技术的成熟,越来越多的电话机器人开始走进咱们的生存,这些电话机器人在客户服务、智能销售、告诉触达等场景施展着重要的作用。
当你和智能语音机器人对话交互时,你是否好奇电话背地的机器人如何“听懂”你的意思,又如何像人一样“答复”你的问题?经典的技术实现门路是:机器人首先通过“语音辨认(ASR)”将用户输出语音辨认成文字,再通过“自然语言了解(NLU)”辨认用意,之后依据用意、零碎信号等输出联合对话治理技术失去相应的回复,最初通过“语音合成(TTS)”生成语音播报给电话对端的用户。但要将 ASR、TTS 这些技术利用到电话零碎上,还须要一些额定的工作和技术撑持,其中比拟重要的技术之一也就是本文将要介绍的 MRCP。
备注:本文波及较多的专业名词,咱们特地在文末附上了名词解释,以帮忙大家进行浏览。
1.1 MRCP 是什么
MRCP(Media Resource Control Protocol, MRCP)是一种通信协定,中文定义是:媒体资源控制协议,用于语音服务器向客户端提供各种语音服务(如语音辨认和语音合成)。该协定定义了管制媒体解决资源所必须的申请(Request)、应答(Response)和事件(Event)等音讯,它须要借助 RTP(Real-Time Transport Protocol, 实时传输协定)创立一个媒体会话、借助 SIP(Session Initiation Protocol, 会话初始化协定)和 SDP(Session Description Protocol, 会话形容协定)创立一个管制会话来实现媒体资源服务器端和客户端之间的管制[1]。
在传统的语音利用中,各集成商必须针对不同的 ASR/TTS 厂商提供的 API 接口进行专门的集成开发,不同 ASR/TTS 引擎的接口各不相同,从而导致了集成过程的复杂性和局限性。因而,在实现语音和网络技术集成方面必须须要比拟标准的协定来进行解决。MRCP 协定是目前针对媒体资源和 IP 网络起草的标准协议。有了 MRCP 协定后,ASR/TTS 厂商提供 MRCP 协定的规范对立接口,语音集成开发商们不用再针对特定的 ASR/TTS 进行开发,为各种语音利用开发提供了更加灵便的抉择,并无效地升高业务开发周期和老本[2]。
以语音合成(TTS)为例,图 1 展现了一个 MRCP 客户端连贯媒体资源服务器的流程,在连贯中会创立一个媒体会话和一个管制会话。假如连贯胜利,此时 MRCP 客户端对服务器端发动了一个 SPEAK 语音合成的申请,解决此申请的过程中包含了 3 个音讯指令:SPEAK
指令示意发送语音合成申请,IN-POGRESS
指令示意正在解决中,SPEAK—COMPLETE
指令示意解决实现[3]。
MRCP 协定的音讯格局和 HTTP 音讯格局相似,如下以一次语音合成的 MRCP 音讯为例,展现了 MRCP 音讯的次要形成。
发动语音合成申请:
MRCP/2.0 380 SPEAK 14321
Channel-Identifier: 43b9ae17@speechsynth
Content-Type: application/ssml+xml
Content-Length: 253
您好,有什么能帮忙您?
IN-PROGRESS 响应音讯:
MRCP/2.0 119 14321 200 IN-PROGRESS
#音讯长度是 119 bytes,ID 是 14321,200 示意胜利,正在解决中
Channel-Identifier: 43b9ae17@speechsynth
Speech-Marker: timestamp=857206027059
COMPLETE 响应音讯:
MRCP/2.0 157 SPEAK-COMPLETE 14321 COMPLETE
Channel-Identifier: 43b9ae17@speechsynth
Speech-Marker: timestamp=861500994355
#示意 SPEAK 申请的失常解决完结
Completion-Cause: 000 normal
1.2 MRCP 应用场景
目前,语音行业简直所有的重要厂商都承诺反对 MRCP。MRCP 应用场景丰盛,它反对目前最热门的开源语音通信平台 Asterisk 和 FreeSWITCH,并且提供了丰盛的接口文档,其中呼叫核心就是一个典型的案例。一个简略的呼叫核心如下图 2 所示:
- 当分机拨打外呼用户时,须要从运营商那里取得一条电话通信线路,FreeSWITCH 指定路由通过网关达到运营商线路,通过运营商根底网络、连贯用户通讯设备终端。
- 智能语音服务通过 MRCP 协定与 FreeSWITCH 进行对接,用户接通电话后,智能语音服务从呼叫核心设施中实时获取声音讯号,将语音讯号转化为文本流实时输入,并将要回复的文本话术通过语音合成转化为语音讯号,交由呼叫核心进行语音播报。
在此场景中能够看到,采纳 MRCP 协定,调用方仅须要面向 MRCP 接口撰写程序,而无需思考不同语音引擎产品之间的差别 ,能够真正做到 一次开发、多种环境下利用,任何反对 MRCP 规范的语音引擎都能够被无缝集成和调用。
1.3 美团自研的 ASR/TTS 能力
自 2018 年起至今,美团语音交互部继续投入语音辨认(ASR)和语音合成(TTS)的自主研发,目前已造成平台级的服务能力。美团语音辨认重点针对美团场景进行优化,相比通用场景的识别率更高;参考 2022 年的数据,在电话呼叫场景的测试集中,美团语音辨认的字准率达到 94.6%(很多业界头部厂商的字准率在 89% 左右)。在骑手语音助理、客服核心语音转译、美团 App / 外卖 App 语音助理等典型业务场景中进行了落地和利用。
美团语音合成从美团各场景登程,建设起从端到云一体化,全面笼罩客服、配送、听书等各个方向的合成音色群,并反对不同数据量级的语音定制化能力,做到了通用场景好、特色场景精、定制周期短。其中现有声音的客服场景成果已当先于行业,具备小样本声音克隆、强表现力的配音能力,在性能和成果层面达到了业界一流水准;同时,美团语音合成在美团外卖配送、美团商家端、美团打车、美团客服等外围业务场景落地,反对日均亿级别的调用。
1.4 咱们为什么须要 MRCP
1.4.1 赋能外部业务
随着美团自研的 ASR/TTS 逐渐达到业界一流程度,美团外部越来越多业务接入美团自研的 TTS 和 ASR 能力。特地是 TTS,在利用的业务场景中获得超过外采零碎捷通华声的成果,但在业务对接和优化过程中,也存在一些问题,能够概括为音色机械、音色不对立、合成延时过低等。
这几类问题,次要是在业务降级替换音色过程中,采取了将业务零碎(如外呼零碎)与语音的合成和辨认能力的 HTTP/RPC 接口间接对接的形式,这种形式不仅投入大,须要一一业务零碎、一一流程的对接,也容易因为零碎复杂性、经营疏漏等问题呈现音色不对立等体验问题。因而,按行业通用规范,以 MRCP 将语音合成和辨认与电话零碎间接对接的形式,能够无效地升高业务应用、降级语音能力的老本,平滑地晋升用户体验。
音色不对立示例:对话流程中,一部分固定的话术文本应用的提前合成好的音频文件,另一部分动静的话术文本(如,录音中“请问你是某某店吗”)采纳的实时合成的音频,两局部拼接在一起播放,音色不对立。
延时过高:局部业务对于动静话术文本,特地是自身句子较长的话术,待一整句合成实现后再播放到用户,给用户带来重大的通畅感。
1.4.2 撑持对外商业化
另一方面,越来越多美团内部企业如中通天鸿、微呼科技、马上生产金融等,认可并打算接入美团语音自研的 TTS 和 ASR 能力;预期以规范的 MRCP 协定实现对接,在客户服务、告诉触达、电话提醒语音辨认等场景,晋升其呼叫核心的根底用户体验。
二、设计与实现
2.1 设计指标
如下图 3 所示,美团的小美机器人平台、木星通信平台别离提供不同类型的语音对话机器人能力。以语音合成(TTS)为例,这些机器人平台间接调用 TTS 引擎的服务接口,将合成好的语音文件交由电话软交换平台(如 FreeSWITCH)去播报,如链路 ① 所示。
咱们的指标是将这种调用关系简化,以规范 MRCP 下的语音合成服务对接电话软交换平台,那么上述机器人平台则只用外围关注机器人的对话逻辑,将具体的语音合成逻辑解耦进去,那么链路 ② 所传递的内容即为机器人待播报的话术文本,由电话软交换平台去调用和解决语音合成。
总而言之,指标联合自研流式 TTS 和 ASR 能力,建设 MRCP 协定下规范的语音合成和辨认服务,达到:
- 反对标准协议下的 TTS 和 ASR 能力对接形式,追齐业界支流厂商能力。
- 以横向可扩大、业务解耦的形式,反对和助力美团外部业务,在智能外呼、内呼热线等场景下晋升用户体验;并为美团语音能力的对外商业化摸索,提供更好的撑持。
2.2 总体零碎架构
2.2.1 零碎档次架构
在零碎档次上,围绕联系场景,美团语音交互部正在建设全联系场景智能化的平台化解决方案。具体来说,美团智能对话平台 AICC(AI for Contact Center),基于美团语音交互部当先的语音辨认、自然语言了解、多轮对话、常识图谱等人工智能技术,为美团业务提供智能文字客服(在线客服)、智能语音客服(热线客服)、智能外呼、智能营销、智能质检等残缺解决方案;帮忙业务从传统服务模式向智能服务模式转型,助力美团业务的服务老本优化、客户服务体验晋升,实现客户服务及营销智能化降级。
AICC 的档次架构如下图 4 所示,从整个 AICC 架构来看,TTS 和 ASR 处于语音技术平台,提供语音合成和辨认的 PaaS 级能力;相应地,MRCP-TTS、MRCP-ASR 裁减已有的 HTTP/RPC 接口的能力范畴。
2.2.2 零碎间调用关系
以热线电话机器人的零碎调用过程为例,MRCP 在零碎中所处的地位以及同其余各环节的配合关系如下图 5 所示:
- FreeSWITCH 电话软交换平台,负责和运营商买通通信线路,以具备根底的电话通信能力。
- FreeSWITCH 除了以内置模块(如 mod_java)的形式开发管制接口外,也以 ESL(Event Socket Library)的 Inbound/Outbound 形式凋谢接口,提供事件监听、通话管制等能力。
- ESL Server 将监听到的事件、消息传递给具体的业务逻辑,能够提供通信层所有的事件供监听和解决,籍此实现机器人的语音对话交互能力。
- 将调语音相干的事件和信号处理解耦当前来看,热线、在线机器人的交互逻辑则能够简化、形象为对立的模型和零碎。
- 治理配置台次要负责个别对话机器人所须要的用意、槽位的定义、治理和配置工作型对话流程。
- 配置管理也可对 ASR、TTS 引擎须要的畛域常识进行治理,比方客服畛域的词库、样本数据集的继续标注等。
- 本文所述的 MRCP 在零碎调用中处于此地位:在 FreeSWITCH 收到合成 / 辨认申请后,发动与 MRCP-Server 的交互,MRCP-Server 调用外部实现的 MRCP-TTS Plugin 与 MRCP-ASR Plugin 别离实现相应的合成或辨认后果。
- ASR Engine 和 TTS Engine 指美团语音自研的语音合成和语音辨认引擎,MRCP 通过 HTTP/RPC 接口与之实现通信。
2.3 关键技术组件
要实现一个工业可用的 MRCP Server,有两个关键技术能力:一是 MRCP 协定自身的反对,二是 MRCP Server 的高可用,如多节点的负载平衡。
2.3.1 MRCP 协定实现
对于 MRCP 协定的实现,不仅仅须要反对 MRCP 协定自身,也须要反对一套残缺的协定栈,包含文章结尾局部提到的 SIP、RTP 协定等,这是一个简单且宏大的工作。
参考业界的个别做法,咱们抉择基于开源的 UniMRCP 实现这些工作。UniMRCP 是一个开源的、跨平台的 MRCP 协定实现,由 C/C++ 语言编写,包含了 MRCP 客户端和服务端两个局部,它封装了 SIP、SDP、MRCPv1、MRCPv2、RTP/RTCP 协定栈,并为语音服务集成商提供了统一的 API[4]。
UniMRCP 实现了 MRCP 协定栈的封装,并没有实现 ASR 或 TTS;基于其对底层协定栈的残缺反对,咱们在 UniMRCP 的框架下实现相应的 Recog(ASR)和 Synth(TTS)插件(即 MRCP-TTS Plugin,MRCP-ASR Plugin),并革新适配美团日志框架、监控打点等根底技术组件,从而保障服务的稳定性和可维护性。
2.3.2 MRCP Server 负载平衡
对于实现 MRCP-Server 的负载平衡,咱们选用开源的 Kamailio 来实现。Kamailio 的前身叫 Openser,作为杰出的 SIP proxy,在大并发量应用时经常用于负载平衡媒体服务器,对 Asterisk、FreeSWITCH、MRCP 等实现集群能力[5]。Kamailio 常常与 FreeSWITCH 配合应用,最罕用的场景是 Kamailio 作呼叫负载平衡服务器(个别主备配置),FreeSWITCH 做媒体相干的解决如转码、放音、录音、呼叫排队等。
2.4 MRCP-Server 模块构造
因为 UniMRCP 提供的根底框架曾经实现了服务接口、连贯治理、协定治理,如何加载自定义插件,以及零碎层的日志框架;并且 TTS 引擎与 ASR 引擎作为根底的依赖,已以 HTTP/RPC 协定的形式提供稳固的根底语音服务。因而,开发工作是在 UniMRCP 的根底上进行 TTS/ASR 插件的开发,模块构造如下图 6 所示,次要新增的模块已在图中标灰,其中:
- MRCP-TTS Plugin 和 MRCP-ASR Plugin 两个为外围的模块,以插件的模式加载到 MRCP-Server。
-
MRCP-TTS Plugin 和 MRCP-ASR Plugin 形象出公共的模块:
- 事件 / 接口治理:订阅和注册 MRCP-Server 收到事件和音讯,如信道建设事件、申请音讯等等。
- 会话治理:治理会话的创立、关上、敞开、销毁过程。
- 线程池治理:治理调用 TTS 和 ASR 引擎服务接口所需的工作线程池。
- 配置管理:读取配置文件对各自 Plugin 定义的配置项。
- 语音数据处理:包含语音数据缓冲、时长计算等。
- 服务注册:负责将服务注册到 OCTO,反对 MRCP 服务实例激活、摘除的主动发现。
- 利用日志模块,将插件这一层的日志与美团的日志框架买通,将利用日志接入美团日志核心。
- 监控打点模块,将合成首包延时、状态事件等反对,接入美团 Raptor 监控平台。
- 鉴权模块,应用美团语音开放平台的对立认证服务,实现调用 TTS 和 ASR 引擎前的鉴权过程。
2.5 部署计划
在语音交互场景中,用户能够间断不间断的“谈话”并听到“回应”,是保障本次交互顺利完成的重要根底。因而,高可用是 MRCP-Server 在部署方案设计中外围关注和思考的维度,局部节点故障不影响整体的可用性,并能够疾速摘除、复原、替换故障节点。其中,要害的措施包含:
- 对立的服务入口:应用美团 MGW(美团外部自研的四层负载平衡网关)创立固定的虚构 IP (VIP),提供惟一的服务拜访入口。
- 资源隔离:为了缩小语音合成和语音辨认服务彼此间的影响,咱们将 MRCP Server 拆分成两个服务,即 MRCP-TTS 和 MRCP-ASR,对二者进行隔离部署。
- 跨地区、多机房部署:将 MRCP-TTS 和 MRCP-ASR 服务部署在多个机房,并且跨地区部署,以进步服务稳定性。
- Kamailio 热备:为了避免 Kamailio 呈现故障以影响整个链路,咱们对 Kamailio 也采纳了跨地区、多机房的部署,并且由 MGW 实现对 Kamailio 的多机热备。
- 负载平衡:不言而喻地,须要对 MRCP-TTS 和 MRCP-ASR 进行负载平衡。如何进行负载平衡?起初咱们打算间接应用 MGW 对 MRCP-TTS 进行负载平衡,MGW 是反对到传输层的四层负载平衡,能够路由散发到具体的服务。在咱们场景中所应用的 SIP、MRCP 均属于应用层的协定,数据传输基于 TCP/UDP,实践上四层负载平衡可能满足需要。但理论协定交互过程中,反对七层负载平衡的 Kamailio 可能在 SIP 协定通过的路由点时,在协定头中退出
<Via address>
和<Contact address>
等字段,层层路由可能始终保持与同一台机器进行交互。比方,客户端通过 SIP-INVITE 经由 Kamalio 与 MRCP 服务实现握手后,完结服务、客户端发送 SIP-BYE 音讯时,Kamailio 能够精确路由到过后承受 INVITE 音讯的同一个 MRCP 服务。因而,最终应用 Kamailio 实现对 MRCP-TTS 和 MRCP-ASR 的负载平衡。
对应地,整体部署如图 7 所示,在美团通过这种部署形式为业务提供稳固可用的服务。
三、实际与利用成果
3.1 利用范畴
3.1.1 美团外部业务赋能
目前 MRCP 曾经在美团内外呼热线电话下的多个业务场景中广泛应用:
- 美团外呼业务语音合成:联合小美智能外呼与木星主动外呼,在美团外部的太平洋客服坐席辅助外呼、营销类外呼、告诉触达类外呼等场景,逐渐接入 MRCP 协定下的流式语音合成。目前已接入 MRCP 的外呼机器人日均百万次合成调用,峰值约千路并发。
- 美团内呼业务语音合成:内呼次要是反对美团呼入热线的语音合成,包含:10107888- 美团客服热线、10109777- 外卖客服热线、10105777- 美团商服热线、10101777- 美团骑手热线以及其余长尾业务热线。目前已接入 MRCP 的热线呼入机器人日均近千万次合成调用量,峰值千余路并发。
3.1.2 内部商业化利用
在内部商业化落地过程中,客户个别要求将 MRCP-Server 私有化部署到客户机房,服务的运维工作由客户自行保障;MRCP-Server 自身在 8C16G 容器中测试,可承载约 600 路并发拜访。目前已反对的美团内部客户包含:
- 微呼科技,接入了美团提供的 MRCP 语音合成和辨认服务,在告诉触达等场景应用美团语音提供的流式语音合成能力,在“空号”、“忙音”、“助手秘书提醒”等场景应用美团提供的语音辨认能力。
- 中通天鸿,接入了美团提供的 MRCP 语音合成服务,反对其外呼机器人等业务下的客户抉择美团语音提供的多种场景化音色。
3.2 利用成果
MRCP 将语音合成和辨认能力接口标准化当前,在美团对接了外采的 Genesys 电话零碎(次要反对内呼电话),以及自研的木星通信零碎(次要反对外呼电话),也在反对语音合成和辨认能力商业化的过程中对接了中通天鸿、微呼科技等内部公司的电话零碎。在这些业务对接和反对的过程中,一次开发多处复用,相较于晚期的对接形式,极大进步了业务反对的效率。
此外,对于应用 MRCP-TTS 的业务,在语音合成的性能有显著晋升,具体体现在:首包延时显著升高,且与待合成的话术文本句长无关。此前,应用 HTTP 接口进行整句合成播报,以大概 6~8 字每秒的合成速度、须要整句实现后用户能力听到声音。目前,MRCP-TTS 反对一边合成一边为用户播报语音。
从线上观测来看,内呼机器人的端到端延时升高了约 55%,外呼机器人的端到端延时升高了约 33%,并且做到了音色对立、无变量导致的音色跳跃问题。从业务应用 MRCP-TTS 前后的业务指标比照来看,有较为显著的成果:
- 在美团电话热线的呼入场景,应用 MRCP-TTS 降级原来的语音播报服务后,不满意度降落 0.25pp~3.92pp,均匀电话服务时长缩短 2.19s~5.3s,可见 MRCP-TTS 的利用带来了更好用户体验。
- 在美团的智能外呼场景,联合 MRCP-TTS 提供流式语音合成服务后,对外呼机器人进行替换自研音色「美凡楠」的 A/B 试验,数据表明智能外呼通话成功率无效晋升了 15%。
在业务反对中,咱们联合 MRCP 提供了多种音色,音色更加丰盛实在,尽可能满足各个业务场景。
四、结语
MRCP 协定及相干技术曾经绝对成熟,围绕技术自身而言的迭代和演进绝对较少。将来,除了语音合成(TTS)和语音辨认 (ASR) 外,语音交互部自研的声纹识别(VPR)技术也逐渐成熟;其中,娇喘辨认成果大幅晋升、目前性能已超过头部厂商服务,年龄辨认误差小于 7.5 岁(公开测试集评测)。预计联合 MRCP 在电话智能等场景提供相应技术能力,反对优化和晋升业务流程及成果(如金服生意贷场景,通过声纹识别判断是否为虚伪申贷人,缩小歹意申贷造成的损失)。
从技术使用上看,一方面 MRCP 协定下的 TTS、ASR 为美团智能外呼机器人、智能呼入机器人等多个业务场景提供稳固的服务,并带来可观的业务成果晋升;咱们预期将其接入更多的业务场景,以客户为核心、给每一个用户带来晦涩丝滑的人机对话体验,助力业务优化。另一方面,在标准化的 MRCP 协定接口的承载下,继续推动美团 TTS 和 ASR 能力的商业化。
五、名词解释
名词 | 解释 |
---|---|
RTP | RTP(Real-Time Transport Protocol)实时传输协定,实用于传输实时数据的应用程序,如音频、视频或模仿数据,可通过 RTP 的子协定 RTCP(RTP Control Protocol)保障服务质量。在 MRCP 中负责对媒体资源进行传输。 |
SIP | SIP(Session Initiation Protocol)会话初始化协定,是一个基于文本的应用层控制协议,用于创立、批改和开释一个或多个参与者的会话。 |
SDP | SDP(Session Description Protocol)会话形容协定,定义了会话形容的对立格局,与 SIP 配合应用在 MRCP 中达到创立一个 Media Control Channel 的目标。 |
Asterisk | 用于构建通信应用程序的开放源码框架。能够将一般计算机转换为通信服务器,实现 IP PBX 零碎、VoIP 网关、会议服务器和其余定制解决方案。 |
FreeSWITCH | 一个跨平台的、伸缩性极好的、开源收费的、多协定的电话软交换平台。 |
ESL | Event Socket Library,内部的程序通过 Socket 形式应用 FreeSWITCH 提供的所有的 App 程序和 API 命令,管制 FreeSWITCH。 |
OCTO | 美团根底研发团队开发的分布式服务通信框架及服务治理平台,为业务提供标准化微服务技术计划。 |
MGW | Meituan Gateway 缩写,是美团根底研发团队自研的四层负载平衡网关,并针对美团本人的需要做了额定的性能定制。 |
小美机器人平台 | 美团语音交互部自研的智能外呼机器人平台。 |
木星通信平台 | 美团服体技术部自研的集人工呼叫,智能外呼性能于一体,反对疾速配置接入的全自主研发通信平台。 |
首包延时 | 从 MRCP 接到合成申请,到用户首次听到音频内容之间的工夫距离。 |
端到端延时 | 从用户侧发动合成申请到开始播放之间的延时。 |
六、本文作者
唐锐、森彬、子丰、亚男、王程、国桥、俞涛等,均来自美团平台 / 语音交互部。
七、参考文献
- [1] Media Resource Control Protocol (2022) Wikipedia. Wikimedia Foundation. Available at: https://en.wikipedia.org/wiki/Media_Resource_Control_Protocol.
- [2] 史俊波, 詹舒波 (2010) MRCPv2 协定及其在分布式语音资源解决方案中的利用, 中国科技论文在线 - 科技论文. Available at: http://www.paper.edu.cn/releasepaper/content/201009-322.
- [3] zhu, james (2018) MRCP 概要, CTI. Available at: http://www.ctiforum.com/news/guonei/534456.html.
- [4] UniMRCP Introduction (no date) Home. Available at: https://www.unimrcp.org/.
- [5] Kamailio Introduction (2022) The Kamailio SIP Server Project | The Open Source SIP Server. Available at: https://www.kamailio.org/w/.
浏览更多
| 在美团公众号菜单栏对话框回复【2022 年货】、【2021 年货】、【2020 年货】、【2019 年货】、【2018 年货】、【2017 年货】等关键词,可查看美团技术团队历年技术文章合集。
| 本文系美团技术团队出品,著作权归属美团。欢送出于分享和交换等非商业目标转载或应用本文内容,敬请注明“内容转载自美团技术团队”。本文未经许可,不得进行商业性转载或者应用。任何商用行为,请发送邮件至 tech@meituan.com 申请受权。