用于上位机与下位机的语音交互方法和装置与流程
本发明属于语音交互技术领域,尤其涉及用于上位机与下位机的语音交互方法和装置。
背景技术:
目前很多公司都陆续推出了语音唤醒、语音识别、自然语言理解、对话管理、语音合成等单项技术,提供语音交互的基础能力,供用户开发语音产品,因为这些语音技术交互能力较为简单,需要客户实现语音交互逻辑,所以思必驰在此基础上推出了全链路语音对话系统,减少开发者的工作量。
语音唤醒在学术上被称为keywordspotting(简称kws),就是在连续语流中实时检测出说话人特定片段。其中检测的“实时性”是一个关键点,语音唤醒的目的就是将设备从休眠状态激活至运行状态,所以唤醒词说出之后,能立刻被检测出来,用户的体验才会更好。
语音识别主要是将人所发出的语音内容转换为可供计算机读入的文本信息,其具有两种工作模式:识别模式和命令模式。语音识别程序的实现也会根据两种模式的不同而采用不同类型的程序。识别模式的工作原理是:引擎系统在后台直接给出一个词库和识别模板库,任何系统都不需要再进一步对识别语法进行改动,只需要根据识别引擎提供的主程序源代码进行改写就可以了。命令模式相对来说实现起来比较困难,词典必须要由程序员自己编写,然后再进行编程,最后还要根据语音词典进行处理和更正。识别模式与命令模式最大的不同就是,程序员要根据词典内容进行代码的核对与修改。
自然语言处理,是实现人机间自然语言通信的重要手段,其包括两个部分,自然语言理解(naturallanguageunderstanding,nlu)和自然语言生成(naturallanguagegeneration,nlg),即能使计算机既能理解自然语言文本的意义,也能以自然语言文本来表达给定的意图、思想等。自然语言理解是建立一种计算机模型,自然语言理解以语言学为基础,融合逻辑学、心理学和计算机科学等学科,试图解决以下问题:语言究竟是怎样组织起来传输信息的?人又是怎样从一连串的语言符号中获取信息的?换种表达就是,通过语法、语义、语用的分析,获取自然语言的语义表示,理解自然语言文本所表达的意图。而自然语言生成是人工智能和计算语言学的分支,相应的语言生成系统是基于语言信息处理的计算机模型,其工作过程与自然语言分析相反,是从抽象的概念层次开始,通过选择并执行一定的语义和语法规则来生成文本。
语音合成,又称文语转换技术,能将任意文字信息实时转化为标准流畅的语音朗读出来,相当于给机器装上了人工嘴巴。它涉及声学、语言学、数字信号处理、计算机科学等多个学科技术,是中文信息处理领域的一项前沿技术,解决的主要问题就是如何将文字信息转化为可听的声音信息,也即让机器像人一样开口说话。
发明人在实现本申请的过程中,发现上述技术至少存在以下缺陷:
因为语音唤醒、语音识别、自然语言理解、语音合成技术都是单一的技术,只能提供某一功能需求,所以开发者必须将各种技术嵌入到项目中才能实现人机交互功能,开发应用程序。
然而实现这种语音交互方式,需要开发者进行繁重的开发任务,从输入音频数据到给出识别结果,然后再进行自然语言处理,给出语义结果,直至对话结果进行合成,才完成一轮人机交互。由此可看出,开发者须要承担大量的工作,不仅导致工作效率低下,而且消耗精力较大,从而本公司基于dui平台推出了一种集语音识别、语义理解,以及语音合成技术于一身的全链路对话管理系统,开发者仅仅需要输入音频数据即可得到合成音频数据。由此,不仅减少开发者的工作量,而且明显提高开发效率。
但是由于这种使用方式必须和客户的程序绑定在一起,对客户设备已有的程序有一定的影响。因为此设计方式存在灵活性差的问题,所以明显不能满足对设备稳定性较高的客户需求,其次也限制了客户的开发语音。
技术实现要素:
本发明实施例提供一种用于上位机与下位机的语音交互方法及装置,用于至少解决上述技术问题之一。
第一方面,本发明实施例提供一种用于上位机与下位机的语音交互方法,包括:所述下位机响应于用户的输入音频,判断是否处于唤醒状态;若未处于唤醒状态,将所述输入音频发送至唤醒内核,其中,所述唤醒内核基于所述输入音频输出唤醒结果;接收所述唤醒结果,将所述唤醒结果存入数据缓存队列;经由所述websocket服务器将所述唤醒结果发送给所述上位机中的websocket客户端。
第二方面,本发明实施例提供一种用于上位机与下位机的语音交互装置,包括:判断模块,配置为所述下位机响应于用户的输入音频,判断是否处于唤醒状态;唤醒模块,配置为若未处于唤醒状态,将所述输入音频发送至唤醒内核,其中,所述唤醒内核基于所述输入音频输出唤醒结果;接收缓存模块,配置为接收所述唤醒结果,将所述唤醒结果存入数据缓存队列;发送模块,配置为经由所述websocket服务器将所述唤醒结果发送给所述上位机中的websocket客户端。
第三方面,提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行第一方面所述的用于上位机与下位机的语音交互方法的步骤。
第四方面,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述方法的步骤。
本申请实施例提供的方法通过采用上位机与下位机的下线全链路语音交互方法,集成了多种语音交互技术,语音交互运行在下位机,结果传给上位机显示,由此可以保证上位机设备已有的程序的稳定性,并通过websocket服务与下位机通信,快捷、方便、灵活性较强。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种用于上位机与下位机的语音交互方法的流程图;
图2为本发明一实施例提供的另一种用于上位机与下位机的语音交互方法的流程图;
图3为本发明一实施例提供的又一种用于上位机与下位机的语音交互方法的流程图;
图4为本发明一实施例提供的又一种用于上位机与下位机的语音交互方法的流程图;
图5是本发明实施例的用于上位机与下位机的语音交互方法方案一具体实施例的上位机与下位机的语音交互过程示意图;
图6时本发明一实施例提供的一种用于上位机与下位机的语音交互装置的框图;
图7是本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,其示出了本发明的一种用于上位机与下位机的语音交互方法的一实施例的流程图,其中,所述上位机和所述下位机通过websocket建立连接,所述下位机中包括websocket服务器,所述上位机中包括websocket客户端。
其中,websocket是一种在单个tcp连接上进行全双工通信的协议。websocket通信协议于2011年被ietf定为标准rfc6455,并由rfc7936补充规范。websocketapi也被w3c定为标准。
websocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在websocketapi中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出http请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而http请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。
而比较新的技术去做轮询的效果是comet。这种技术虽然可以双向通信,但依然需要反复发出请求。而且在comet中,普遍采用的长链接,也会消耗服务器资源。
在这种情况下,html5定义了websocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。
较少的控制开销。在连接创建后,服务器和客户端之间交换数据时,用于协议控制的数据包头部相对较小。在不包含扩展的情况下,对于服务器到客户端的内容,此头部大小只有2至10字节(和数据包长度有关);对于客户端到服务器的内容,此头部还需要加上额外的4字节的掩码。相对于http请求每次都要携带完整的头部,此项开销显著减少了。
更强的实时性。由于协议是全双工的,所以服务器可以随时主动给客户端下发数据。相对于http请求需要等待客户端发起请求服务端才能响应,延迟明显更少;即使是和comet等类似的长轮询比较,其也能在短时间内更多次地传递数据。
保持连接状态。与http不同的是,websocket需要先创建连接,这就使得其成为一种有状态的协议,之后通信时可以省略部分状态信息。而http请求可能需要在每个请求都携带状态信息(如身份认证等)。
更好的二进制支持。websocket定义了二进制帧,相对http,可以更轻松地处理二进制内容。
可以支持扩展。websocket定义了扩展,用户可以扩展协议、实现部分自定义的子协议。如部分浏览器支持压缩等。
更好的压缩效果。相对于http压缩,websocket在适当的扩展支持下,可以沿用之前内容的上下文,在传递类似的数据时,可以显著地提高压缩率。
其中,因为上位机只用于显示语音交互结果,对设备要求低,带屏设备均可以作为上位机,而下位机需要运行所有的算法,所以对设备的要求比较高,内存(4g以上)、多核,由于plc或者单片性能较低,不能满足要求,推荐市面上的性能较高的android系统rk3399盒子或者ubuntu系统盒子作为下位机,,从而控制相关设备元件和驱动装置。
例如,上位机可以是需要提供语音服务的用户终端,下位机可以是android系统rk3399盒子或者ubuntu系统盒子。
如图1所示,在步骤101中,响应于用户的输入音频,判断是否处于唤醒状态;
在步骤102中,若未处于唤醒状态,将所述输入音频发送至唤醒内核,其中,所述唤醒内核基于所述输入音频输出唤醒结果;
在步骤103中,接收所述唤醒结果,将所述唤醒结果存入数据缓存队列;
在步骤104中,经由所述websocket服务器将所述唤醒结果发送给所述上位机中的websocket客户端。
在本实施例中,对于步骤101,上位机与下位机的语音交互装置当接收到用户的输入音频之后,就可以判断上位机是不是处于唤醒状态,即上位机还是沉睡或者休眠的状态,还没有被唤醒,处于唤醒状态的意思就是设备早就已经被唤醒了,已经是和用户处于语音交互的状态了,其中,尽管所有算法都运行在下位机,但是若有唤醒词音频送入下位机的唤醒算法中,即被唤醒,立即将唤醒状态发给上位机,并在下位机保存唤醒状态,此时上位机和下位机的唤醒状态一致,因此可判断上位机是否处于唤醒状态;
对于步骤102,若语音交互装置判断上位机没有处于唤醒状态,说明还没有处于能够和用户语音交互的状态,需要先进行唤醒操作,需要走一个唤醒的流程,可以将用户的输入音频发送至唤醒内核进行唤醒判断,其中,唤醒内核基于所述输入音频输出唤醒结果;
对于步骤103,若语音交互装置接收来自唤醒内核的唤醒结果,将该唤醒结果存入数据缓存队列,等待被顺序发送给上位机;
对于步骤104,经由下位机中的websocket服务器将该数据缓存队列中的唤醒结果按照顺序发送给上位机中的websocket客户端。进一步的,如果唤醒结果是可以唤醒,就唤醒上位机,如果唤醒结果是不能唤醒,就不唤醒上位机,在此不再赘述。
例如,上位机是一个微型计算机,只需要或者至少需要一个语音唤醒结果,这种情况就可以采用上述方案,在下位机这块实现唤醒状态判断和唤醒操作,然后将最终的唤醒结果发送给上位机,上位机无需设置唤醒相关的装置,只需要接收唤醒结果就行。
在本实施例的方案中,下位机接收到用户的输入音频之后经过采集过后判断是否是唤醒状态,若未处于唤醒状态则通过下位机的唤醒内核获取进行唤醒操作生成唤醒结果,然后将该唤醒结果存入数据缓存队列,之后经由下位机中的websocket服务器将唤醒结果发送给上位机中websocket客户端。从而可以实现将复杂一些的操作都交给下位机实现,上位机只需要接收唤醒结果即可,由此可以保证上位机设备已有的程序的稳定性,并通过websocket服务与下位机通信,快捷、方便、灵活性较强。
请参考图2,其示出了本申请一实施例提供的另一种用于上位机与下位机的语音交互方法的流程图。该流程图主要是针对上位机仅接收asrresult(语音识别结果)的情况限定的实施例的流程。
如图2所示,在步骤201中,响应于用户的输入音频,判断是否处于唤醒状态;
在步骤202中,若处于唤醒状态,将所述输入音频输入至语音识别服务,其中,所述语音识别服务基于所述输入音频输出语音识别结果;
在步骤203中,接收所述语音识别结果,将所述语音识别结果存入数据缓存队列;
在步骤204中,经由所述websocket服务器将所述语音识别结果发送给所述上位机中的websocket客户端。
在本实施例中,步骤201与前述实施例中的步骤101相同,在此不再赘述。对于步骤202,当语音交互装置判断上位机处于唤醒状态,则可以直接进行后续的语音识别步骤,将用户的输入音频送入识别服务,之后对于步骤203,识别服务会将识别结果存入数据缓存队列中,然后对于步骤204,经由下位机中的websocket服务器将该数据缓存队列中的唤醒结果按照顺序发送给上位机中的websocket客户端。
例如,上位机是一个微型计算机,只需要或者至少需要一个语音识别结果,这种情况就可以采用上述方案,在下位机这块实现唤醒状态判断和唤醒操作,然后将最终的语音识别结果发送给上位机,上位机无需设置语音识别相关的装置,只需要接收语音识别结果就行。
在本实施例的方案中,下位机接收到用户的输入音频之后经过采集过后判断是否是唤醒状态,若未处于唤醒状态则通过下位机的唤醒内核获取进行唤醒操作生成语音识别结果,然后将该语音识别结果存入数据缓存队列,之后经由下位机中的websocket服务器将语音识别结果发送给上位机中websocket客户端。从而可以实现将复杂一些的操作都交给下位机实现,上位机只需要接收语音识别结果即可,由此可以保证上位机设备已有的程序的稳定性,并通过websocket服务与下位机通信,快捷、方便、灵活性较强。
请参考图3,其示出了本申请一实施例提供的另一种用于上位机与下位机的语音交互方法的流程图。该流程图主要是针对上位机仅接收dmresult(对话管理结果)的情况限定的实施例的流程。
如图3所示,在步骤301中,响应于用户的输入音频,判断是否处于唤醒状态;
在步骤302中,若处于唤醒状态,将所述输入音频输入至语音识别服务,其中,所述语音识别服务基于所述输入音频输出语音识别结果;
在步骤303中,接收所述语音识别结果,并将所述语音识别结果输入至语义理解服务,其中,所述语义理解服务基于所述语音识别结果输出语义理解结果;
在步骤304中,接收所述语义理解结果,将所述语义理解结果输入至对话管理服务,其中,所述对话管理服务基于所述语义理解结果输出对话管理结果;
在步骤305中,接收所述对话管理结果,将所述对话管理结果存入数据缓存队列;
在步骤306中,经由所述websocket服务器将所述对话管理结果发送给所述上位机中的websocket客户端。
在本实施例中,步骤301与前述实施例中的步骤101相同,在此不再赘述。对于步骤302,当语音交互装置判断上位机处于唤醒状态,则将用户的输入音频送入识别服务,之后对于步骤303,接收所述语音识别结果,并将所述语音识别结果输入至语义理解服务,然后对于步骤304,接收到经由语音识别结果通过自然语言处理技术理解生成的所述语义理解结果,将所述语义理解结果输入至对话管理服务,之后,对于步骤305,接收所述对话管理结果,将所述对话管理结果传输给下位机,经由下位机将所述对话管理结果存入数据缓存队列,最后,对于步骤306,经由下位机中的websocket服务器将该数据缓存队列中的对话管理结果按照顺序发送给上位机中的websocket客户端。
例如,上位机是一个微型计算机,只需要或者至少需要一个对话管理结果,这种情况就可以采用上述方案,将所述音频送入服务端进行语音识别服务与采用自然语言处理技术得到对话管理结果,然后将最终的对话管理结果经由下位机缓存之后发送给上位机,上位机无需设置对话管理相关的装置,只需要接收对话管理结果就行。
在本实施例的方案中,下位机接收到用户的输入音频之后经过采集过后判断是否是唤醒状态,若未处于唤醒状态,通过将所述音频送入服务端进行语音识别服务与采用自然语言处理技术得到对话管理结果,然后将最终的对话管理结果经由下位机缓存,之后经由下位机中的websocket服务器将对话管理结果发送给上位机中websocket客户端,从而可以实现将复杂一些的操作都交给下位机实现,上位机只需要接收对话管理结果即可。由此可以保证上位机设备已有的程序的稳定性,并通过websocket服务与下位机通信,快捷、方便、灵活性较强。
请参考图4,其示出了本申请一实施例提供的另一种用于上位机与下位机的语音交互方法的流程图。该流程图主要是针对上位机不收消息,由下位机播报的情况限定的实施例的流程。
如图4所示,在步骤401中,响应于用户的输入音频,判断是否处于唤醒状态;
在步骤402中,若处于唤醒状态,将所述输入音频输入至语音识别服务,其中,所述语音识别服务基于所述输入音频输出语音识别结果;
在步骤403中,接收所述语音识别结果,并将所述语音识别结果输入至语义理解服务,其中,所述语义理解服务基于所述语音识别结果输出语义理解结果;
在步骤404中,接收所述语义理解结果,将所述语义理解结果输入至对话管理服务,其中,所述对话管理服务基于所述语义理解结果输出对话管理结果;
在步骤405中,接收所述对话管理结果,并将所述对话管理结果输入至语音合成服务,其中,所述对话管理服务基于所述对话管理结果输出语音合成结果;
在步骤406中,接收所述语音合成结果,将所述对话管理结果存入数据缓存队列;
在步骤407中,对所述语音合成结果进行音频播报。
在本实施例中,步骤401、402、403和404与前述实施例中的步骤301、302、303和404相同,在此不再赘述,对于步骤405,接收到经由语音识别结果通过自然语言处理技术理解生成的所述对话管理结果,将所述对话管理结果输入至语音合成服务,之后,对于步骤406,接收所述语音合成结果,将所述语音合成结果传输给下位机,经由下位机将所述语音合成结果存入数据缓存队列,最后,对于步骤407,将所述语音合成结果进行音频播报给所述用户。
例如,上位机是一个微型计算机,上位机不收消息而是由下位机进行播报的这种情况就可以采用上述方案,将所述音频送入服务端进行语音识别服务与采用自然语言处理技术得到对话管理结果,然后将最终的对话管理结果进行语音合成,最后经由下位机缓存所述语音合成结果在下位机直接播报给所述用户,上位机无需设置语音交互相关的装置,只需要下位机与所述用户进行语音交互就行。
在本实施例的方案中,下位机接收到用户的输入音频之后经过采集过后判断是否是唤醒状态,若未处于唤醒状态,通过将所述音频送入服务端进行语音识别服务与采用自然语言处理技术得到对话管理结果,然后将最终的对话管理结果进行语音合成,最后经由下位机缓存所述语音合成结果在下位机直接播报给所述用户,从而可以实现将复杂一些的操作都交给下位机实现,上位机则不用接收任何消息。由此可以保证上位机设备已有的程序的稳定性,并通过websocket服务与下位机通信,快捷、方便、灵活性较强。
在上述实施例所述的方法,所述唤醒词还包括:响应于用户的唤醒词定制指令,定制用户的个性化唤醒词。
本申请实施例提供的方法通过唤醒词定制,可以根据场景不同,保持唤醒词一致,也可以进一步让所述用户拥有一个专属的个性化唤醒词。
在上述实施例所述的方法,还包括:所述上位机具有显示功能,所述下位机与所述用户进行语音交互,将结果传给所述上位机显示。
本申请实施例提供的方法中语音交互和显示功能完全是独立的,语音交互运行在下位机,结果传输给上位机显示,由此可以保证上位机设备已有的程序的稳定性,并通过websocket服务与下位机通信,可以更加的快捷、方便与有较强的灵活性。
下面对通过描述发明人在实现本发明的过程中遇到的一些问题和对最终确定的方案的一个具体实施例进行说明,以使本领域技术人员更好地理解本申请的方案。
dds(duidialogueservice)是思必驰公司基于dui平台推出的一种全链路对话管理系统,集成了语音唤醒、语音识别、语义理解、语音对话、语音合成等技术,可以由开发者定制对话管理系统时所需要的综合服务技术,如gui定制、版本管理、私有云部署等。该技术的优势不仅是基于思必驰智能语音技术的对话功能,而且完全依据开发者的需求随心所欲定制各种服务。那什么是dui平台呢,dui即(dialoguserinterface)是为设备赋能语音交互场景的开发配置平台,通过这个定制平台您可以给您的硬件、设备、手机app等产品增加语音交互场景!在这个过程中为开发者提供高可用定制的人机对话技术服务,为智能终端开发者提供核心交互能力,协助传统设备实现智能升级。
发明人在实现本申请的过程中发现,现有技术的方案的缺陷是由于以下内容导致的:以上单项技术提供的是语音基础能力,只能在客户设备上做功能开发,集成多种单项语音技术来完成语音交互程序;全链路语音对话技术集成了语音唤醒、语音识别、语义理解、语音对话、语音合成等功能,仅仅减少了客户的开发工作量。由于这些技术仅仅将结果输出到本机,并没有启动websocket服务,供第三方设备接入。另外,由于语音技术的开发语言的局限性,为了达到较好的兼容性,也限制了客户的应用开发语言。
为什么不容易想到原因:
若想保证客户设备程序已有的代码几乎不受影响,就需要提供方提高语音技术的稳定性,以及客户语音程序的鲁棒性好,尽量避免出现宕机行为,这些都是有客户自己解决。
由于本文的采用上位机与下位机的在线全链路语音交互方法,实现逻辑较为复杂,需要在下位机与服务端通信,并且在下位机启动websocket服务供第三方设备接入,将语音结果抛给第三方设备,涉及了很多单项基础技术的融合(kws、asr、nlp、dm、tts),以及websocket通信服务。
本申请实施例的方案通过以下方案解决上述现有技术中存在的技术问题:
首先,在下位机通过网络协议建立与服务端通信,将服务的语音结果传输给下位机,解决了客户多复杂的语音交互开发逻辑。
其次,本方案在下位机建立websocket服务,由此客户通过websocket协议,将上位机与下位机通信,满足了保证客户设备已有程序的稳定性的要求,其次,由于websocket标准型,同时解决了客户可以选择熟悉的开发语言。
本申请实施例的方案通过以下步骤实现:
情景1:上位机仅接收wakeupresult(唤醒结果)
输入音频;
音频采集模块进行音频采集;
判断是否已处于唤醒状态,若未处于唤醒状态,随即将音频送入wakeup内核,并将wakeupresult存入数据缓存队列;
下位机通过websocketserver,将缓存队列中的wakeupresult,发送给上位机websocketclient。
情景2:上位机仅接收asrresult(语音识别结果)
输入音频;
音频采集模块进行音频采集;
判断是否已处于唤醒状态,若处于唤醒状态,随即将音频送入识别服务,并将其返回的asrresult存入数据缓存队列;
下位机通过websocketserver,将缓存队列中的asrresult发送给上位机的websocketclient。
情景3:上位机仅接收dmresult(对话管理结果)
输入音频;
音频采集模块进行音频采集;
判断是否已处于唤醒状态,若处于唤醒状态,随即将音频送入识别服务;
服务端将asrresult送入语义服务进行nlp;
服务端将nlpresult送入dm,并将dmresult返回给下位机,而下位机立即将dmresult存入数据缓存队列;
下位机通过websocketserver,将缓存队列中的dmresult,发送给websocketclient。
情景4:上位机不收消息,由下位机播报
输入音频;
音频采集模块进行音频采集;
判断是否已处于唤醒状态,若处于唤醒状态,随即将音频送入识别服务
服务端将asrresult送入语义服务进行nlp;
服务端将nlpresult送入dm;
服务端将dmresult送入tts,并将其ttsresult返回给下位机,而下位机将ttsresult存入数据缓存队列;
下位机将ttsresult送入音频播放模块。
请参考图6,其示出了本发明一实施例提供的一种用于上位机与下位机的语音交互装置的框图。
如图6所示,一种用于上位机与下位机的语音交互装置600,包括:判断模块610、唤醒模块620、接收缓存模块630和发送模块640。
其中,判断模块610,配置为响应于用户的输入音频,判断是否处于唤醒状态;唤醒模块620,配置为若未处于唤醒状态,将所述输入音频发送至唤醒内核,其中,所述唤醒内核基于所述输入音频输出唤醒结果;接收缓存模块630,配置为接收所述唤醒结果,将所述唤醒结果存入数据缓存队列;发送模块640,配置为经由所述websocket服务器将所述唤醒结果发送给所述上位机中的websocket客户端。
在一些可选的实施例中,判断模块610,还配置为响应于用户的输入音频,判断是否处于唤醒状态;唤醒模块620,还配置为若处于唤醒状态,将所述输入音频输入至语音识别服务,其中,所述语音识别服务基于所述输入音频输出语音识别结果;接收缓存模块630,还配置为接收所述语音识别结果,将所述语音识别结果存入数据缓存队列;发送模块640,还配置为经由所述websocket服务器将所述语音识别结果发送给所述上位机中的websocket客户端。
应当理解,图6中记载的诸模块与参考图1、图2、图3与图4中描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征以及相应的技术效果同样适用于图6中的诸模块,在此不再赘述。
值得注意的是,本申请的实施例中的模块并不用于限制本申请的方案,例如判断模块可以描述为响应于用户的输入音频,判断是否处于唤醒状态,另外,还可以通过硬件处理器来实现相关功能模块,例如判断模块也可以用处理器实现,在此不再赘述。
在另一些实施例中,本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的用于上位机与下位机的语音交互方法;
作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:
响应于用户的输入音频,判断是否处于唤醒状态;
若未处于唤醒状态,将所述输入音频发送至唤醒内核,其中,所述唤醒内核基于所述输入音频输出唤醒结果;
接收所述唤醒结果,将所述唤醒结果存入数据缓存队列;
经由所述websocket服务器将所述唤醒结果发送给所述上位机中的websocket客户端。
非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种用于上位机与下位机的语音交互装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至用于上位机与下位机的语音交互装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行上述任一项用于上位机与下位机的语音交互方法。
图7是本发明实施例提供的电子设备的结构示意图,如图7所示,该设备包括:一个或多个处理器710以及存储器720,图7中以一个处理器710为例。用于上位机与下位机的语音交互方法的设备还可以包括:输入装置730和输出装置740。处理器710、存储器720、输入装置730和输出装置740可以通过总线或者其他方式连接,图7中以通过总线连接为例。存储器720为上述的非易失性计算机可读存储介质。处理器710通过运行存储在存储器720中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例用于上位机与下位机的语音交互装置方法。输入装置730可接收输入的数字或字符信息,以及产生与用于上位机与下位机的语音交互装置的用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏等显示设备。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
作为一种实施方式,上述电子设备应用于上位机与下位机的语音交互装置中,包括:
至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:
响应于用户的输入音频,判断是否处于唤醒状态;
若未处于唤醒状态,将所述输入音频发送至唤醒内核,其中,所述唤醒内核基于所述输入音频输出唤醒结果;
接收所述唤醒结果,将所述唤醒结果存入数据缓存队列;
经由所述websocket服务器将所述唤醒结果发送给所述上位机中的websocket客户端。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除