生成语音测评安装包、执行语音测评的方法及装置与流程

文档序号:24562130发布日期:2021-04-06 12:11阅读:223来源:国知局

本发明涉及信息处理技术领域,特别是涉及一种生成语音测评安装包、执行语音测评的方法及方法。



背景技术:

伴随着幼儿学习外语的人数增长,越来越多的用户选择进行线上外语学习。例如,幼儿在线上进行外语学习、口语练习、外语测试等等。这就使得用户通过本地终端申请语音服务的次数会越来越大,如用户高并发使用语音测评时,频繁和同时请求服务端的语音测评功能,导致服务器压力大,会存在出错可能性大和延迟高的情况。



技术实现要素:

针对于上述问题,本发明提供一种生成语音测评安装包、执行语音测评的方法及装置,实现了减少语音测评延迟及服务器压力的目的。

为了实现上述目的,本发明提供了如下技术方案:

一种生成语音测评安装包的方法,所述方法包括:

对声学模型进行压缩,获得压缩后的声学模型,所述声学模型为由满足发音条件的音频训练得到的,所述声学模型具有能够度待测评的语音进行评分的能力;

获取与所述压缩后的声学模型对应的语音测评代码;

利用交叉工具链对所述语音测评代码进行编译,获得针对目标平台运行的静态库,所述交叉工具链为针对待生成的语音测评安装包对应的交叉编译环境,所述目标平台包括安卓平台和ios平台;

定义所述静态库的对外接口和头文件,生成语音测评安装包。

可选地,所述方法还包括:

创建声学模型,包括:

获得训练样本,所述训练样本为满足发音条件的音频;

对所述训练样本的音频进行分帧,并对分帧后的音频进行特征提取,得到音频特征;

生成所述训练样本的音频的音频标签;

将所述音频特征与所述音频标签进行匹配,得到处理后的训练样本;

通过神经网络模型对所述训练样本进行迭代训练,获得声学模型。

可选地,所述对声学模型进行压缩,包括:对所述声学模型进行剪枝和/或将所述声学模型用定点化表达。

可选地,所述方法还包括:

对所述语音测评安装包进行测试;

若测试结果满足测试条件,对所述语音测评安装包进行发布。

可选地,所述对所述语音测评安装包进行测试,包括:

响应于所述语音测评安装包在本地终端进行执行,获得待测试音频的第一测试结果;

获取服务器端针对所述待测试音频的第二测试结果;

其中,所述若测试结果满足测试条件,对所述语音测评安装包进行发布,包括:

对所述第一测试结果和所述第二测试结果进行比较,获得比较结果;

若所述比较结果满足测试条件,对所述语音测评安装包进行发布。

一种执行语音测评的方法,所述方法包括:

接收针对目标平台对语音测评安装包的加载执行指令,所述语音测评安装包为利用交叉工具链对压缩后的声学模型对应的语音测评代码进行编译得到的安装包;

获取所述语音测评安装包对应的声学模型;

利用所述声学模型对待测试音频进行测试,获得测试结果。

可选地,所述接收针对目标平台对语音测评安装包的加载执行指令之后,所述包括:

对所述加载执行指令进行解析,获得所述语音测评安装包的运行环境;

基于所述运行环境,对所述语音测评安装包进行安装。

一种生成语音测评安装包的装置,所述装置包括:

压缩单元,用于对声学模型进行压缩,获得压缩后的声学模型,所述声学模型为由满足发音条件的音频训练得到的,所述声学模型具有能够度待测评的语音进行评分的能力;

获取单元,用于获取与所述压缩后的声学模型对应的语音测评代码;

编译单元,用于利用交叉工具链对所述语音测评代码进行编译,获得针对目标平台运行的静态库,所述交叉工具链为针对待生成的语音测评安装包对应的交叉编译环境,所述目标平台包括安卓平台和ios平台;

生成单元,用于定义所述静态库的对外接口和头文件,生成语音测评安装包。

一种执行语音测评的装置,所述装置包括:

接收单元,用于接收针对目标平台对语音测评安装包的加载执行指令,所述语音测评安装包为利用交叉工具链对压缩后的声学模型对应的语音测评代码进行编译得到的安装包;

模型获取单元,用于获取所述语音测评安装包对应的声学模型;

测试单元,用于利用所述声学模型对待测试音频进行测试,获得测试结果。

一种电子设备,包括:存储器和处理器;

所述存储器存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述如上中任一项中所述的生成语音测评安装包的方法。

相较于现有技术,本发明提供了一种生成语音测评安装包、执行语音测评的方法及装置,通过对声学模型进行压缩,获取与压缩后的声学模型对应的语音测评代码,利用交叉工具链对所述语音测评代码进行编译,获得针对目标平台运行的静态库,定义所述静态库的对外接口和头文件,生成语音测评安装包。该语音测试安装包可以运行在用户终端本地,由于对声学模型进行压缩使得生成的安装包占用内存较少,从而实现本地语音测评,减少了语音测评延迟和服务器压力。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种生成语音测评安装包的方法的流程示意图;

图2为本发明实施例提供的一种模型剪枝的示意图;

图3为本发明实施例提供的一种执行语音测评的方法的流程示意图;

图4为本发明实施例提供的一种生成语音测评安装包的装置结构示意图;

图5为本发明实施例提供的一种执行语音测评的装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。

在本发明实施例中提供了一种生成语音测评安装包的方法,其为了解决在线少儿英语教育中,并发使用语音测评时,频繁和同时请求服务器端的语音测评功能,导致服务器压力大,出错可能性大和延迟高的情况。生成用于在用户终端可以进行语音测试的安装包,将语音测评功能放在用户终端本地,减小数据传输延迟,减小语音测评延迟,减小服务器压力。

参见图1,所述生成语音测评安装包的方法可以包括以下步骤:

s101、对声学模型进行压缩,获得压缩后的声学模型。

所述声学模型为由满足发音条件的音频训练得到的,所述声学模型具有能够度待测评的语音进行评分的能力,即声学模型是计算声学特征属于各个因素的后验概率。

在本发明实施例中还提供了一种创建声学模型的方法,包括:

获得训练样本,所述训练样本为满足发音条件的音频;

对所述训练样本的音频进行分帧,并对分帧后的音频进行特征提取,得到音频特征;

生成所述训练样本的音频的音频标签;

将所述音频特征与所述音频标签进行匹配,得到处理后的训练样本;

通过神经网络模型对所述训练样本进行迭代训练,获得声学模型。

其中,满足发音条件的音频是指发音良好的音频。该发音条件可以表征发音清晰度的条件,音频速率的条件等。

具体的,训练样本可以是由若干个小时(如100小时)以上的发音良好的音频训练而成。音频先分帧,然后提取特征。例如,每25ms一帧,帧移10ms,特征为40维梅尔倒谱系数(mel-scalefrequencycepstralcoefficients,简称mfcc)。提取特征完成后,将音频文本按字典展开成音素,将每帧按时间平均分割打上音素标签,特征和标签对应后,用时延神经网络tdnn训练得到初始模型,用初始模型维特比强制对应,对音频进行新的对齐,每个音频的音素标签得到后,进行新的训练,得到新的模型,当迭代到一定轮数时,停止训练,得到最终的训练模型。

mfcc是在mel标度频率域提取出来的倒谱参数,mel标度描述了人耳频率的非线性特性,它与频率的关系可用下式近似表示:

上式中f表示频率,单位为hz。

神经网络训练时利用交叉熵不断更新自己的权值,逼近正确结果,是一个计算特征到状态的后验概率的模型。该过程本发明实施例不进行限制,只要是通过迭代更新对模型参数进行调整,使得生成的声学模型的预测概率贴近真实概率。

在本发明实施例中,对声学模型进行压缩,包括:对所述声学模型进行剪枝和/或将所述声学模型用定点化表达。模型压缩的方法一般有知识蒸馏,参数裁剪和参数定点化,本发明实施例中应用了参数裁剪和参数定点化的处理,但不限于这两种处理方式,目的是用少量参数网络代替大量参数的网络但表达功能不降多少在可接受范围。

模型剪枝的处理方式为:

深度网络可以用多层感知机表达,而每层的感知机的作用可以用如下方程式表达:

y=w*x+b

其中,w代表神经网络的参数,x代表神经网络的输入,b代表神经网络的偏移,y代表神经网络的输出,x代表输入。其中w,x,b都是二维矩阵。显然w越大占有的内存越大,如何减少w的维数,神经网络中不是每个结点的位置都同等重要,参见图2把各维度输出都比较小的结点都删除,再重新训练。w的维度和大小就会减小,内存占比就会变小。浅显的表述是剪枝:深度学习模型可以看作是一个复杂树状结构,如果能减去一些对结果没什么影响的旁枝,就可以实现模型的减小。

模型定点化的处理方式为:

模型参数用浮点化表达改为用定点化表达。

大多数网络的参数都是用浮点数表达,一般浮点数在终端占有4个字节,有些终端甚至会用8个字节表达,如果用定点数表达,1个字节表达,内存可以变为原来的1/4,这就是模型定点化。

整数来模拟浮点数其实就是线性的映射,根据数据的动态范围把浮点映射到int8,int16或int32,

比如浮点数a,a=max(abs(a)),若要把a映射成-128~127的数,需要:

a_fix=a*(127/a),即a=a_fix*a/127;

如果b也是同样的浮点数,那么

a*b=a_fix*b_fix*a*b/(127*127)就转化成一个定点运算。

注意a*(127/a)这一步会有精度损失,a_fix*b_fix*a*b/(127*127)这一步有可能溢出。

定点化计算后可能会溢出,这里定点化矩阵计算库我们用谷歌的gemmlowp库来完成矩阵的相乘,它可以很好的完成定点化矩阵相乘的加速,也可以很好的处理溢出问题。

s102、获取与所述压缩后的声学模型对应的语音测评代码。

s103、利用交叉工具链对所述语音测评代码进行编译,获得针对目标平台运行的静态库。

所述交叉工具链为针对待生成的语音测评安装包对应的交叉编译环境,所述目标平台包括安卓平台和ios平台。即本发明实施例中的交叉工具链实现的是跨平台编译。在编译过程中,所有功能和代码都是在linux机子上完成,它是unix操作系统,用户终端是安卓操作平台或者iso平台,他们基于的操作系统是android和ios这个就需要跨平台编译。

跨平台编译先要搭建交叉编译环境,搭建交叉编译环境,即安装、配置交叉编译工具链。在该环境下编译出嵌入式linux系统所需的操作系统、应用程序等,然后再上传到目标机上。安卓各版本和ios各版本都需要各自的交叉环境,每个都需要搭建,工作量多。先搭建一个版本的环境编译测试通过后,再写脚本循环用脚本命令自动循环搭建,节省时间。

s104、定义所述静态库的对外接口和头文件,生成语音测评安装包。

将语音测试代码跨平台编译成能在安卓开发平台和安卓开发平台运行的静态库。然后设计安卓和ios接口完成部分,定义好静态库对外接口和头文件,完成安卓和ios调用本地化语音测评功能。

在本发明实施例中生成语音测评安装包后,需要对语音测评安装包进行测试,然后依据测试结果判断是否对语音测评安装包进行发布还是调试修改。其中,该测试过程是指将语音测评安装包在本地终端进行执行时获得的测试结果与服务端的测试结果进行比较,判断该安装包是否可用。

测试部分主要是判断本地测试功能是否可用,可用包括三个方面稳定性,准确性,和低延迟。稳定性是程序运行不能中途闪退,我们将1万条语句本地打分,发现没有出现任何闪退,而准确性是评价本地测评得到的结果和服务器得到的结果没有偏差,我们用500句测试,得到平均分差在两分以内。延迟测试是统计500句的延迟和服务器打分延迟的偏差,最后本地打分的平均延迟等于服务器平均延迟的0.4。

在本发明实施例中生成的语音测评安装包可以运行在用户终端上无需依赖网络。在本发明中预先训练好声学模型,对模型进行压缩处理,主要是定点化和稀疏表达,通过获取安卓版本和ios版本,然后搜索他们的交叉工具链,用交叉工具链对测评代码进行编译,把测评代码编译成跨平台对静态库,给出头文件和接口,安卓和ios写相应的接口文件,将其打包如已有的apk,即可以安装。将apk安装后,将500句音频在设备端测评端计算和发送服务器端运行得到测评端和服务器端失败率,延迟,分数,对比指标查看是否可用。

对应的,参见图3,在本发明实施例中还提供了一种执行语音测评的方法,可以包括以下步骤:

s201、接收针对目标平台对语音测评安装包的加载执行指令。

所述语音测评安装包为利用交叉工具链对压缩后的声学模型对应的语音测评代码进行编译得到的安装包。

s202、获取所述语音测评安装包对应的声学模型。

s203、利用所述声学模型对待测试音频进行测试,获得测试结果。

在该实施例中执行的语音测评安装包是上述实施例中生成的语音测评安装包。由于该语音测评安装包在编译时对应了不同的操作平台。即在接收到加载执行指令之后,对所述加载执行指令进行解析,获得所述语音测评安装包的运行环境;基于所述运行环境,对所述语音测评安装包进行安装。

在用户本地对所述安装包进行安装后,就可以基于操作平台运行语音测评代码从而调用声学模型,利用该声学模型对待测试音频进行测试,获得测评结果。这样利用终端本身的计算资源,完成基本的语音测评任务,减少服务器的压力,而又省去了音频传输的时间减少延迟。

参见图4,在本发明实施例中还提供了一种生成语音测评安装包的装置,所述装置包括:

压缩单元10,用于对声学模型进行压缩,获得压缩后的声学模型,所述声学模型为由满足发音条件的音频训练得到的,所述声学模型具有能够度待测评的语音进行评分的能力;

获取单元11,用于获取与所述压缩后的声学模型对应的语音测评代码;

编译单元12,用于利用交叉工具链对所述语音测评代码进行编译,获得针对目标平台运行的静态库,所述交叉工具链为针对待生成的语音测评安装包对应的交叉编译环境,所述目标平台包括安卓平台和ios平台;

生成单元13,用于定义所述静态库的对外接口和头文件,生成语音测评安装包。

在上述实施例的基础上,所述装置还包括:

模型创建单元,用于创建声学模型,所述模型创建单元包括:

样本获取子单元,用于获得训练样本,所述训练样本为满足发音条件的音频;

提取子单元,用于对所述训练样本的音频进行分帧,并对分帧后的音频进行特征提取,得到音频特征;

标签生成子单元,用于生成所述训练样本的音频的音频标签;

匹配子单元,用于将所述音频特征与所述音频标签进行匹配,得到处理后的训练样本;

训练子单元,用于通过神经网络模型对所述训练样本进行迭代训练,获得声学模型。

在本发明实施例的基础上,所述压缩单元具体用于:

对所述声学模型进行剪枝和/或将所述声学模型用定点化表达。

在本发明实施例的基础上,所述装置还包括:

测试单元,用于对所述语音测评安装包进行测试;

发布单元,用于若测试结果满足测试条件,对所述语音测评安装包进行发布。

在本发明实施例的基础上,所述测试单元具体用于:

响应于所述语音测评安装包在本地终端进行执行,获得待测试音频的第一测试结果;

获取服务器端针对所述待测试音频的第二测试结果;

其中,所述发布单元具体用于:

对所述第一测试结果和所述第二测试结果进行比较,获得比较结果;

若所述比较结果满足测试条件,对所述语音测评安装包进行发布。

参见图5,在本发明实施例中还提供了一种执行语音测评的装置,所述装置包括:

接收单元20,用于接收针对目标平台对语音测评安装包的加载执行指令,所述语音测评安装包为利用交叉工具链对压缩后的声学模型对应的语音测评代码进行编译得到的安装包;

模型获取单元21,用于获取所述语音测评安装包对应的声学模型;

测试单元22,用于利用所述声学模型对待测试音频进行测试,获得测试结果。

在上述实施例的基础上,所述装置还包括:

解析单元,用于对所述加载执行指令进行解析,获得所述语音测评安装包的运行环境;

安装单元,用于基于所述运行环境,对所述语音测评安装包进行安装。

基于前述实施例,本申请的实施例提供一种计算机可读存储介质,计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如上任一项的生成语音测评安装包的方法的步骤。

本发明实施例还提供了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现的生成语音测评安装包的方法的步骤。

需要说明的是,上述处理器或cpu可以为特定用途集成电路(applicationspecificintegratedcircuit,asic)、数字信号处理器(digitalsignalprocessor,dsp)、数字信号处理装置(digitalsignalprocessingdevice,dspd)、可编程逻辑装置(programmablelogicdevice,pld)、现场可编程门阵列(fieldprogrammablegatearray,fpga)、中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器中的至少一种。可以理解地,实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。

需要说明的是,上述计算机存储介质/存储器可以是只读存储器(readonlymemory,rom)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、磁性随机存取存储器(ferromagneticrandomaccessmemory,fram)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(compactdiscread-onlymemory,cd-rom)等存储器;也可以是包括上述存储器之一或任意组合的各种终端,如移动电话、计算机、平板设备、个人数字助理等。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。

本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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