CN110765255A - 分布式语音服务***及方法 - Google Patents
分布式语音服务***及方法 Download PDFInfo
- Publication number
- CN110765255A CN110765255A CN201911065974.7A CN201911065974A CN110765255A CN 110765255 A CN110765255 A CN 110765255A CN 201911065974 A CN201911065974 A CN 201911065974A CN 110765255 A CN110765255 A CN 110765255A
- Authority
- CN
- China
- Prior art keywords
- module
- voice
- result
- equipment
- skill assignment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 54
- 238000004891 communication Methods 0.000 claims abstract description 18
- 230000006854 communication Effects 0.000 claims abstract description 18
- 238000001914 filtration Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 230000015572 biosynthetic process Effects 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000003786 synthesis reaction Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 4
- 239000000126 substance Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3343—Query execution using phonetics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech to text systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/34—Adaptation of a single recogniser for parallel processing, e.g. by use of multiple processors or cloud computing
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/225—Feedback of the input speech
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开一种分布式语音服务***,包括:设备端接口模块,配置为建立与设备端的通信连接,以接收来自所述设备端所发布的语音请求,语音请求包括带语音数据的主题;语音识别模块,配置为订阅所述带语音数据的主题,并对相应的语音请求进行识别,以得到并发布语音识别结果;技能分派模块,配置为订阅识别结果主题,并根据所述语音识别结果确定并发布技能分派结果;对话管理模块,配置为订阅技能分派结果,并根据所检测到的技能分派结果确定对话答复内容。本发明采用分布式架构,可以在设备端和云端的总线之间通过websocket长连接做双向通信,基于此协议的设备端和服务端是全双工点对点通信方式,可以由服务端主动推送消息给调用端。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式语音服务***及方法。
背景技术
像国际上的Google、微软、Facebook等互联网巨头,像国内的阿里巴巴、腾讯等互联网大厂,他们对外提供接入服务都是采用的Restful API方式。Restful API是目前比较成熟的一套互联网应用程序的API设计理论,是应用最为广泛的对外提供服务的一种方式,通过简单的http调用就可以使用服务提供者提供的各项服务。
Restful API这种设计结构清晰、符合标准、易于理解、扩展方便,但是RestfulAPI是基于http的,而http是无状态的,是一种同步的请求响应式协议,意味着它无法支持服务端发起的通知。
发明内容
本发明实施例提供一种分布式语音服务***及方法,用于至少解决上述技术问题之一。
第一方面,本发明实施例提供一种分布式语音服务***,包括:连接至总线的设备端接口模块、语音识别模块、技能分派模块和对话管理模块;其中,
所述设备端接口模块,配置为建立与设备端的通信连接,以接收来自所述设备端所发布的语音请求,所述语音请求包括带语音数据的主题;
所述语音识别模块,配置为订阅所述带语音数据的主题,并对相应的语音请求进行识别,以得到并发布语音识别结果;
所述技能分派模块,配置为订阅识别结果主题,并根据所述语音识别结果确定并发布技能分派结果;
所述对话管理模块,配置为订阅技能分派结果,并根据所检测到的技能分派结果确定对话答复内容。
第二方面,本发明实施例提供一种分布式语音服务方法,应用于云端服务器,所述云端服务器包括:连接至总线的设备端接口模块、语音识别模块、技能分派模块和对话管理模块;所述方法包括:
所述设备端接口模块建立与设备端的通信连接,以接收来自所述设备端所发布的语音请求,所述语音请求包括带语音数据的主题;
所述语音识别模块订阅所述带语音数据的主题,并对相应的语音请求进行识别,以得到并发布语音识别结果;
所述技能分派模块订阅识别结果主题,并根据所述语音识别结果确定并发布技能分派结果;
所述对话管理模块订阅技能分派结果,并根据所检测到的技能分派结果确定对话答复内容。
第三方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项分布式语音服务方法。
第四方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项分布式语音服务方法。
第五方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项分布式语音服务方法。
本发明的分布式语音服务***采用分布式架构,包括一个总线和多个功能节点,把设备端也作为一个节点加入整个分布式***,在设备端和云端的总线之间通过websocket长连接做双向通信,基于此协议的设备端和服务端是全双工点对点通信方式,可以由服务端主动推送消息给调用端。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的分布式语音服务***的一实施例的原理框图;
图2为采用本发明的分布式语音服务***的云端服务器的一实施例的架构示意图;
图3为本发明的分布式语音服务方法的一实施例的流程图;
图4为本发明的电子设备的一实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“模块”、“装置”、“***”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地***、分布式***中另一元件交互的,和/或在因特网的网络通过信号与其它***交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
如图1所示,本发明的实施例提供一种分布式语音服务***100,包括:连接至总线的设备端接口模块110、语音识别模块120、技能分派模块130和对话管理模块140;其中,
所述设备端接口模块110,配置为建立与设备端的通信连接,以接收来自所述设备端所发布的语音请求,所述语音请求包括带语音数据的主题;
所述语音识别模块120,配置为订阅所述带语音数据的主题,并对相应的语音请求进行识别,以得到并发布语音识别结果;
所述技能分派模块130,配置为订阅识别结果主题,并根据所述语音识别结果确定并发布技能分派结果;
所述对话管理模块140,配置为订阅技能分派结果,并根据所检测到的技能分派结果确定对话答复内容。
示例性地,分布式语音服务***与设备端的通信连接为websoket长连接。本***采用websoket长连接,基于此协议的设备端和服务端是全双工点对点通信方式,可以由服务端主动推送消息给调用端。
本发明的分布式语音服务***可以是云端语音***,其是一个分布式架构,包括一个总线和多个功能节点。本发明的创新点之一在于把设备端也作为一个节点加入整个分布式***。具体做法是设备端和云端的总线之间通过websocket长连接做双向通信,相当于在设备端和云端之间架起了一座“桥”。这样,在设备端能通过订阅的方式获取云端语音对话的所有信息,当设备在对话过程中,而网络环境突然断开时,因为对话过程的重要信息都被设备端获取过,所以能在设备端的本地对话控制模块快速恢复对话,从而使得网络断开事件对用户几乎无感知,提升用户体验,同时也提高云+端语音对话***的鲁棒性。
示例性地,对话过程中的重要信息包括:识别结果、语义解析结果、对话状态追踪历史信息、内容服务查询结果、对话决策历史信息等;设备端的对话管理节点在接收到这些主题内容后,会将这些信息转化成本地对话引擎所需要的数据结构传给本地对话引擎做临时存储,当对话进行中遇到诸如网络断开等云端服务不可用的情形时,***会自动切换到使用本地对话引擎接管当前对话处理。
本发明的分布是语音服务***可以应用于云端服务器,该云端服务器的接口服务内部采用总线加节点的内部架构。这种架构封装了所有的实现细节,云端服务器内部使用BUS总线协议进行通信。接口服务对外提供http方式的访问,也支持基于websocket方式调用。如果客户端集成SDK后,可以基于BUS总线协议与云端服务器进行通信。基于BUS总线协议的通信,支持两种通信方式,RPC和MESSAGE,RPC用于控制流,MESSAGE用于数据流。这种架构非常灵活,而且***的扩展性更强。
在一些实施例中,本发明的分布式语音服务***还包括:所述应用数据查询模块,配置为根据响应于所述对话管理模块的RPC调用,对第三方服务发起应用数据查询,并将查询结果反馈至所述对话管理模块;
根据所检测到的技能分派结果确定对话答复内容包括:
所述对话管理模块发起对所述应用数据查询模块的RPC调用,并根据所述应用数据查询模块返回的查询结果确定对话答复内容。
在一些实施例中,本发明的分布式语音服务***还包括:协议转换模块,配置为将外部协议转换为所述总线所支持的协议。
本实施例的***对外支持三种协议,分别是bus协议,简单websocket协议,http协议。bus协议用于当设备端是android或者ios***,可以跑SDK;简单websocket协议用于当设备端是轻量级嵌入式***,http协议用于非语音请求,如文本请求,事件请求等。trans节点实现协议适配和转换,将不同的对外协议转换成同一种内部协议。
在一些实施例中,本发明的分布式语音服务***还包括:鉴权模块,配置为在所述设备端接口模块建立与设备端的通信连接时,执行以下步骤:
向所述设备端发送加密后的profile文件,所述profile文件中包括产品身份信息、设备名称和设备秘钥;
接收所述设备端至少根据所述产品身份信息,设备名称、设备秘钥、设备时间戳和随机数所生成的第一签名;
采用相对于所述设备端的对称签名方式得到第二签名;
当所述第一签名与所述第二签名一致时,确定接收来自所述设备端的语音请求。
本实施例的***通过鉴权模块实现了对设备端的身份认证,做到了访问限制,从而能够避免恶意的流量冲击***导致***因承受不住这些大量的流量造成崩塌的问题。
在一些实施例中,本发明的分布式语音服务***还包括:问答对模块,配置为当所述技能分派模块根据所述语音识别结果无法确定技能分派结果时,对所述语音请求做开放域问答解析,以获得对话答复内容。
本实施例的***通过问答对模块的设置,实现对***的开放域问答节点配置,当技能分派没有选出技能时(通常原因是所有语义解析结果置信度较低),对当前请求做开放域问答解析,保持对设备端的正常答复。
在一些实施例中,本发明的分布式语音服务***还包括:敏感词过滤模块,配置为对所述对话答复内容进行敏感词过滤。
在一些实施例中,本发明的分布式语音服务***还包括:语音合成模块,配置为根据所述对话答复内容进行语音合成,以得到相应的语音答复文件。
如图2所示,为采用本发明的分布式语音服务***的云端服务器的一实施例的架构示意图,该云端服务器包括:
trans node:协议转换节点。本***对外支持三种协议,分别是bus协议,简单websocket协议,http协议。bus协议用于当设备端是android或者ios***,可以跑SDK;简单websocket协议用于当设备端是轻量级嵌入式***,http协议用于非语音请求,如文本请求,事件请求等。trans节点实现协议适配和转换,将不同的对外协议转换成同一种内部协议。
auth node:鉴权节点,对请求做鉴权,拒绝鉴权不通过的请求。示例性地,云端向设备端颁发加密后的profile文件;设备端SDK解密profile文件,读取其中的productId,deviceName,deviceSecret字段;设备端和云端建立bridge连接时,使用deviceSecret字段和productId,deviceName,timestamp(设备端时间戳),nonce(随机数)等字段计算签名;云端做对称签名计算,比较两个签名是否一致,如果不一致则判断签权不通过,拒绝该请求。
asr node:识别节点,订阅携带语音数据的主题,实现语音转文本,然后在识别结果主题发布识别结果。
skill dispatch node:实现技能分派的节点,订阅识别结果,并行在多个技能语义模型上做语义解析,并且根据语义结果置信度排序,最终选出一个置信度最高的命中技能,然后发布技能分派的结果。
dm node:实现对话管理和决策的节点,订阅技能分派的结果,结合对话上下文做对话决策,如果对话决策依赖webhook查询结果,则发起对webhook节点的RPC调用,获取诸如苏州的今天的天气情况的查询结果,然后再发布对话结果。
webhook node:内容服务查询节点,实现技能内必要的应用数据查询。如当***分析当前请求意图是天气查询,并且语义槽有城市和日期,使用这个组合条件做应用数据查询,得到天气结果。
qa node:开放域问答节点,实现当技能分派没有选出技能时(通常原因是所有语义解析结果置信度较低),对当前请求做开放域问答解析。
filter node:敏感词过滤节点,对***回复的nlg做敏感词过滤。过滤掉政治敏感,少儿不宜的文字。
processor node:中控节点(以上所列个节点可以是中控节点的虚拟实现程序模块,或者是各自独立的实现各节点工作流程的程序模块),负责在请求的生命周期内,控制数据流的流转。如确保一条语音请求是经过识别,技能分派,对话决策,应用数据查询,开放域问答,语音合成这些阶段。在本***中,processor节点相当于云端的大脑,其他各个节点相当于专业的执行者,各司其职,相互协作,共同完成语音请求。
示例性地,基于图2所示的采用本发明的分布式语音服务***的云端服务器与设备端进行交互的过程可以举例说明如下:
设备端(例如,智能音箱)和云端服务器建立bridge连接,bus总线协议将建立连接的消息转给auth节点处理,auth节点对连接参数做鉴权,判断连接的合法性,若不合法则拒绝该连接。
例1:
User:苏州今天的天气(语音)
Sys:
1.asr节点因为订阅了asr.data主题,所以会收到user上传的语音数据,在这个节点将语音转文本,并发布识别结果({“rec”:“苏州今天的天气”});
2.skill dispatch节点因为订阅了asr.result主题,所以会收到识别结果,在这个节点做所有技能的语义解析,并对语义结果做融合,发布技能分派结果({“intent”:“天气查询”,“城市”:“苏州”,“日期”:“20191028”});
3.dm节点因为订阅了skill.dispatch.result主题,所以会收到技能分派结果,在这个节点判断当前对话需要做应用数据查询,对webhook节点发起rpc调用/webhook/start;
4.webhook节点收到rpc请求,对第三方服务发起天气查询,并返回天气查询的结果;
5.dm节点收到rpc调用返回后,做对话决策,生成nlg,发布对话结果({“nlg”:“今天苏州天气晴,气温是18度到23度,空气质量优,适合户外运动”});
6.filter节点因为订阅了dm.result主题,所以会收到对话结果,在这个节点对nlg内容做敏感词过滤,将政治敏感,或者少儿不宜的词汇检测出来,如果检测到敏感词,***修改对外回复的话术({“nlg”:“对不起,这个问题我还没有学会哦”});
7.tts节点因为订阅了filter.result主题,所以会收到敏感词过滤之后的对话结果,在这个节点将文本转语音,并且对外回复合成音播放链接({“speakUrl”:“https://tts.duiopen.com/play/tts/uuid”})。
示例性地,使用qa节点的情况如下,上述第5步如果因为查询第三方服务出错等原因没有拿到应用数据,***会调用qa节点对“苏州今天的天气”这个问题做开放域问答查询,然后接上第6步走剩余流程。
如图3所示,本发明的实施例还提供一种分布式语音服务方法,应用于云端服务器,所述云端服务器包括:连接至总线的设备端接口模块、语音识别模块、技能分派模块和对话管理模块;所述方法包括:
S10、所述设备端接口模块建立与设备端的通信连接,以接收来自所述设备端所发布的语音请求,所述语音请求包括带语音数据的主题;
S20、所述语音识别模块订阅所述带语音数据的主题,并对相应的语音请求进行识别,以得到并发布语音识别结果;
S30、所述技能分派模块订阅识别结果主题,并根据所述语音识别结果确定并发布技能分派结果;
S40、所述对话管理模块订阅技能分派结果,并根据所检测到的技能分派结果确定对话答复内容。
本发明的分布式语音服务方法可以是云端语音***,其是一个分布式架构,包括一个总线和多个功能节点。本发明的创新点之一在于把设备端也作为一个节点加入整个分布式***。具体做法是设备端和云端的总线之间通过websocket长连接做双向通信,相当于在设备端和云端之间架起了一座“桥”。这样,在设备端能通过订阅的方式获取云端语音对话的所有信息,当设备在对话过程中,而网络环境突然断开时,因为对话过程的重要信息都被设备端获取过,所以能在设备端的本地对话控制模块快速恢复对话,从而使得网络断开事件对用户几乎无感知,提升用户体验,同时也提高云+端语音对话***的鲁棒性。
本发明的分布是语音服务方法可以应用于云端服务器,该云端服务器的接口服务内部采用总线加节点的内部架构。这种架构封装了所有的实现细节,云端服务器内部使用BUS总线协议进行通信。接口服务对外提供http方式的访问,也支持基于websocket方式调用。如果客户端集成SDK后,可以基于BUS总线协议与云端服务器进行通信。基于BUS总线协议的通信,支持两种通信方式,RPC和MESSAGE,RPC用于控制流,MESSAGE用于数据流,这种架构非常灵活,而且***的扩展性更强。
在一些实施例中,云端服务器还包括:所述应用数据查询模块,配置为根据响应于所述对话管理模块的RPC调用,对第三方服务发起应用数据查询,并将查询结果反馈至所述对话管理模块;
根据所检测到的技能分派结果确定对话答复内容包括:
所述对话管理模块发起对所述应用数据查询模块的RPC调用,并根据所述应用数据查询模块返回的查询结果确定对话答复内容。
在一些实施例中,云端服务器还包括:协议转换模块,配置为将外部协议转换为所述总线所支持的协议。
在一些实施例中,云端服务器还包括:鉴权模块,配置为在所述设备端接口模块建立与设备端的通信连接时,执行以下步骤:
向所述设备端发送加密后的profile文件,所述profile文件中包括产品身份信息、设备名称和设备秘钥;
接收所述设备端至少根据所述产品身份信息,设备名称、设备秘钥、设备时间戳和随机数所生成的第一签名;
采用相对于所述设备端的对称签名方式得到第二签名;
当所述第一签名与所述第二签名一致时,确定接收来自所述设备端的语音请求。
在一些实施例中,云端服务器还包括:问答对模块,配置为当所述技能分派模块根据所述语音识别结果无法确定技能分派结果时,对所述语音请求做开放域问答解析,以获得对话答复内容。
在一些实施例中,云端服务器还包括:敏感词过滤模块,配置为对所述对话答复内容进行敏感词过滤。
在一些实施例中,云端服务器还包括:语音合成模块,配置为根据所述对话答复内容进行语音合成,以得到相应的语音答复文件。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
上述本发明实施例的分布式语音服务方法可由本发明实施例的分布式语音服务***执行,并相应的达到上述本发明实施例的实现分布式语音服务***所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项分布式语音服务方法。
在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项分布式语音服务方法。
在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行分布式语音服务方法。
在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现分布式语音服务方法。
图4是本申请另一实施例提供的执行分布式语音服务方法的电子设备的硬件结构示意图,如图4所示,该设备包括:
一个或多个处理器410以及存储器420,图4中以一个处理器410为例。
执行分布式语音服务方法的设备还可以包括:输入装置430和输出装置440。
处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器420作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的分布式语音服务方法对应的程序指令/模块。处理器410通过运行存储在存储器420中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例分布式语音服务方法。
存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据分布式语音服务装置的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至分布式语音服务装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可接收输入的数字或字符信息,以及产生与分布式语音服务装置的用户设置以及功能控制有关的信号。输出装置440可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器420中,当被所述一个或者多个处理器410执行时,执行上述任意方法实施例中的分布式语音服务方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、***总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。或者其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种分布式语音服务***,包括:连接至总线的设备端接口模块、语音识别模块、技能分派模块和对话管理模块;其中,
所述设备端接口模块,配置为建立与设备端的通信连接,以接收来自所述设备端所发布的语音请求,所述语音请求包括带语音数据的主题;
所述语音识别模块,配置为订阅所述带语音数据的主题,并对相应的语音请求进行识别,以得到并发布语音识别结果;
所述技能分派模块,配置为订阅识别结果主题,并根据所述语音识别结果确定并发布技能分派结果;
所述对话管理模块,配置为订阅技能分派结果,并根据所检测到的技能分派结果确定对话答复内容。
2.根据权利要求1所述的***,其中,还包括:
所述应用数据查询模块,配置为根据响应于所述对话管理模块的RPC调用,对第三方服务发起应用数据查询,并将查询结果反馈至所述对话管理模块;
根据所检测到的技能分派结果确定对话答复内容包括:
所述对话管理模块发起对所述应用数据查询模块的RPC调用,并根据所述应用数据查询模块返回的查询结果确定对话答复内容。
3.根据权利要求1所述的***,其中,还包括:
协议转换模块,配置为将外部协议转换为所述总线所支持的协议。
4.根据权利要求1所述的***,其中,还包括:鉴权模块,配置为在所述设备端接口模块建立与设备端的通信连接时,执行以下步骤:
向所述设备端发送加密后的profile文件,所述profile文件中包括产品身份信息、设备名称和设备秘钥;
接收所述设备端至少根据所述产品身份信息,设备名称、设备秘钥、设备时间戳和随机数所生成的第一签名;
采用相对于所述设备端的对称签名方式得到第二签名;
当所述第一签名与所述第二签名一致时,确定接收来自所述设备端的语音请求。
5.根据权利要求1所述的***,其中,还包括:
问答对模块,配置为当所述技能分派模块根据所述语音识别结果无法确定技能分派结果时,对所述语音请求做开放域问答解析,以获得对话答复内容。
6.根据权利要求1所述的***,其中,还包括:
敏感词过滤模块,配置为对所述对话答复内容进行敏感词过滤。
7.根据权利要求1所述的***,其中,还包括:
语音合成模块,配置为根据所述对话答复内容进行语音合成,以得到相应的语音答复文件。
8.一种分布式语音服务方法,应用于云端服务器,所述云端服务器包括:连接至总线的设备端接口模块、语音识别模块、技能分派模块和对话管理模块;所述方法包括:
所述设备端接口模块建立与设备端的通信连接,以接收来自所述设备端所发布的语音请求,所述语音请求包括带语音数据的主题;
所述语音识别模块订阅所述带语音数据的主题,并对相应的语音请求进行识别,以得到并发布语音识别结果;
所述技能分派模块订阅识别结果主题,并根据所述语音识别结果确定并发布技能分派结果;
所述对话管理模块订阅技能分派结果,并根据所检测到的技能分派结果确定对话答复内容。
9.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求8所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求8所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911065974.7A CN110765255A (zh) | 2019-11-04 | 2019-11-04 | 分布式语音服务***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911065974.7A CN110765255A (zh) | 2019-11-04 | 2019-11-04 | 分布式语音服务***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110765255A true CN110765255A (zh) | 2020-02-07 |
Family
ID=69335565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911065974.7A Pending CN110765255A (zh) | 2019-11-04 | 2019-11-04 | 分布式语音服务***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110765255A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198248A1 (en) * | 2006-02-17 | 2007-08-23 | Murata Kikai Kabushiki Kaisha | Voice recognition apparatus, voice recognition method, and voice recognition program |
US20140164476A1 (en) * | 2012-12-06 | 2014-06-12 | At&T Intellectual Property I, Lp | Apparatus and method for providing a virtual assistant |
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅***及其工作方法 |
CN107070769A (zh) * | 2016-11-29 | 2017-08-18 | 努比亚技术有限公司 | 一种获取服务端推送消息的装置及方法 |
CN107756395A (zh) * | 2016-08-19 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 智能机器人的控制***、方法和装置 |
CN109710503A (zh) * | 2018-12-28 | 2019-05-03 | 浙江百应科技有限公司 | 一种智能语音对话数据运营分析的方法 |
CN109716325A (zh) * | 2016-09-13 | 2019-05-03 | 微软技术许可有限责任公司 | 计算机化的自然语言查询意图分派 |
CN110032451A (zh) * | 2019-04-18 | 2019-07-19 | 成都四方伟业软件股份有限公司 | 分布式多语言消息实现方法、装置及服务器 |
-
2019
- 2019-11-04 CN CN201911065974.7A patent/CN110765255A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198248A1 (en) * | 2006-02-17 | 2007-08-23 | Murata Kikai Kabushiki Kaisha | Voice recognition apparatus, voice recognition method, and voice recognition program |
US20140164476A1 (en) * | 2012-12-06 | 2014-06-12 | At&T Intellectual Property I, Lp | Apparatus and method for providing a virtual assistant |
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅***及其工作方法 |
CN107756395A (zh) * | 2016-08-19 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 智能机器人的控制***、方法和装置 |
CN109716325A (zh) * | 2016-09-13 | 2019-05-03 | 微软技术许可有限责任公司 | 计算机化的自然语言查询意图分派 |
CN107070769A (zh) * | 2016-11-29 | 2017-08-18 | 努比亚技术有限公司 | 一种获取服务端推送消息的装置及方法 |
CN109710503A (zh) * | 2018-12-28 | 2019-05-03 | 浙江百应科技有限公司 | 一种智能语音对话数据运营分析的方法 |
CN110032451A (zh) * | 2019-04-18 | 2019-07-19 | 成都四方伟业软件股份有限公司 | 分布式多语言消息实现方法、装置及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11489961B2 (en) | System and method for determining and communicating presence information | |
US10423958B2 (en) | Method, apparatus and system for voice verification | |
US20220270606A1 (en) | Voice-based parameter assignment for voice-capturing devices | |
KR102148046B1 (ko) | 준비되지 않은 단말의 호출 기법 | |
US10417061B2 (en) | Operating method of routing device, routing device, and terminal device | |
JP7257526B2 (ja) | I/oデバイスのセットを使用した通信サービスの提供 | |
US20170163478A1 (en) | Method,electronic device and system for updating client configuration in key-value pair database | |
WO2017172651A1 (en) | Selecting an autonomous software agent | |
CN105100071B (zh) | 一种登录方法、装置及*** | |
US10846658B2 (en) | Establishing a communication event | |
WO2013127163A1 (zh) | 呼叫终端入会的方法和装置 | |
US10375753B2 (en) | Method and device for associating user with group | |
CA3064797A1 (en) | Identity verification method and apparatus, and electronic device | |
US20150149629A1 (en) | User online state querying method and apparatus | |
US9143536B2 (en) | Determining a location address for shared data | |
US20140087700A1 (en) | Sending user device status information | |
CN110493022B (zh) | 一种三方会话的建立方法、装置及*** | |
CN106487637B (zh) | 一种应用消息的处理***、方法及应用设备 | |
KR20150053422A (ko) | 인증 전화번호 관리 서버 및 인증 전화번호 관리 서버에 의한 인증 전화번호 관리 방법, 및 전자거래 서버 및 전자거래 서버에 의한 전자거래 인증 방법 | |
WO2023088011A1 (zh) | 交互信息的传输方法、装置、存储介质及电子装置 | |
JP2010273015A (ja) | WebシステムとVoIPシステムとを連携する連携方法、VoIPシステム、および連携プログラム | |
CN110765255A (zh) | 分布式语音服务***及方法 | |
CN114675876B (zh) | 一种业务处理方法、装置、电子设备及存储介质 | |
CN110086945A (zh) | 通信方法、服务器、智能设备、服务器、存储介质 | |
CN108809915B (zh) | 一种会话管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Applicant after: Sipic Technology Co.,Ltd. Address before: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Applicant before: AI SPEECH Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200207 |
|
RJ01 | Rejection of invention patent application after publication |