语音输入方法及装置与流程

文档序号:11153845阅读:374来源:国知局
语音输入方法及装置与制造工艺

本发明涉及语音处理技术领域,尤其涉及一种语音输入方法及装置。



背景技术:

相关技术中,在使用语音输入法进行文字输入时,由于各种编辑器的不同,编码也不同,因此,在进行文字转写时,需要在在不同的编码之间进行转换。



技术实现要素:

本发明实施例提供一种语音输入方法及装置,用以实现能够避开各种编辑器不同编码的困扰。

根据本发明实施例的第一方面,提供一种语音输入方法,包括:

通过语音输入法进程接收用户输入的语音信息;

对所述语音信息进行识别,得到所述语音信息对应的文字信息;

将所述文字信息共享至标准输入法进程;

通过所述标准输入法进程将所述文字信息填写至与所述标准输入法相关联的目标编辑框中。

在该实施例中,使用标准输入法作为中间“桥梁”来实现语音识别结果转写的功能,能够避开各种编辑器不同编码的困扰。

在一个实施例中,所述将所述文字信息共享至标准输入法进程,包括:

通过进程间通信机制将所述文字消息共享至所述标准输入法进程。

在该实施例中,可以通过进程间通信机制将所述文字消息共享至所述标准输入法进程,即通过WM_COPYDATA消息将数据在语音输入法进程和标准输入法进程间共享。

在一个实施例中,所述通过所述标准输入法进程将所述文字信息填写至与所述标准输入法相关联的目标编辑框中,包括:

通过所述标准输入法进程接收并存储所述文字信息,并根据所述文字信息构造所述标准输入法对应的输入法消息;

发送信息调用请求至操作系统,以使所述操作系统根据所述信息调用请求调用所述输入法消息,并将所述输入法消息对应的所述文字信息填写至与所述标准输入法相关联的目标编辑框中。

在一个实施例中,所述根据所述文字信息构造所述标准输入法对应的输入法消息,包括:

根据所述文字信息对所述标准输入法对应的预设结构体对象进行填充,以得到所述标准输入法对应的输入法消息。

在一个实施例中,所述标准输入法的预设结构体对象的填充内容包括所述文字信息的内容、长度和存储位置。在预设结构体中进行填充,这样,方便操作系统根据填充内容,即文字信息的长度和存储位置等快速获取文字信息。

在该实施例中,标准输入法进程在构造输入法消息时,是在接收到语音输入法进程传递的数据之后,对标准输入法规定的结构体LPCOMPOSITIONSTRING对象进行填充,通过消息传递,最终将数据通过标准输入法的途径写入到目标编辑框中。作为文字转写中介的标准输入法不响应键盘消息,其实现是在其内部处理键盘消息接口ImeProcessKey中直接返回FALSE,达到不对键盘消息进行处理的目的。

在实现过程中,需要在系统提供的结构体LPINPUTCONTEXT中增加一个成员变量BOOL isProess,将其赋值为TRUE,以此告诉操作系统调用ImeToAsciiEx接口函数,在此接口中通过自定义函数MyGenerateMessage来实现输入法消息的构造,并将数据锁定到IMC缓存当中,最后通过接口函数ImmGenerateMessage将数据发送至与当前输入法相关联的编辑框中。

根据本发明实施例的第二方面,提供一种语音输入装置,包括:

接收模块,用于通过语音输入法进程接收用户输入的语音信息;

识别模块,用于对所述语音信息进行识别,得到所述语音信息对应的文字信息;

共享模块,用于将所述文字信息共享至标准输入法进程;

填写模块,用于通过所述标准输入法进程将所述文字信息填写至与所述标准输入法相关联的目标编辑框中。

在一个实施例中,所述共享模块用于:

通过进程间通信机制将所述文字消息共享至所述标准输入法进程。

在一个实施例中,所述填写模块包括:

构造子模块,用于通过所述标准输入法进程接收并存储所述文字信息,并根据所述文字信息构造所述标准输入法对应的输入法消息;

发送子模块,用于发送信息调用请求至操作系统,以使所述操作系统根据所述信息调用请求调用所述输入法消息,并将所述输入法消息对应的所述文字信息填写至与所述标准输入法相关联的目标编辑框中。

在一个实施例中,所述构造子模块用于:

根据所述文字信息对所述标准输入法对应的预设结构体对象进行填充,以得到所述标准输入法对应的输入法消息。

在一个实施例中,所述标准输入法的预设结构体对象的填充内容包括所述文字信息的内容、长度和存储位置。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种语音输入方法的流程图。

图2是根据一示例性实施例示出的另一种语音输入方法的流程图。

图3是根据一示例性实施例示出的另一种语音输入方法的流程图。

图4是根据一示例性实施例示出的一种语音输入装置的框图。

图5是根据一示例性实施例示出的一种语音输入装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种语音输入方法的流程图。该语音输入方法应用于终端设备中,该终端设备可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等任一具有语音控制功能的设备。如图1所示,该方法包括步骤S101-S104:

在步骤S101中,通过语音输入法进程接收用户输入的语音信息;

在步骤S102中,对语音信息进行识别,得到语音信息对应的文字信息;

在步骤S103中,将文字信息共享至标准输入法进程;

在步骤S104中,通过标准输入法进程将文字信息填写至与标准输入法相关联的目标编辑框中。

在该实施例中,使用标准输入法作为中间“桥梁”来实现语音识别结果转写的功能,能够避开各种编辑器不同编码的困扰。

图2是根据一示例性实施例示出的另一种语音输入方法的流程图。

如图2所示,在一个实施例中,上述步骤S103包括步骤S201:

在步骤S201中,通过进程间通信机制将文字消息共享至标准输入法进程。

在该实施例中,可以通过进程间通信机制将文字消息共享至标准输入法进程,即通过WM_COPYDATA消息将数据在语音输入法进程和标准输入法进程间共享。

图3是根据一示例性实施例示出的另一种语音输入方法的流程图。

如图3所示,在一个实施例中,上述步骤S104包括步骤S301-S302:

在步骤S301中,通过标准输入法进程接收并存储文字信息,并根据文字信息构造标准输入法对应的输入法消息;

其中,根据文字信息构造标准输入法对应的输入法消息,包括:

根据文字信息对标准输入法对应的预设结构体对象进行填充,以得到标准输入法对应的输入法消息。

在步骤S302中,发送信息调用请求至操作系统,以使操作系统根据信息调用请求调用输入法消息,并将输入法消息对应的文字信息填写至与标准输入法相关联的目标编辑框中。

在一个实施例中,标准输入法的预设结构体对象的填充内容包括文字信息的内容、长度和存储位置。在预设结构体中进行填充,这样,方便操作系统根据填充内容,即文字信息的长度和存储位置等快速获取文字信息。

在该实施例中,标准输入法进程在构造输入法消息时,是在接收到语音输入法进程传递的数据之后,对标准输入法规定的结构体LPCOMPOSITIONSTRING对象进行填充,通过消息传递,最终将数据通过标准输入法的途径写入到目标编辑框中。作为文字转写中介的标准输入法不响应键盘消息,其实现是在其内部处理键盘消息接口ImeProcessKey中直接返回FALSE,达到不对键盘消息进行处理的目的。

在实现过程中,需要在系统提供的结构体LPINPUTCONTEXT中增加一个成员变量BOOL isProess,将其赋值为TRUE,以此告诉操作系统调用ImeToAsciiEx接口函数,在此接口中通过自定义函数MyGenerateMessage来实现输入法消息的构造,并将数据锁定到IMC缓存当中,最后通过接口函数ImmGenerateMessage将数据发送至与当前输入法相关联的编辑框中。

下述为本发明装置实施例,可以用于执行本发明方法实施例。

图4是根据一示例性实施例示出的一种语音输入装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为终端设备的部分或者全部。如图4所示,该语音处理装置包括:

接收模块41,用于通过语音输入法进程接收用户输入的语音信息;

识别模块42,用于对所述语音信息进行识别,得到所述语音信息对应的文字信息;

共享模块43,用于将所述文字信息共享至标准输入法进程;

填写模块44,用于通过所述标准输入法进程将所述文字信息填写至与所述标准输入法相关联的目标编辑框中。

在该实施例中,使用标准输入法作为中间“桥梁”来实现语音识别结果转写的功能,能够避开各种编辑器不同编码的困扰。

在一个实施例中,所述共享模块43用于:

通过进程间通信机制将所述文字消息共享至所述标准输入法进程。

在该实施例中,可以通过进程间通信机制将所述文字消息共享至所述标准输入法进程,即通过WM_COPYDATA消息将数据在语音输入法进程和标准输入法进程间共享。

图5是根据一示例性实施例示出的一种语音输入装置的框图。

如图5所示,在一个实施例中,所述填写模块44包括:

构造子模块51,用于通过所述标准输入法进程接收并存储所述文字信息,并根据所述文字信息构造所述标准输入法对应的输入法消息;

发送子模块52,用于发送信息调用请求至操作系统,以使所述操作系统根据所述信息调用请求调用所述输入法消息,并将所述输入法消息对应的所述文字信息填写至与所述标准输入法相关联的目标编辑框中。

在一个实施例中,所述构造子模块51用于:

根据所述文字信息对所述标准输入法对应的预设结构体对象进行填充,以得到所述标准输入法对应的输入法消息。

在一个实施例中,所述标准输入法的预设结构体对象的填充内容包括所述文字信息的内容、长度和存储位置。在预设结构体中进行填充,这样,方便操作系统根据填充内容,即文字信息的长度和存储位置等快速获取文字信息。

在该实施例中,标准输入法进程在构造输入法消息时,是在接收到语音输入法进程传递的数据之后,对标准输入法规定的结构体LPCOMPOSITIONSTRING对象进行填充,通过消息传递,最终将数据通过标准输入法的途径写入到目标编辑框中。作为文字转写中介的标准输入法不响应键盘消息,其实现是在其内部处理键盘消息接口ImeProcessKey中直接返回FALSE,达到不对键盘消息进行处理的目的。

在实现过程中,需要在系统提供的结构体LPINPUTCONTEXT中增加一个成员变量BOOL isProess,将其赋值为TRUE,以此告诉操作系统调用ImeToAsciiEx接口函数,在此接口中通过自定义函数MyGenerateMessage来实现输入法消息的构造,并将数据锁定到IMC缓存当中,最后通过接口函数ImmGenerateMessage将数据发送至与当前输入法相关联的编辑框中。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1