人机交互方法、装置、存储介质及终端设备
技术领域
本申请涉及人工智能
技术领域
,特别涉及一种人机交互方法、装置、存储介质及终端设备。背景技术
人机交互是指人与计算机之间使用某种对话语言,以一定的交互方式,为完成确定任务的人与计算机之间的信息交换过程。其中,随着互联网技术和物联网技术的快速发展,时下智能语音交互成为了主流的人机交互方式之一。
智能语音交互涉及人工智能技术。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。在AI技术的支持下,使得用户能够直接基于语音技术与设备进行交互。
在智能语音交互的场景下,方案灵活化和实现轻便化一直是本领域技术人员追求的一个目标。即,如何灵活地实现智能语音交互,是目前本领域技术人员亟待解决的一个问题。
发明内容
本申请实施例提供了一种人机交互方法、装置、存储介质及终端设备,能够实现灵活化和轻便话的智能语音交互。所述技术方案如下:
一方面,提供了一种人机交互方法,应用于终端设备,所述终端设备集成有语音交互组件、N个业务组件和接入方提供的自定义声学模型;所述语音交互组件中封装有与语音交互相关的软件开发工具包SDK;所述N个业务组件是由所述接入方根据自身产品需求在开发方提供的业务组件集合中选择的;一个所述业务组件用于为所述终端设备提供至少一项服务,N为正整数;
所述方法包括:
通过所述语音交互组件接收所述自定义声学模型采集的音频数据,所述音频数据为用户语音输入;
通过所述语音交互组件,将所述音频数据发送至服务器,所述音频数据用于指示所述服务器执行音频处理并生成与所述音频数据匹配的响应数据;
通过所述语音交互组件,将所述服务器返回的所述响应数据下发至第一业务组件;响应于所述用户语音输入是任务型提问,所述响应数据用于触发所述第一业务组件执行所述用户语音输入指示的目标操作。。
另一方面,提供了一种人机交互装置,应用于终端设备,所述终端设备集成有语音交互组件、N个业务组件和接入方提供的自定义声学模型;所述语音交互组件中封装有与语音交互相关的软件开发工具包SDK;所述N个业务组件是由所述接入方根据自身产品需求在开发方提供的业务组件集合中选择的;一个所述业务组件用于为所述终端设备提供至少一项服务,N为正整数;
所述自定义声学模型,被配置为采集音频数据,所述音频数据为用户语音输入;
所述语音交互组件,被配置为接收所述自定义声学模型采集的音频数据;
所述语音交互组件,还被配置为将所述音频数据发送至服务器,所述音频数据用于指示所述服务器执行音频处理并生成与所述音频数据匹配的响应数据;
所述语音交互组件,还被配置为将所述服务器返回的所述响应数据下发至第一业务组件;响应于所述用户语音输入是任务型提问,所述响应数据用于触发所述第一业务组件执行所述用户语音输入指示的目标操作。
在一种可能的实现方式中,所述SDK包括:语音识别SDK、语音合成SDK和文字识别SDK;
所述声学模型的路径设置在所述语音交互组件下,所述语音交互组件对外提供用于唤醒所述终端设备的音频数据接收接口。
在一种可能的实现方式中,所述音频数据用于指示所述服务器执行以下音频处理:
对所述音频数据进行语义解析,基于语义解析结果获取所述音频数据的语义技能数据,所述语义技能数据包括:提问意图、提问所属的知识领域、提问文本和所述响应数据。
在一种可能的实现方式中,所述第一业务组件,被配置为响应于所述用户语音输入不是任务型提问,显示非语音形式的所述响应数据;
所述语音交互组件,还被配置为响应于所述用户语音输入不是任务型提问,播放语音形式的所述响应数据;
所述语音交互组件,还被配置为响应于所述用户语音输入不是任务型提问,且所述终端设备未集成所述第一业务组件,显示非语音形式的所述响应数据。
在一种可能的实现方式中,所述语音交互组件与所述服务器之间建立有长连接;
所述语音交互组件,还被配置为接收所述服务器基于所述长连接下发的推送消息;以定向广播方式通知第二业务组件接收所述推送消息,所述第二业务组件预先已向所述语音交互组件注册回调函数或注册监听器。
在一种可能的实现方式中,所述语音交互组件,被配置为以定向广播方式通知所述第一业务组件接收所述响应数据,所述第一业务组件预先已向所述语音交互组件注册回调函数或注册监听器。
在一种可能的实现方式中,所述装置还包括:
声源定位模块,被配置为获取第一麦克风采集的第一语音信号,所述第一语音信号包括第一声源信号和第一噪声信号;获取第二麦克风采集的第二语音信号,所述第二语音信号包括第二声源信号和第二噪声信号;获取所述第一语音信号和所述第二语音信号在频域上的互功率谱;将所述互功率谱由频域变换至时域,得到互相关函数;将最大互相关值对应的时间取值确定为传播时延,所述传播时延为语音信号在所述第一麦克风和所述第二麦克风之间的到达时间差;基于所述传播时延进行声源定位,所述第一麦克风和所述第二麦克风来自于所述终端设备的麦克风阵列。
在一种可能的实现方式中,所述装置还包括:
回声消除模块,被配置为基于第一滤波器,对麦克风阵列接收到的语音信号进行回声消除处理;其中,第一滤波器的滤波函数无限接近扬声器到所述麦克风阵列的冲激响应;所述麦克风阵列接收到的语音信号是根据声源信号、噪声信号、所述扬声器播放的语音信号和所述冲激响应确定的。
在一种可能的实现方式中,所述装置还包括:
混响消除模块,被配置为将麦克风阵列接收到的语音信号由时域变换至频域,得到频域信号;基于第二滤波器对所述频域信号进行逆滤波处理,恢复出声源信号;其中,所述麦克风阵列接收到的语音信号是根据声源信号、噪声信号和声源的房屋冲激响应确定的。
另一方面,提供了一种终端设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行以实现上述人机交互方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行以实现上述人机交互方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中,终端设备的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,使得该终端设备执行上述人机交互方法。
本申请实施例提供的技术方案带来的有益效果是:
针对智能语音交互,开发方会事先实现语音交互组件和各种业务组件,从而方便接入方根据自己的产品需求进行业务组件的自由组合接入,进而形成自己的终端设备;即,接入方可以自由组合业务组件来形成自己的产品方案,面对开发方提供的各种业务组件,接入可以自由选择接入或者不接入。换言之,接入方可以根据自身的产品需求,来自定义自己的终端设备具备的功能。
这种基于语音交互的组件化解决方案,可以很方便地应用在各种终端设备上,比如IOT(Internet of Things,物联网)设备、有屏设备和无屏设备等;而且接入简单,设备的可定制化强,不但能够尽可能地缩短接入方的接入周期,节省开发成本,而且灵活性强。综上所述,本申请实施例为接入方实现灵活以及简便地智能语音交互提供了可能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种语音交互系统的结构示意图;
图2是本申请实施例提供的一种人机交互方法涉及的实施环境的示意图;
图3是本申请实施例提供的一种目标框架平台的结构示意图;
图4是本申请实施例提供的一种人机交互方法的流程图;
图5是本申请实施例提供的一种声学前端采集系统的基本架构的示意图;
图6是本申请实施例提供的一种声音信号与麦克风阵列的示意图;
图7是本申请实施例提供的一种进行回声消除的示意图;
图8是本申请实施例提供的一种终端设备与后台服务器的交互示意图;
图9是本申请实施例提供的一种后台服务器进行消息推送的示意图;
图10是本申请实施例提供的一种人机交互装置的结构示意图;
图11是本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。其中,至少一个是指一个或一个以上,例如,至少一个用户可以是一个用户、两个用户、三个用户等任意大于等于一的整数个用户。而多个是指两个或者两个以上,例如,多个用户可以是两个用户、三个用户等任意大于等于二的整数个用户。
本申请实施例提供了一种人机交互方法、装置、存储介质及电子设备。该方法涉及人工智能(Artificial Intelligence,AI)领域和云技术领域。
其中,AI是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
详细来说,人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习等几大方向。
语音技术(Speech Technology,ST)的关键技术有自动语音识别技术(AutomaticSpeech Recognition,ASR)和语音合成技术(Text To Speech,TTS)以及声纹识别技术。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式之一。
自然语言处理(Nature Language processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
另外,该方法还涉及云技术(Cloud technology)领域。其中,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。另外,云技术还可以是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
示例性地,该方法涉及云技术领域的人工智能云服务。其中,所谓人工智能云服务,一般也被称作是AIaaS(AI as a Service,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,详细来说,AIaaS平台会将几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。
下面先对本申请实施例涉及的一些名词术语或缩略语进行介绍。
语音交互:是指基于用户语音输入的新一代交互模式,用户通过说话就可以得到机器给出的反馈结果。较为典型的应用场景即是语音助手。
组件化:也称为模块化,是指将分属同一功能/业务的代码隔离或分装成独立的模块,位于业务层。示例性地,组件包括但不限于:桌面组件、设置组件、通知栏组件、音乐组件、视频通话组件、视频组件、账号组件、以及各种业务应用所形成的组件。
图1是本申请实施例提供的一种语音交互系统的结构示意图。
参见图1,一个完整的语音交互系统包括:硬件101、软件系统102、声学模型(也称前端声学采集模型或前端声学采集系统)103、语音AI助手104以及上层业务应用(APP,Application)105。
其中,硬件101可以为接入方的终端设备硬件,软件系统102可以为终端设备的操作系统。
需要说明的第一点是,声学模型103可以定制化,既可以使用开发方提供的声学模型,也可以使用接入方自定义的声学模型。换言之,本申请实施例除了开发方向接入方提供声学模型之外,还支持接入方使用自定义的声学模型,即提供了自定义声学模型的接入方式。也即,由于不同接入方所需的声学模型根据硬件不同可能会有所差异,所以本方案提供将接入方自定义的声学模型接入到目标框架平台的能力,并实现将声学模型103采集到的音频传入目标框架平台进行后续的音频处理。
需要的第二点是,上述目标框架平台在本文中也被称为语音交互组件,其提供了语音交互功能,是实现基于语音交互的终端组件化解决方案的核心。示例性地,语音AI助手104封装在上述目标框架平台;其中,上述语音交互开发工具包中包括但不限于:语音识别SDK(Software Development Kit,软件开发工具包)、语音合成SDK、录音识别SDK、文字识别SDK等。
其中,上层各种业务应用105在文本中均可被称之为一个业务组件或一个功能模块。这些业务组件或功能模块的功能实现还需依赖上述目标框架平台。
图2是本申请实施例提供的一种人机交互方法涉及的实施环境的示意图。
示例性地,参见图2,该实施环境包括:用户201、终端设备202和服务器203。其中,终端设备202中集成有目标框架平台2021。
在一种可能的实现方式中,终端设备上的声学模型采集到音频数据后,将传入至目标框架平台2021,而目标框架平台2021负责通过网关接口将该音频数据传递至服务器203进行音频处理;进一步地,服务器203在处理完毕后,会向目标框架平台2021返回处理结果;示例性地,目标框架平台2021在接收到服务器203返回的处理结果后,会进一步地分发至业务组件或功能模块进行数据处理。
在一种可能的实现方式中,服务器203可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备202可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备202以及服务器203可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
下面对本申请实施例提供的人机交互方法可能的应用场景进行说明。
广义上讲,本方案可以应用在任何需要基于语音AI进行交互场景,比如门禁机、智能家居以及家电行业等一些产品。即,上述产品均可以通过本方案实现可定制化的快速接入。即本申请实施例提出了组件化接入的概念。
针对本方案,在实现了目标框架平台及各个业务组件后,接入方便可以根据自己的产品需求进行各种业务组件的自由组合接入;即,接入方可以自由组合业务组件来形成自己的产品方案。其中,目标框架平台无论针对哪个接入方来说都是必须要接入的,而针对桌面组件、设置组件、账号组件和视频通话组件这些公共组件,各个接入方便可以按照自己的产品需求选择接入或者不接入。这种接入方式便称之为组合化接入。其中,目标框架平台在本文中也被称为语音交互组件,其提供了语音交互功能,是实现基于语音交互的终端组件化解决方案的核心。示例性地,语音AI助手封装在目标框架平台内,即,与语音交互相关的软件开发工具包被封装在上述目标框架平台内;其中,上述软件开发工具包中包括但不限于:语音识别SDK、语音合成SDK、录音识别SDK、文字识别SDK等。
其中,组合化接入定义了各个接入方在实现自己的终端设备时,可以根据自己的产品需求来自由选择业务组件进行接入。这种自定义功能或自组合方式,即为组合化接入。
图3是本申请实施例提供的一种目标框架平台的结构示意图。
在本申请实施例中,在通过前端声学模型唤醒终端设备以后,便可以采用目标框架平台对前端声学模型采集到的音频数据进行音频处理。
本方案通过目标框架平台将后台的各种功能封装对接,这样能够使得接入方不用关心语音交互的具体实现细节,而由目标框架平台进行功能透传。即,目标框架平台是后台部分和终端设备之间进行交互的中间媒介。其中,图3中位于目标框架平台之上的部分属于后台部分。如图3所示,位于目标框架平台之上的左边部分301是与语音和语义强相关的部分,这部分包括但不限于:技能配置服务、ASR(Automatic Speech Recognition,自动语音识别技术)、NLP、TTS(Text To Speech,文本转语音)。位于目标框架平台之上的右边部分302提供了各种技能服务。如图3所示,这部分提供的技能服务包括但不限于:账号服务、PUSH(推送)服务、天气服务、闹钟服务、运营服务等,本申请实施例对此不进行具体限定。
其中,技能配置服务用于配置与语音和语义强相关的技能。示例性地,在语音转语义后,通过提供的各项技能服务,目标框架平台可以获取到各种服务消息,比如通过天气服务可以获取到天气消息,再将接收到的天气消息下发给终端设备接入的天气组件。
参见图3,本方案除了向接入方提供目标框架平台之外,还提供了多种自带业务组件303,以方便各个接入方根据自身的产品需求自由选择业务组件,接入到自己的终端设备上。示例性地,本方案提供的业务组件包括但不限于:桌面组件、设置组件、通知栏组件、账号组件、视频通话组件、视频组件、音乐组件、IOT组件等。
另外,目标框架平台通过与后台服务器交互,还会接收到后台服务器下发的各种服务消息304。示例性地,这些服务消息包括但不限于:TTS消息、PUSH消息、语音识别消息、天气消息、账号消息、视频通话消息、授权消息、唤醒消息、播控消息等,本申请实施例对此不进行具体限定。
基于图3所示的目标框架平台,本方案能够支持接入方的三种对接方案。
1、组件化接入方式,本方案开发方已经实现各种业务组件,比如桌面组件、设置组件、通知栏组件、视频组件和视频通话组件等,接入方仅需要根据自己的产品需求搭配任意业务组件使用,目标框架平台为必须搭载的组件,以上即可实现完整的AI语音交互流程,屏蔽了和硬件相关的特性,接入方的工作仅是根据自身的产品需求进行业务组件配置即可。
2、SDK接入方式,对于有开发能力的接入方或者需要自己实现各种交互的,本方案同时支持SDK接入方式;其中,针对SDK接入方式在本文中未涉及。
3、整机接入方式,对于没有开发经验、或者不想在开发上面做投入也想快速实现语音交互的接入方,本方案实现了从前端声学模型、ASR、NLP、TTS和各种技能配置服务,以及各种AI语音交互流程的全流程解决方案,接入方可以无需开发,换言之,本方案也支持开发方提供整机比如智能音箱供接入方使用。在一些实施例中,开放方可以基于终端设备的各类应用场景,而选择不同的功能组件进行整机集成,从而向接入方提供具有不同功能服务的各类终端设备以供不同的接入方选择使用,本申请实施例对此不进行具体限定。
需要说明的是,无论哪种对接方案的实现都涉及语音采集、语音识别、TTS、语义理解以及语义的技能执行。特别地,针对组件化接入方案来说,涉及多组件之间的消息通信及状态管理技术;UI(User Interface,用户界面)和音视频与后台的双通道同步技术;TTS、ASR、NLP和语义转技能技术;App的长连接和PUSH通道技术;音频采集和回音消除技术等。
下面以组件化接入方式为例,对本申请实施例提供的人机交互方法进行详细地解释说明。
图4是本申请实施例提供的一种人机交互方法的流程图。该方法的执行主体为终端设备,该终端设备为接入方设备。其中,该终端设备集成有语音交互组件(即上述目标框架平台)、N个业务组件和接入方提供的自定义声学模型。其中,该语音交互组件用于提供语音交互功能。比如该语音交互组件封装有与语音交互相关的软件开发工具包。示例性地,该软件开发工具包至少包括:语音识别SDK、语音合成SDK和文字识别SDK。另外,N个业务组件是由接入方根据自身产品需求在开发方提供的业务组件集合中选择的;其中,一个业务组件用于为终端设备提供一项服务;比如视频通话模块为该终端设备提供视频通话功能。参见图4,本本申请实施例提供的方法流程包括:
401、终端设备的语音交互组件接收自定义声学模型采集的音频数据,该音频数据为用户语音输入。
在本申请实施例中,终端设备的声学模型负责采音。而声学模型采集的音频数据会传递给该语音交互组件。即,该语音交互组件接收到的音频数据是声学模型采集到的。
在一种可能的实现方式中,该音频数据作为用户语音输入,可以为任务型提问,比如播放一首音乐;也可以为问题性提问,比如询问今天天气怎样;也可以为闲聊型提问,没有任何目的性,本申请实施例对此不进行具体限定。
需要说明的是,上述声学模型除了是开发方为接入方提供的声学模型之外,还可以是接入方提供的自定义声学模型。其中,自定义声学模型的路径设置在该语音交互组件下,该语音交互组件对外提供用于唤醒终端设备的音频数据接收接口。换言之,本方案除了提供整机的声学模型之外,还支持接入方自定义声学模型接入,详细过程如下:接入方准备好自定义声学模型;将自定义声学模型的路径设置到目标框架平台下;而目标框架平台提供唤醒时的接口,由接入方实现;基于这样的接口实现,通过自定义声学模型采集的音频数据便能传递到目标框架平台。
基于以上步骤,便实现了基于自定义声学模型来唤醒终端设备,用户对着终端设备的麦克风说唤醒关键词即可唤醒终端设备。本申请实施例提供了灵活多样的前端声学模型接入方案。
在另一种可能的实现方式中,声学前端采集系统的基本架构如图5所示,包括多个麦克风拾音、回声消除、麦克风阵列波束形成、远场混响控制、非线性噪声抑制和关键唤醒等多个部分。另外,远场语音交互,声音在传输过程中存在传输衰减,并伴随噪声和干扰信号等,因此时下多采用麦克风阵列,以增强目标声音,并对干扰声音进行抑制,提高识别准确率。其中,图6中示出了6个麦克风,分别为麦克风1、麦克风2、麦克风3、麦克风4、麦克风5和麦克风6。这6个麦克风便形成了一个麦克风阵列。另外,如图6所示,除了声源发出的声音信号,环境中通常还存在声源信号的反射声、麦克回声、环境噪音和环境无效噪音等。
在另一种可能的实现方式中,声学模型在将采集到的音频数据传递给目标框架平台之前,还包括声源定位、回声消除和混响消除等步骤。
示例性地,可以采用广义互相关法来进行声源定位,其本质是一种是TDOA(TimeDifference Of Arrival,到达时间差)计算方法,在频域计算两个语音信号的互功率谱,然后通过傅里叶反变换由时域转换到时域,通过寻找最大互相关值对应的时延,来确定传播时延。
针对本申请实施例,声源定位的详细过程可以为:获取终端设备的麦克风阵列的第一麦克风采集的第一语音信号,其中,第一语音信号包括第一声源信号和第一噪声信号;获取该麦克风阵列的第二麦克风采集的第二语音信号,其中,第二语音信号包括第二声源信号和第二噪声信号;获取第一语音信号和第二语音信号在频域上的互功率谱;将该互功率谱由频域变换至时域,得到互相关函数;将最大互相关值对应的时间取值确定为传播时延,其中,传播时延为语音信号在第一麦克风和第二麦克风之间的到达时间差;基于该传播时延进行声源定位。示例性地,在确定该传播时延后,可以根据声速和两个麦克风之间的距离来确定声源位置,本申请实施例对此不进行具体限定。
举例来说,在空间上距离L的两个麦克风获取远方声源发出的声音信号可以表示为下述公式:x1(t)=s1(t)+z1(t),x2(t)=s2(t+D)+z2(t)。
其中,s1(t)和s2(t+D)为两个麦克风分别接收到的声源信号,z1(t)和z2(t)是两个麦克风分别接收到的噪声信号。如图7所示,在采集到声音信号x1(t)和x2(t)后,首先通过滤波器H1(t)和H2(t)进行滤波,之后进行FFT(Fast Fourier Transform,快速傅里叶变换和计算功率谱,得到X1(ω)和X2(ω),之后在频域计算两个语音信号的互功率谱,然后通过IFFT(Inverse Fast Fourier Transform,快速傅里叶逆变换)将该互功率谱由时域转换到时域,从而得到逼近真实时延的传播时延D。其中,图7中的Φ(ω)为相位变换函数,可以根据实际情况进行选择。在进行声源定位以后,便可以设计波束样式来指向声源,达到减少噪声和干扰声源并提升信干噪比的目的。
针对回声消除,在基于语音交互的终端设备中,在终端设备工作的过程中,比如播放语音或视频等场景下,有时也是需要响应用户输入的语音交互指令的。这时就需要在麦克风阵列接收到的语音信号中去除本地扬声器播放的声音信号,以使得终端设备能够正确识别的用户输入的语音交互指令。在一种可能的实现方式中,本地扬声器播放的声音信号,可以采用扬声器到麦克风阵列的冲激响应来建模。其中,x(t)=n(t)*r(t)+s(t)+z(t)。
其中,n(t)为扬声器播放的语音信号,r(t)为扬声器到麦克风阵列的冲激响应,s(t)为真实的声源信号,z(t)为噪声信号,x(t)为最终麦克风阵列接收到的语音信号。示例性地,回声消除的过程即是获取一个滤波器H(t),使其无限接近真实的冲激响应r(t)。
f(t)=x(t)-n(t)*H(t)
=n(t)*r(t)-n(t)*H(t)+s(t)+z(t)
上述滤波器H(t)在本文中也被称为第一滤波器,即基于第一滤波器,对麦克风阵列接收到的语音信号进行回声消除处理;其中,第一滤波器的滤波函数无限接近扬声器到麦克风阵列的冲激响应;而麦克风阵列接收到的语音信号x(t)是根据声源信号s(t)、噪声信号z(t)、扬声器播放的语音信号n(t)和扬声器到麦克风阵列的冲激响应r(t)确定的。
针对混响消除,混响是指声音信号遇到地面、墙壁等障碍物形成反射声,并和真实声源信号相叠加的现象。示例性地,混响的建模可以通过房屋冲激响应(RIR,Room ImpulseResponse)来描述。
其中,最终麦克风阵列接收到的语音信号是根据声源信号、噪声信号和声源的房屋冲激响应确定的,即x(t)=r(t)*s(t)+z(t),x(t)为最终麦克风阵列接收到的语音信号,s(t)为真实的声源信号,r(t)为声源的房屋冲激响应,z(t)为噪声信号。
将x(t)转换到频域如下;示例性地,混响消除的方法可以是估计一个滤波器使得从而达到对混响声音消除的目的。
上述消除混响的方法被称作逆滤波法。其中,滤波器在本文中也被称为第二滤波器,在将麦克风阵列接收到的语音信号由时域变换至频域后,本申请实施例基于第二滤波器对得到的频域信号进行逆滤波处理,恢复出真实的声源信号s(t)。
需要说明的是,通过上面方法步骤,即可实现用户对着麦克风阵列说唤醒关键词即可唤醒终端设备。
402、终端设备的语音交互组件将音频数据发送至服务器,该音频数据用于指示服务器执行音频处理并生成与该音频数据匹配的响应数据。
本步骤即是终端设备的语音交互组件通过与后台服务器交互,获取与接收到的音频数据匹配的响应数据。
其中,该响应数据包括语音形式和非语音形式。示例性地,针对非语音形式,该响应数据可以为UI数据,本申请实施例对此不进行具体限定。
在本申请实施例中,如图8所示,终端设备801的声学模型接收到的音频数据,会传递到语音交互组件,而语音交互组件会通过终端设备的网关接口将该音频数据传递到后台服务器802进行音频处理。即,终端设备通过语音交互组件,将声学模型接收到的音频数据发送至后台服务器,而该音频数据用于指示后台服务器进行音频处理并生成与该音频数据匹配的响应数据。
在一种可能的实现方式中,图8示出了后台服务器802的具体架构。如图8所示,后台服务器802包括但不限于:AIProxy(代理)、ASR模块、TTS模块、目标服务模块、TSKM平台(技能配置平台)和技能服务模块。
其中,基于图8所示的后台服务器架构,后台服务器可以对接收到的音频执行如下音频处理:
4021、终端设备的语音交互组件将接收到的音频数据,通过网关接口传递给AIproxy。
4022、AIproxy将接收到的音频数据传递给ASR模块,由ASR模块对该音频数据进行语音转文本处理,得到文本数据即得到ASR文本。
4023、AIproxy将接收到的音频数据传递给目标服务模块,进而基于TSKM平台和技能服务模块得到语义技能数据。针对该步骤,会对该音频数据进行语义解析,即语音转语义处理;示例性地,语音转语义处理可由目标服务模块完成,本申请实施例对此不进行具体限定。
示例性地,TSKM平台也称为技能配置平台,用于配置与语义强相关的技能,比如天气技能、闹钟技能、音乐技能等;而技能数据比如天气消息的获取的还需要技能服务提供支持,即TSKM平台通过与技能服务模块交互,基于语义解析结果来拉取具体的技能数据。比如语义解析结果为天气搜索,则通过与天气服务交互,来拉取用户当前所在位置的天气消息。
作为一个示例,该语义技能数据包括:提问意图、提问所属的知识领域、提问文本和非语音形式的响应数据。比如:假设接收到的音频数据为“S市天气”,则相应的语义技能数据可以包括:领域-天气,意图-全面搜索,提问-S市天气,响应数据-S市今天有雷电预警。如上所示,该语义技能数据中包含提问意图(intent),提问所属的知识领域(domain),提问文本(Query)以及非语音形式的响应数据“S市今天有雷电预警”。
4024、TTS模块对非语音形式的响应数据进行文本转语音处理,得到TTS数据即语音形式的响应数据。
在本申请实施例中,后台服务器可以将上述ASR文本、TTS数据和响应数据返回给终端设备的语音交互组件。而该语音交互组件在接收到上述数据时,便可以基于上述数据对用户语音输入进行响应。
参见图8,针对语音交互组件与终端设备的各个业务组件之间的交互,本申请实施例提供了三种回调方式。即,语音交互组件在接收到后台服务器802返回的数据后,本申请实施例提供了三种组件间的交互方案。
针对跨进程消息分发的交互方式,如果后台服务器802返回的数据需要传递到终端设备集成的某个业务组件,则需要该业务组件在启动时注册回调函数或者注册监听器,这样语音交互组件在接收到后台服务器下发的数据后则进行远端回调。即,本申请实施例还包括下述步骤403。
403、终端设备的语音交互组件将该响应数据下发至第一业务组件,响应于用户语音输入是任务型提问,该响应数据用于触发第一业务组件执行用户语音输入指示的目标操作。
即,该响应数据用于触发第一业务组件对用户语音输入进行响应。比如,指示音乐组件播放某一首音乐或闹钟组件在目标时刻响铃等,本申请实施例对此不进行具体限定。
在一种可能的实现方式中,通过语音交互组件,将该响应数据下发至第一业务组件,包括但不限于:通过语音交互组件,以定向广播的方式通知第一业务组件接收该响应数据;其中,第一业务组件预先已向该语音交互组件注册回调函数(callback)或注册监听器(listener)。
回调函数是一个通过函数指针调用的函数。如果将该函数的指针作为参数传递给另一个函数,则当这个指针被用来调用其所指向的函数时,即称之为回调函数。其中,回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用,用于对该事件或条件进行响应。在大多数情况下,回调是一个当某些事件发生时被调用的方法。举例来说,某一用户到商店买东西,但刚好没货,于是该用户在店员那里留下了联系方式,过几天店里有货,店员根据该用户提供的联系方式联系到了该用户,然后该用户去店里取货。在这个例子里,该用户的联系方式即为回调函数,该用户将联系方式留给店员即为登记回调函数,店里后来有货即为触发了回调关联的事件,店员通知该用户即为调用回调函数,该用户到店里取货即为响应回调事件。
在本申请实施例中,用户语音输入可以针对任务场景,其中,任务型对话是为了完成某个特定的任务,比如订机票不仅需要应答用户,还需要查询机票情况和执行相应的动作。另外,用户语音输入也可以针对非任务场景,比如问答场景和闲聊场景。其中,问答型对话主要是为了解答用户提问,相当于百科知识库,比如火车票怎么退票、坐飞机需要注意什么事项,通常仅需要回答问题而不需要执行任务。闲聊型对话是开放的通常没有任务目标,也没有硬性限定的答案。
其中,针对不同类型的用户语音输入,该响应数据触发第一业务组件对用户语音输入进行响应的方式也是不同的。在另一种可能的实现方式中,响应于用户语音输入不是任务型提问,则该响应数据用于触发第一业务组件通过UI模板,显示非语音形式的响应数据;需要说明的是,除了上述跨进程消息分发的回调方式之外,本申请实施例还包括基于原线程的回调方式,详细过程如下。
在另一种可能的实现方式中,终端设备的语音交互组件播放语音形式的响应数据。
针对该种回调方式,即是针对语音交互组件的播放回调,换言之,由于语音交互组件对各种语音交互开发工具包进行了封装,因此该语音交互组件支持进行语音播放,所以通过该语音交互组件可以播放语音形式的响应数据。举例来说,假设用户语音输入不是任务型提问,那么可以通过语音交互组件来播放语音形式的响应数据。
示例性地,响应数据通常是以网络请求的形式由后台服务器返回到终端设备,因此该种回调方式可以直接在发起网络请求的线程进行回调。
需要说明的是,除了上述跨进程消息分发的回调方式之外,本申请实施例还包括针对UI线程的回调方式,详细如下。
在另一种可能的实现方式中,终端设备的语音交互组件通过UI模板,显示非语音形式的响应数据。
在本申请实施例中,对于需要基于UI模板进行显示的数据,比如UI数据形式的响应数据,可以回调到语音交互组件的UI线程,进而通过语音交互组件提供的UI模板进行交互呈现。示例性地,假设用户语音输入不是任务型提问,且终端设备未集成有相应的业务组件,那么可以通过语音交互组件的UI模板,来显示非语音形式的响应数据。
本方案对后台服务器下发的数据进行对应目标的回调,为接入方提供了更大的便利。
本申请实施例提供的方法至少具有如下有益效果:
针对智能语音交互,开发方会事先实现语音交互组件和各种业务组件,从而方便接入方根据自己的产品需求进行业务组件的自由组合接入,进而形成自己的终端设备;即,接入方可以自由组合业务组件来形成自己的产品方案。面对开发方提供的各种业务组件,接入可以自由选择接入或者不接入。换言之,接入方可以根据自身的产品需求,来自定义自己的终端设备的功能。这种基于语音交互的组件化解决方案,可以很方便地应用在各种智能终端设备上,比如IOT设备、有屏设备和无屏设备等;而且接入简单,设备的可定制化强,不但能够尽可能地缩短接入方的接入周期,节省开发成本,而且灵活性强。综上所述,本申请实施例为接入方实现灵活以及简便地智能语音交互提供了可能。
在另一个实施例中,在语义交互组件和后台服务器的交互中,除了主动的请求和响应这种应答式方式外,本申请实施例还支持PUSH机制。示例性地,本方案提供一种基于注册的PUSH集中制收发方式。如图9所示,在语音交互组件中设置了一个PUSH管理通道,用来实时接收后台服务器向终端设备推送的消息。其中,语音交互组件与后天服务器之间建立有长连接;作为一个示例,本方案中使用PushManager与后台服务器建立长连接。其中,PushManager提供了从后天服务器接收推送消息的能力。
在本申请实施例中,终端设备上集成的各个业务组件和语音交互组件等所需的PUSH功能,都通过PushManager这个组件来支持;这样处理使得系统只有一个统一的PUSH通道,不但便于管理,而且节省内存和流量。基于以上描述可知,本申请实施例提供的方法还包括:终端设备通过语音交互组件,接收服务器基于长连接下发的推送消息;通过语音交互组件,以定向广播的方式通知第二业务组件接收该推送消息;其中,第二业务组件预先已向语音交互组件注册回调函数或注册监听器。
换言之,为了能够让终端设备集成的各个业务组件接收到后台服务器的推送消息,这些业务组件还需要向语音交互组件进行注册;这样,语音交互组件在接收到推送消息之后,便可以通过定向广播的方式通知需要接收该推送消息的业务组件;其中,接收推送消息的业务组件无需常驻运行,这样可以节省内存和CPU(Central Processing Unit,中央处理器)开销,提供性能。
下面对本申请实施例提供的基于智能语音交互的组件化接入方案进行具体举例说明。
开发方在实现了语音交互组件以及各种业务组件后,接入方就可以根据自身的产品需求进行业务组件的自由组合接入。示例性地,开发方可以实现诸如桌面组件、设置组件、账号组件和视频通话组件等。接入方可以自由组合业务组件进而形成自己的产品方案。另外,本申请实施例也支持接入方根据开发方提供的对外接口自定义业务组件,本申请实施例对此不进行具体限定。
下面以接入视频通话组件为例对组件化接入方案进行举例说明。其中,如果接入方希望自己的终端设备具有视频通话功能,那么接入方可以接入开发方提供的视频通话组件(videocall)和语音交互组件(目标框架平台),即接入方的终端设备上集成有这两个组件。示例性地,基于这两个组件的视频通话过程具体如下:
步骤a、终端设备的声学模型采集到用户语音,比如“打电话给***”。
步骤b、声学模型将采集到的用户语音传递给语音交互组件。
步骤c、语音交互组件将用户语音传递给后台服务器。
步骤d、后台服务器对接收到的用户语音进行语音转语义处理和技能服务匹配,得到响应数据并将该响应数据下发给语音交互组件;
步骤e、语音交互组件通过广播方式通知视频通话组件接收该响应数据;
步骤f、该响应数据出发视频通话组件发起通话的交互流程;即,视频通话组件发起视频通话,等待对方接通后通话。
示例性地,上述广播方式为定向广播方式,采用定向广播方式接收进程不用常驻,节省系统的性能;即,目前的广播实现方式是定向广播,即只有指定的进程才能接收该广播;针对其他的业务组件也是采用一样的逻辑接入。该种组合化接入方案能够快速地通过原子需求进行最小化的功能组合,不但实现了接入方的需求,而且较为便利。
图10是本申请实施例提供的一种人机交互装置的结构示意图。应用于终端设备,参见图10,终端设备集成有语音交互组件1001、N个业务组件1002和接入方提供的自定义声学模型1003;语音交互组件1001中封装有与语音交互相关的软件开发工具包SDK;N个业务组件1001是由接入方根据自身产品需求在开发方提供的业务组件集合中选择的;一个业务组件1001用于为终端设备提供至少一项服务,N为正整数;
自定义声学模型1003,被配置为采集音频数据,所述音频数据为用户语音输入;
语音交互组件1001,被配置为接收所述自定义声学模型采集的音频数据;
语音交互组件1001,还被配置为将所述音频数据发送至服务器,所述音频数据用于指示所述服务器执行音频处理并生成与所述音频数据匹配的响应数据;
语音交互组件1001,还被配置为将所述服务器返回的所述响应数据下发至第一业务组件;响应于所述用户语音输入是任务型提问,所述响应数据用于触发所述第一业务组件执行所述用户语音输入指示的目标操作。
针对智能语音交互,开发方会事先实现语音交互组件和各种业务组件,从而方便接入方根据自己的产品需求进行业务组件的自由组合接入,进而形成自己的终端设备;即,接入方可以自由组合业务组件来形成自己的产品方案。面对开发方提供的各种业务组件,接入可以自由选择接入或者不接入。换言之,接入方可以根据自身的产品需求,来自定义自己的终端设备的功能。这种基于语音交互的组件化解决方案,可以很方便地应用在各种智能终端设备上,比如IOT设备、有屏设备和无屏设备等;而且接入简单,设备的可定制化强,不但能够尽可能地缩短接入方的接入周期,节省开发成本,而且灵活性强。综上所述,本申请实施例为接入方实现灵活以及简便地智能语音交互提供了可能。
在一种可能的实现方式中,所述SDK包括:语音识别SDK、语音合成SDK和文字识别SDK;
所述声学模型的路径设置在所述语音交互组件下,所述语音交互组件对外提供用于唤醒所述终端设备的音频数据接收接口。
在一种可能的实现方式中,所述音频数据用于指示所述服务器执行以下音频处理:
对所述音频数据进行语义解析,基于语义解析结果获取所述音频数据的语义技能数据,所述语义技能数据包括:提问意图、提问所属的知识领域、提问文本和所述响应数据。
在一种可能的实现方式中,所述第一业务组件,被配置为响应于所述用户语音输入不是任务型提问,显示非语音形式的所述响应数据;
所述语音交互组件,还被配置为响应于所述用户语音输入不是任务型提问,播放语音形式的所述响应数据;
所述语音交互组件,还被配置为响应于所述用户语音输入不是任务型提问,且所述终端设备未集成所述第一业务组件,显示非语音形式的所述响应数据。
在一种可能的实现方式中,所述语音交互组件与所述服务器之间建立有长连接;
所述语音交互组件,还被配置为接收所述服务器基于所述长连接下发的推送消息;以定向广播方式通知第二业务组件接收所述推送消息,所述第二业务组件预先已向所述语音交互组件注册回调函数或注册监听器。
在一种可能的实现方式中,所述语音交互组件,被配置为以定向广播方式通知所述第一业务组件接收所述响应数据,所述第一业务组件预先已向所述语音交互组件注册回调函数或注册监听器。
在一种可能的实现方式中,所述装置还包括:
声源定位模块,被配置为获取第一麦克风采集的第一语音信号,所述第一语音信号包括第一声源信号和第一噪声信号;获取第二麦克风采集的第二语音信号,所述第二语音信号包括第二声源信号和第二噪声信号;获取所述第一语音信号和所述第二语音信号在频域上的互功率谱;将所述互功率谱由频域变换至时域,得到互相关函数;将最大互相关值对应的时间取值确定为传播时延,所述传播时延为语音信号在所述第一麦克风和所述第二麦克风之间的到达时间差;基于所述传播时延进行声源定位,所述第一麦克风和所述第二麦克风来自于所述终端设备的麦克风阵列。
在一种可能的实现方式中,所述装置还包括:
回声消除模块,被配置为基于第一滤波器,对麦克风阵列接收到的语音信号进行回声消除处理;其中,第一滤波器的滤波函数无限接近扬声器到所述麦克风阵列的冲激响应;所述麦克风阵列接收到的语音信号是根据声源信号、噪声信号、所述扬声器播放的语音信号和所述冲激响应确定的。
在一种可能的实现方式中,所述装置还包括:
混响消除模块,被配置为将麦克风阵列接收到的语音信号由时域变换至频域,得到频域信号;基于第二滤波器对所述频域信号进行逆滤波处理,恢复出声源信号;其中,所述麦克风阵列接收到的语音信号是根据声源信号、噪声信号和声源的房屋冲激响应确定的。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的人机交互装置在人机交互时,仅以上述各业务组件的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的业务组件完成,即将装置的内部结构划分成不同的业务组件,以完成以上描述的全部或者部分功能。另外,上述实施例提供的人机交互装置与人机交互方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图11示出了本申请一个示例性实施例提供的终端设备1100的结构框图。该终端设备1100可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端设备1100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端设备1100包括有:处理器1101和存储器1102。
处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器1101所执行以实现本申请中方法实施例提供的人机交互方法。
在一些实施例中,终端设备1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:射频电路1104、显示屏1105、摄像头组件1106、音频电路1107、定位组件1108和电源1109中的至少一种。
外围设备接口1103可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其他实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1104用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1104包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1104还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1105用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置在终端设备1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在终端设备1100的不同表面或呈折叠设计;在另一些实施例中,显示屏1105可以是柔性显示屏,设置在终端设备1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1106用于采集图像或视频。可选地,摄像头组件1106包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端设备1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1107还可以包括耳机插孔。
定位组件1108用于定位终端设备1100的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1108可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1109用于为终端设备1100中的各个组件进行供电。电源1109可以是交流电、直流电、一次性电池或可充电电池。当电源1109包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端设备1100还包括有一个或多个传感器1110。该一个或多个传感器1110包括但不限于:加速度传感器1111、陀螺仪传感器1112、压力传感器1113、指纹传感器1114、光学传感器1115以及接近传感器1116。
加速度传感器1111可以检测以终端设备1100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1111可以用于检测重力加速度在三个坐标轴上的分量。处理器1101可以根据加速度传感器1111采集的重力加速度信号,控制显示屏1105以横向视图或纵向视图进行用户界面的显示。加速度传感器1111还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1112可以检测终端设备1100的机体方向及转动角度,陀螺仪传感器1112可以与加速度传感器1111协同采集用户对终端设备1100的3D动作。处理器1101根据陀螺仪传感器1112采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1113可以设置在终端设备1100的侧边框和/或显示屏1105的下层。当压力传感器1113设置在终端设备1100的侧边框时,可以检测用户对终端设备1100的握持信号,由处理器1101根据压力传感器1113采集的握持信号进行左右手识别或快捷操作。当压力传感器1113设置在显示屏1105的下层时,由处理器1101根据用户对显示屏1105的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1114用于采集用户的指纹,由处理器1101根据指纹传感器1114采集到的指纹识别用户的身份,或者,由指纹传感器1114根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1101授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1114可以被设置在终端设备1100的正面、背面或侧面。当终端设备1100上设置有物理按键或厂商Logo时,指纹传感器1114可以与物理按键或厂商Logo集成在一起。
光学传感器1115用于采集环境光强度。在一个实施例中,处理器1101可以根据光学传感器1115采集的环境光强度,控制显示屏1105的显示亮度。具体地,当环境光强度较高时,调高显示屏1105的显示亮度;当环境光强度较低时,调低显示屏1105的显示亮度。在另一个实施例中,处理器1101还可以根据光学传感器1115采集的环境光强度,动态调整摄像头组件1106的拍摄参数。
接近传感器1116,也称距离传感器,通常设置在终端设备1100的前面板。接近传感器1116用于采集用户与终端设备1100的正面之间的距离。在一个实施例中,当接近传感器1116检测到用户与终端设备1100的正面之间的距离逐渐变小时,由处理器1101控制显示屏1105从亮屏状态切换为息屏状态;当接近传感器1116检测到用户与终端设备1100的正面之间的距离逐渐变大时,由处理器1101控制显示屏1105从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图11中示出的结构并不构成对终端设备1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由终端中的处理器执行以完成上述实施例中的人机交互方法。例如,所述计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中,终端设备的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,使得该终端设备执行上述人机交互方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种基于反正切函数的零吸引回声消除方法