一种语音输入方法及装置
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种语音输入方法及装置。
背景技术
目前,用户要在终端上输入文字信息时,一般基于终端上的输入法应用,通过点击终端上的键盘按键输入文字信息,或者,在终端上的手写板上手写输入文字信息,其中,所述终端包括但不限于:车载台、手机、平板电脑,等等。
但是,在某些应用场景下,用户的双手可能需要做其他操作,从而不方便手动在终端上输入文字信息。例如,当用户正在开车时,可能想要在车载台上的导航应用中搜索地名,或者,想要在手机上回复短信息,等等,但由于用户的双手正在操作方向盘,因此,不方便手动在终端上输入文字信息。
在上述的应用场景下,在终端上输入文字信息的便利性较差。
发明内容
本发明实施例提供一种语音输入方法及装置,用以解决现有技术在用户不方便手动输入文字信息的应用场景下,在终端上输入文字信息的便利性和效率较差的问题。
本发明实施例提供一种语音输入方法,包括:
当接收到输入法应用发送的语音输入指令时,获取语音输入设备的操作权;
基于所述操作权,采用所述语音输入设备采集当前环境语音;
对采集到的当前环境语音进行语音识别,并将识别出的文字信息返回给所述输入法应用。
本发明实施例还提供一种语音输入装置,包括:
接收模块,用于当接收到输入法应用发送的语音输入指令时,获取语音输入设备的操作权;
采集模块,用于基于所述操作权,采用所述语音输入设备采集当前环境语音;
识别模块,用于对采集到的当前环境语音进行语音识别,并将识别出的文字信息返回给所述输入法应用。
本发明实施例提供的语音输入方法及装置,即使用户不方便手动在终端上输入文字信息,也可以通过语音输入文字信息,因此,提高了在终端上输入文字信息的便利性。解决了现有技术在用户不方便手动输入文字信息的应用场景下,在终端上输入文字信息的便利性和效率较差的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的语音输入过程;
图2为本发明实施例提供的,采用广播机制获取语音输入设备的操作权的过程;
图3为本发明实施例提供的,在安卓(Android)操作系统上,一种生成语音输入可视化界面的过程;
图4为本发明实施例提供的,一种输入法应用的可视化界面;
图5为本发明实施例提供的,一种在采集当前环境语音过程中的语音输入可视化界面;
图6为本发明实施例提供的,一种在对采集到的当前环境语音进行语音识别过程中的语音输入可视化界面;
图7为本发明实施例提供的,语音输入完成后切换回的输入法应用的可视化界面;
图8为本发明实施例提供的语音输入装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的语音输入过程,具体包括以下步骤:
S101:当接收到输入法应用发送的语音输入指令时,获取语音输入设备的操作权。
本发明实施例提供的语音输入方法的执行主体可以是:终端、服务器、终端或服务器上的应用、内嵌于应用中的引擎(例如,内嵌于所述输入法应用中的语音输入引擎)等等。所述终端包括但不限于:车载台、手机、平板电脑、智能手表、个人计算机,等等;所述服务器包括但不限于:作为服务器的大中型计算机、计算机集群,等等。所述的执行主体并不构成对本申请的限定。为了便于描述,本发明实施例均以内嵌于所述输入法应用中的语音输入引擎作为执行主体。
所述的输入法应用可以是操作系统自带的输入法应用,也可以是用户在操作系统上安装的第三方输入法应用。
一般的,当用户需要在文本框中输入文字或其他字符信息时,可以通过点击文本框激活输入法应用,输入法应用则可以展示自己的可视化界面,并为用户提供键盘输入或者手写板方式的输入方式。在本发明实施例中,可以基于语音输入指令,将所述键盘输入或者手写板方式切换至语音输入方式,具体的,用户可以通过对预设控件进行操作,从而触发输入法应用向语音输入引擎发送语音输入指令以切换至语音输入方式。其中,所述预设控件包括但不限于实体按键、虚拟按键,等等。
语音输入引擎在接收到所述语音输入指令后,可以采用语音输入设备采集当前环境语音,但是由于可能会有其他应用占用了语音输入设备的操作权,因此,语音输入引擎可以等待语音输入设备的操作权被释放后,获取语音输入设备的操作权,或者,也可以主动地向其他应用请求获取语音输入设备的操作权。其中,所述语音输入设备包括但不限于麦克风(Microphone,MIC),以及支持MIC功能的相关组件。
S102:基于所述操作权,采用所述语音输入设备采集当前环境语音。
S103:对采集到的当前环境语音进行语音识别,并将识别出的文字信息返回给所述输入法应用。
本发明实施例对在语音识别过程中所使用的识别算法并不做限定。可以使用现有的语音识别算法,例如,隐马尔可夫模型(Hidden Markov Model,HMM)语音识别算法、动态时间归整(Dynamic Time Warping,DTW)语音识别算法,等等,从采集到的当前环境语音中,识别出文字信息。输入法应用在接收到所述识别出的文字信息后,可以在文本框中展示,从而完成对所述识别出的文字信息的语音输入过程。
通过上述方法,用户可以不手动地在终端上输入文字信息,而是可以通过简单的操作(例如,点击一下预设控件),使用本申请提供的语音输入方式输入文字信息,解放了用户的双手,使用户在输入文字信息的同时,还可以用双手做其他操作,如开车、抓扶手,等等,也提高了在终端上输入文字信息的便利性。
在本发明实施例中,对于上述步骤S101,可以采用广播机制,获取语音输入设备的操作权,实现成本很小。图2示出了采用广播机制获取语音输入设备的操作权的过程,具体包括以下步骤:
S201:判断语音输入设备的操作权是否被其他应用占用,若是,则执行步骤S202,否则,执行步骤S203。
S202:广播请求消息,以请求所述其他应用释放所述语音输入设备的操作权,当监听到所述其他应用在释放所述语音输入设备的操作权后广播的通知消息时,获取对所述语音输入设备的操作权。
S203:获取对所述语音输入设备的操作权。
除了采用广播机制,还可以采用其他方法获取语音输入设备的操作权。例如,可以不向所述其他应用广播请求消息,而是定时查询语音输入设备的操作权是否被其他应用占用,直到确定语音输入设备的操作权未被其他应用占用时,再获取语音输入设备的操作权。
在本发明实施例中,为了进一步地提高在终端上语音输入文字信息的便利性,还可以提供为用户提供语音输入可视化界面,在语音输入时对用户进行相应提示,以及展示实时状态。
具体的,对于上述步骤S102,在基于所述操作权,采用所述语音输入设备采集当前环境语音之前,可以生成语音输入可视化界面,其中,所述语音输入可视化界面用于展示对当前环境语音进行采集和/或识别的状态。
进一步的,在不同的操作系统下,可以采用不同的方法生成语音输入可视化界面,例如,在Android操作系统下,可以基于弹出框生成语音输入可视化界面。具体的,可以获取所述输入法应用的可视化界面的尺寸信息,根据所述尺寸信息,生成弹出框,或者,也可以根据预设尺寸信息,生成弹出框,生成的弹出框即为所述语音输入可视化界面,其中,所述输入法应用的可视化界面可以是采用键盘输入或者手写板输入方式进行文字信息输入时,所使用的界面;进一步的,在生成的弹出框内还可以添加有用于展示对当前环境语音进行采集和/或识别的状态的控件。所述控件可以采用各种方式展示对当前环境语音进行采集和/或识别的状态,以帮助用户进行语音输入。例如,在语音输入引擎获取语音输入设备的操作权后,所述控件可以提示用户“开始说话”,并根据采集的当前环境语音的音量大小,展示相应的动画效果(例如,水波纹、频谱仪等动画效果),让用户感知到语音输入引擎正在采集当前环境语音,而采集完毕后进行识别时,所述控件可以提示用户“正在识别”,等等。
在本发明实施例中,为了使用户更好地感知到已切换至语音输入方式,可以将生成的语音输入可视化界面覆盖在输入法应用的可视化界面之上。具体的,可以对所述弹出框进行设置,使所述语音输入可视化界面将所述输入法应用的可视化界面重叠覆盖,并位于当前显示屏幕的最上层。例如,在Android操作系统中,可以根据输入法应用的可视化界面的位置,确定所述弹出的位置,使二者位置重合,进一步的,将所述弹出框的类型设置为类型系统告警(类型系统告警)系统级,再将设置类型后的弹出框添加至窗口管理器(窗口管理器)中,这样的话,可以使所述弹出框始终位于当前显示屏幕的最上层,提高了语音输入可视化界面的易用性。
在本发明实施例中,所述弹出框可以是POP UP框,或者其他的与POP UP框功能类似的控件,所述类型系统告警系统级可以是TYPE_SYSTEM_ALERT系统级,所述窗口管理器可以是WindowManager。
在本发明实施例中,当确定语音输入完成后,可以将所述语音输入可视化界面隐藏或者销毁,重新显示输入法应用的可视化界面,相应的,输入方式也从语音输入切换回键盘输入或者手写板输入。本申请对确定语音输入完成的具体方法并不做限定,在此,仅列举两种可行的确定方法:第一,当在设定时间内检测到当前环境语音的音量分贝数均未超过预设阈值时,确定语音输入完成;第二,当接收到用户通过预设控件发送的语音输入完成的指令后,确定语音输入完成。
根据上述说明,在图3中示出了根据本申请提供的语音输入方法,在Android操作系统上,一种生成语音输入可视化界面的过程,具体包括以下步骤:
S301:获取所述输入法应用的可视化界面的尺寸信息。
S302:根据所述尺寸信息,生成POP UP框,并在所述POP UP框内绘制用于展示对当前环境语音进行采集和/或识别的状态的控件。
S303:将所述POP UP框的类型设置为TYPE_SYSTEM_ALERT系统级,再将设置类型后的POP UP框添加至WindowManager中,使其位于当前显示屏幕的最上层。
S304:将经过上述处理的POP UP框作为生成的语音输入可视化界面,并使所述语音输入可视化界面将所述输入法应用的可视化界面重叠覆盖。
进一步的,在图4、图5、图6、图7中示出了,在实际应用中,一种适用于车载台的输入法应用的可视化界面,以及语音输入可视化界面。
图4示出了输入法应用的可视化界面,当选中图4中的文本框后,可以采用键盘输入、手写板输入、语音输入等方式输入文字或字符信息,在输入法应用的可视化界面的左上角设置有用于切换至语音输入方式的预设控件,当用户点击该预设控件时,语音输入引擎可以接收到输入法应用发送的语音输入指令,从而切换至语音输入方式。
图5示出了在采集当前环境语音过程中的语音输入可视化界面,图5中的控件可以通过文字“开始说话”,提示用户可以进行语音输入了,并且在语音输入引擎采集当前环境语音的过程中,该控件可以用水波纹跳动表示正在采集当前环境语音,以及表示当前环境语音的音量大小。
图6示出了在对采集到的当前环境语音进行语音识别过程中的语音输入可视化界面,图6中的控件可以通过文字“正在识别”,向用户提示正在对采集到的当前环境语音进行语音识别。
图7示出了语音输入完成后切换回的输入法应用的可视化界面,可以看到,在图7的文本框中已经语音输入了文字信息“西单大悦城”。
另外,在实际应用中,也可以额外为语音输入引擎配置一套语音输入设备,这样的话,语音输入引擎无需等待其他应用释放语音输入设备的操作权,从而可以加快语音输入方式的切换速度。
以上为本发明实施例提供的语音输入方法,基于同样的思路,本发明实施例还提供相应的语音输入装置,如图8所示。
图8为本发明实施例提供的语音输入装置结构示意图,具体包括:
接收模块801,用于当接收到输入法应用发送的语音输入指令时,获取语音输入设备的操作权;
采集模块802,用于基于所述操作权,采用所述语音输入设备采集当前环境语音;
识别模块803,用于对采集到的当前环境语音进行语音识别,并将识别出的文字信息返回给所述输入法应用。
所述接收模块801具体用于,判断语音输入设备的操作权是否被其他应用占用,若是,则广播请求消息,以请求所述其他应用释放所述语音输入设备的操作权,当监听到所述其他应用在释放所述语音输入设备的操作权后广播的通知消息时,获取对所述语音输入设备的操作权,否则,获取对所述语音输入设备的操作权。
所述装置还包括:
生成模块804,用于在所述采集模块802基于所述操作权,采用所述语音输入设备采集当前环境语音之前,生成语音输入可视化界面,其中,所述语音输入可视化界面用于展示对当前环境语音进行采集和/或识别的状态。
所述生成模块804具体用于,获取所述输入法应用的可视化界面的尺寸信息,根据所述尺寸信息,生成作为语音输入可视化界面弹出框,其中,所述弹出框内添加有用于展示对当前环境语音进行采集和/或识别的状态的控件。
所述装置还包括:
设置模块805,用于对所述弹出框进行设置,使所述语音输入可视化界面将所述输入法应用的可视化界面重叠覆盖,并位于当前显示屏幕的最上层。
所述设置模块805具体用于,将所述弹出框的类型设置为类型系统告警系统级,再将设置类型后的弹出框添加至窗口管理器中。
具体的上述如图8所示的装置可以位于终端、服务器上,或者位于终端或服务器上的应用内。
本发明实施例中可以通过硬件处理器(hardware processor)来实现上述相关功能模块。
通过本发明实施例提供的语音输入方法及装置,即使用户不方便手动在终端上输入文字信息,也可以通过语音输入文字信息,因此,提高了在终端上输入文字信息的便利性。解决了现有技术在用户不方便手动输入文字信息的应用场景下,在终端上输入文字信息的便利性和效率较差的问题。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。