CN113593538A - 语音特征的分类方法、相关设备及可读存储介质 - Google Patents

语音特征的分类方法、相关设备及可读存储介质 Download PDF

Info

Publication number
CN113593538A
CN113593538A CN202111025989.8A CN202111025989A CN113593538A CN 113593538 A CN113593538 A CN 113593538A CN 202111025989 A CN202111025989 A CN 202111025989A CN 113593538 A CN113593538 A CN 113593538A
Authority
CN
China
Prior art keywords
floating
classification
point type
type calculation
classification layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111025989.8A
Other languages
English (en)
Other versions
CN113593538B (zh
Inventor
李良斌
陈孝良
李智勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing SoundAI Technology Co Ltd
Original Assignee
Beijing SoundAI Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing SoundAI Technology Co Ltd filed Critical Beijing SoundAI Technology Co Ltd
Priority to CN202111025989.8A priority Critical patent/CN113593538B/zh
Publication of CN113593538A publication Critical patent/CN113593538A/zh
Application granted granted Critical
Publication of CN113593538B publication Critical patent/CN113593538B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本公开提供一种语音特征的分类方法、相关设备及可读存储介质。语音特征分方法包括:获取语音数据;从语音数据中提取语音特征;将语音特征输入第一网络模型,得到语音特征的分类结果;其中,多个分类层中,每个分类层,用于:确定分类层的每个浮点型计算参数对应的调整系数;基于调整系数将浮点型计算参数的数据类型由浮点型转换为整型;基于数据类型为整型的浮点型计算参数执行本层的运算,得到分类层的输出结果。本公开可以使得基于数据类型为整型的所述浮点型计算参数运算得到的输出结果,更接近基于数据类型为浮点型的所述浮点型计算参数运算得到的输出结果,可减小分类层的计算误差,进而可提高网络模型输出的语音特征的分类结果的可靠性。

Description

语音特征的分类方法、相关设备及可读存储介质
技术领域
本公开实施例涉及神经网络技术领域,尤其涉及一种语音特征的分类方法、相关设备及可读存储介质。
背景技术
目前随着语音技术在智能IoT设备上的不断丰富,神经网络计算成为越来越多智能设备的必备技术。
相关技术中,为了在嵌入式设备上实现复杂的神经网络模型计算,需要在设备上部署神经网络模型,例如在语音唤醒工作时,可以基于语音特征得到语音特征的分类结果,分类结果可以用来确定是否唤醒,语音特征的分类结果可以通过深度神经网络(DeepNeural Network,DNN)以及卷积神经网络(Convolutional Neural Network,CNN)等神经网络运算得到。
相关技术中,为了能在一些平台上部署深度学习网络,并对深度学习网络中的整形运算实现加速,需要实现完全定点化的模型运算,即直接通过取整将浮点型计算参数的数据转化为整型,这样容易造成分类层的计算误差大,进而导致输出的语音特征的分类结果的可靠性较低,从而导致模型的识别准确率下降,出现误识别。
发明内容
本公开实施例提供一种语音特征的分类方法、相关设备及可读存储介质,以解决现有技术中输出的语音特征的分类结果的可靠性较低的问题。
为解决上述问题,本公开是这样实现的:
第一方面,本公开实施例提供了一种语音特征分类方法,包括:
获取语音数据;
从所述语音数据中提取语音特征;
将所述语音特征输入第一网络模型,得到所述语音特征的分类结果;
其中,所述第一网络模型包括依次连接的多个分类层,多个所述分类层中的第一个所述分类层的输入为所述语音特征,多个所述分类层中除最后一个所述分类层之外的每个所述分类层的输出为各自后一个所述分类层的输入,最后一个所述分类层的输出为所述语音特征的分类结果;
多个所述分类层中,每个所述分类层,用于:
确定所述分类层的每个浮点型计算参数对应的调整系数;
基于所述调整系数将所述浮点型计算参数的数据类型由浮点型转换为整型;
基于数据类型为整型的所述浮点型计算参数执行本层的运算,得到所述分类层的输出结果。
第二方面,本公开实施例还提供一种语音特征分类装置,包括:
第一获取模块,用于获取语音数据;
提取模块,用于从所述语音数据中提取语音特征;
第二获取模块,用于将所述语音特征输入第一网络模型,得到所述语音特征的分类结果;
其中,所述第一网络模型包括依次连接的多个分类层,多个所述分类层中的第一个所述分类层的输入为所述语音特征,多个所述分类层中除最后一个所述分类层之外的每个所述分类层的输出为各自后一个所述分类层的输入,最后一个所述分类层的输出为所述语音特征的分类结果;
多个所述分类层中,每个所述分类层,用于:
确定所述分类层的每个浮点型计算参数对应的调整系数;
基于所述调整系数将所述浮点型计算参数的数据类型由浮点型转换为整型;
基于数据类型为整型的所述浮点型计算参数执行本层的运算,得到所述分类层的输出结果。
第三方面,本公开实施例还提供一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如上所述的语音特征分类方法的步骤。
第四方面,本公开实施例还提供一种可读存储介质,该可读存储介质上存储有程序,所述程序被处理器执行时实现如上所述的应用于电子设备的语音特征分类方法的步骤。
在本公开实施例中,网络模型的分类层在计算时,可以基于所述分类层的每个浮点型计算参数对应的调整系数,将所述浮点型计算参数的数据类型由浮点型转换为整型,然后基于数据类型为整型的所述浮点型计算参数执行本层的运算,得到所述分类层的输出结果。这样,可以使得基于数据类型为整型的所述浮点型计算参数运算得到的输出结果,更接近基于数据类型为浮点型的所述浮点型计算参数运算得到的输出结果,可以减小分类层的计算误差,进而可以提高网络模型输出的语音特征的分类结果的可靠性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
图1是根据一示例性实施例示出的语音特征分类方法的流程图;
图2是根据一示例性实施例示出的语音特征分类装置的结构图;
图3是根据一示例性实施例示出的电子设备的结构图。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本公开实施例的语音特征分类方法可以由电子设备执行。所述电子设备可以为嵌入第一网络模型的电子设备,具体地,所述电子设备可以为arm嵌入式设备,也可以为dsp嵌入式设备,具体可以根据实际情况确定,本公开实施例对此不做限定。
如图1所示,本公开实施例的语音特征分类方法可以包括以下步骤:
在步骤101中,获取语音数据。
具体实现时,电子设备可以基于接收到的语音输入,获取语音数据。
在步骤102中,从所述语音数据中提取语音特征。
具体时间时,电子设备可以按照预设频率从所述语音数据中提取出至少一个语音特征,如电子设备可以每10毫秒进行一次语音特征的提取。所述语音特征可以是40维梅尔倒谱系数(Mel-scale Frequency Cepstral Coefficients,MFCC)特征,但不仅限于此。
在步骤103中,将所述语音特征输入第一网络模型,得到所述语音特征的分类结果。
可以理解地是,在从所述语音数据中提取出多个语音数据的情况下,电子设备可以依次将该多个语音数据输入所述第一网络模型,得到与该多个语音数据一一对应的分类结果。所述分类结果可以是音素或者是概率密度函数的序号(pdf-id)。
电子设备可以将所述语音数据中提取出的全部语音特征的分类结果输入至唤醒网络模型中,以确定所述语音输入是否能够唤醒所述电子设备。
以下对所述第一网络模型进行说明。
所述第一网络模型包括依次连接的多个分类层,多个所述分类层中的第一个所述分类层的输入为所述语音特征,多个所述分类层中除最后一个所述分类层之外的每个所述分类层的输出为各自后一个所述分类层的输入,最后一个所述分类层的输出为所述语音特征的分类结果;
多个所述分类层中,每个所述分类层,用于:
确定所述分类层的每个浮点型计算参数对应的调整系数;
基于所述调整系数将所述浮点型计算参数的数据类型由浮点型转换为整型;
基于数据类型为整型的所述浮点型计算参数执行本层的运算,得到所述分类层的输出结果。
分类层的浮点型计算参数,可以包括以下至少一项:权重参数W_i;输入参数x_i;残差(bias)向量b_i。在本公开实施例中,浮点型计算参数对应的调整系数可以预先设置,也可以基于浮点型计算参数的特征信息确定,浮点型计算参数的特征信息可以但不仅限于包括浮点型计算参数的以下至少一项:取值范围;目标位宽。
在浮点型计算参数对应的调整系数基于浮点型计算参数的特征信息确定的情况下,可选地,电子设备可以预先存储有浮点型计算参数的特征信息与调整系数之间的第一对应关系,在此情况下,对于每个所述浮点型计算参数,电子设备在确定该浮点型计算参数的特征信息之后,可以通过查找上述第一对应关系,将所述第一对应关系中与该浮点型计算参数的特征信息对应的调整系数确定为该浮点型计算参数对应的调整系数。
需要说明的是,不用的浮点型计算参数可以相同或不同,具体可根据实际情况确定,本公开实施例对此不做限定。
每个所述分类层在确定该分类层的每个浮点型计算参数对应的调整系数之后,可以基于所述调整系数将所述浮点型计算参数的数据类型由浮点型转换为整型。
第一种可选实施方式中,数据类型为整型的所述浮点型计算参数可以通过取整数据类型为浮点型的所述浮点型计算参数与所述调整系数的乘积得到。
第二种可选实施方式中,数据类型为整型的所述浮点型计算参数可以通过取整数据类型为浮点型的所述浮点型计算参数与所述调整系数的商得到。
第三种可选实施方式中,基于所述调整系数将所述浮点型计算参数的数据类型由浮点型转换为整型,可以理解为:基于所述调整系数对所述浮点型计算参数进行量化或定点化。基于调整系数对浮点型计算参数进行量化的实现,具体可参见下述描述,此处不作描述。
需要说明的是,不同的浮点型计算参数,基于所述调整系数将所述浮点型计算参数的数据类型由浮点型转换为整型的方式可以相同也可以不同,如:对于浮点型计算参数1,可以通过上述第一种可选实施方式得到;对于浮点型计算参数2,可以通过上述第二种可选实施方式得到。
在本公开实施例中,每个所述分类层的输出结果基于由调整系数转换得到的数据类型为整型的浮点型计算参数运算得到,可以使得运算结果更接近基于数据类型为浮点型的所述浮点型计算参数运算得到的输出结果,可以减小分类层的计算误差,进而可以提高网络模型输出的语音特征的分类结果的可靠性。
本公开实施例的语音特征分类方法,网络模型的分类层在计算时,可以基于所述分类层的每个浮点型计算参数对应的调整系数,将所述浮点型计算参数的数据类型由浮点型转换为整型,然后基于数据类型为整型的所述浮点型计算参数执行本层的运算,得到所述分类层的输出结果。这样,可以使得基于数据类型为整型的所述浮点型计算参数运算得到的输出结果,更接近基于数据类型为浮点型的所述浮点型计算参数运算得到的输出结果,可以减小分类层的计算误差,进而可以提高网络模型输出的语音特征的分类结果的可靠性。
可选地,所述确定所述分类层的每个浮点型计算参数对应的调整系数,包括:
确定所述分类层的浮点型计算参数对应的取值范围和目标位宽;
根据所述取值范围和所述目标位宽,确定所述浮点型计算参数对应的调整系数。
在本可选实施方式中,电子设备可以预先存储有浮点型计算参数的取值范围、目标位宽以及调整系数之间的第二对应关系,这样,电子设备在获取到某个浮点型计算参数的取值范围和目标位宽之后,可以通过查找上述第二对应关系,确定该浮点型计算参数对应的调整系数。确定的浮点型计算参数对应的调整系数可以满足:利用所述调整系数将所述浮点型计算参数的数据类型由浮点型转换为整型后,所述浮点型计算参数的取值范围与所述目标位宽匹配。
在本公开实施例中,电子设备在利用某网络模型进行语音特征的分类之前,可以先对该网络模型的浮点型计算参数进行训练,之后利用训练好的网络模型进行语音特征的分类,这样,可以使得语音特征的分类结果更接近真实结果,进而提高网络模型输出的语音特征的分类结果的可靠性。
可选地,所述将所述语音特征输入第一网络模型,得到所述语音特征的分类结果之前,所述方法还包括:
对第二网络模型的每个分类层的参数进行训练,得到所述第一网络模型;
其中,所述对第二网络模型的每个分类层的参数进行训练,包括:
确定所述第二网络模型的各个所述分类层的每个浮点型计算参数对应的调整系数;
基于所述调整系数训练对应的所述浮点型计算参数。
在本可选实施方式中,所述第一网络模型通过对第二网络模型的分类层的参数进行训练得到。所述第一网络模型可以理解为更新后的第二网络模型,更新的是参数,即第二网络模型与第一网络模型的结构相同,区别在于参数不同。
需要说明的是,一种实现方式中,第二网络模型可以为收敛的第二网络模型,即电子设备可以先对第二网络模型进行收敛训练,直到所述第二网络模型收敛之后,才执行本可选实施方式对收敛后的第二网络模型中的参数进行训练,得到第一网络模型。另一种实现方式中,第二网络模型可以为未收敛的第二网络模型,电子设备可以同时对第二网络模型进行收敛训练,以及参数训练,得到第一网络模型。
另外,电子设备可以对第二网络模型的每个分类层的所述浮点型计算参数进行k次训练,k为正整数,即可以基于所述调整系数对所述浮点型计算参数执行k次训练,直至训练得到的所述浮点型计算参数的计算准确度达到预设阈值,第k次训练得到的所述浮点型计算参数可以理解为训练好的所述浮点型计算参数。这样训练得到的网络模型能够进行近似无损的参数量化,能够提高网络模型量化的计算精度,从而使量化的网络模型能够更好地应用到嵌入式设备中,最低程度影响模型效果,以离线自动语音识别(Automatic SpeechRecognition,ASR)为例,能够较好地解决因模型量化误差带来的识别准确率下降/误识别提高问题。
所述第二网络模型可以为任意结构和/或量化需求的网络模型,结构可以基于以下至少一项参数确定:特征输入维数、节点数目、隐层类型、激活函数类型;量化需求可以为对模型进行16bit或8bit量化等。即本公开实施例对网络模型的结构和/或量化需求不挑剔。
以下对所述浮点型计算参数的训练进行说明。
需要说明的是,训练过程中每个浮点型计算参数对应的调整系数,与语音特征分类过程中每个浮点型计算参数对应的调整系数的确定方式相同,具体可参见前述相关描述,此处不再赘述。
在确定各个所述分类层的每个浮点型计算参数对应的调整系数之后,可以基于所述调整系数训练(如调整)对应的所述浮点型计算参数的数据。训练好的所述浮点型参数的数据类型可以为浮点型数据,也可以为整型数据,具体可以根据实际情况确定,本公开实施例对此不做限定。
需要说明的是,本公开实施例并不限定电子设备利用所述调整系数训练浮点型计算参数的具体方式,但电子设备在利用所述调整系数对浮点型计算参数进行训练后,可以使得利用训练后的浮点型计算参数进行量化计算时量化取整前的数据相比于利用训练前的浮点型计算参数进行量化计算时量化取整前的数据更接近整型数据,从而可以降低网络模型的量化误差,从而可以提高网络模型的可靠性。
对于前述k次训练中的任一次训练,具体可通过以下方式实现:
可选地,所述基于所述调整系数训练对应的所述浮点型计算参数,包括:
基于所述调整系数对所述浮点型计算参数进行量化;
基于所述调整系数对量化后的所述浮点型计算参数进行反量化。
具体实现时,电子设备可以基于所述调整系数确定所述浮点型计算参数对应的量化函数和反量化函数,通过该量化函数对所述浮点型计算参数进行量化,再利用该反量化函数对量化后的所述浮点型计算参数进行反量化。可以理解地是,量化函数的输入值为所述浮点型计算参数的数据,输出值为量化后的所述浮点型计算参数的数据;反量化函数的输入值为量化后的所述浮点型计算参数的数据,输出值为训练好的所述浮点型计算参数的数据。
一种实现方式中,量化函数可以仅基于所述调整系数确定。
另一种实现方式中,可选地,所述基于所述调整系数对所述浮点型计算参数进行量化,包括:
基于所述调整系数,以及所述浮点型计算参数对应的取值范围和目标位宽,确定量化函数;
基于所述量化函数对所述浮点型计算参数进行量化。
在此实现方式中,量化函数还进一步基于所述浮点型计算参数对应的取值范围和目标位宽确定,这样可以使得量化后的所述浮点型计算参数的取值范围与所述目标位宽匹配,从而可以降低量化误差。
示例性的,假设所述浮点型计算参数对应的调整系数为2.49。
若所述第一参数的取值范围是-1.0至100.0;目标位宽是8比特(bit),即将该浮点数转换成int8整数,目标位宽对应的取值范围为-128至127。那么,所述浮点型计算参数对应的量化函数可以表现为:\nu(f)=\round{s×f}-122。
若所述浮点型计算参数的取值范围是-1.0至100.0;目标位宽是7比特(bit),即将该浮点数转换成int7整数,目标位宽对应的取值范围为-64至63。那么,所述第一参数对应的量化函数可以表现为:\nu(f)=\round{f/s}。
其中,f表示所述第一参数,s表示所述第一参数对应的调整系数。
电子设备在确定所述浮点型计算参数对应的量化函数之后,可以基于该量化函数确定所述浮点型计算参数对应的反量化函数。具体实现时,可以通过将量化函数中的调整系数调整为调整系数的倒数,将量化函数中的round函数转化为float函数,得到反量化函数。
示例性的,在所述浮点型计算参数对应的量化函数为:\nu(f)=\round{s×f}-122的情况下,所述浮点型计算参数对应的反量化函数为:new(f)=float[(\nu(f)+122)/s]。
在所述浮点型计算参数对应的量化函数为:\nu(f)=\round{f/s}的情况下,所述浮点型计算参数对应的反量化函数为:new(f)=float[(\nu(f)×s]。
在本公开实施例中,可选地,所述基于所述调整系数对所述浮点型计算参数进行量化,包括:
对所述浮点型计算参数的数据进行归一化处理;
对所述归一化处理后的浮点型计算参数进行量化。
在本可选实施方式中,电子设备可以先对浮点型计算参数进行归一化处理,之后,利用所述调整系数对归一化的浮点型计算参数进行量化,得到量化后的浮点型计算参数,从而可以降低浮点型计算参数量化的复杂度。
具体实现时,电子设备可以通过任意归一化方式对浮点型计算参数进行归一化处理,本公开实施例对此不做限定。可选地,可以通过如下公式对浮点型计算参数进行归一化处理:f(j)^{\tilde}=f(j)/\max_j{|f(j)|},其中,f(j)表示f中第j个元素,\max_j表述取最大。
为方便理解本公开实施例,以下结合一个具体的应用场景进行说明,但可以理解地是,该应用场景并不用于限定本公开实施例的适用范围。
获取语音数据,例如HI小易。
提取语音数据的语音特征,例如HI小易是1秒内发出的,每10ms进行一次提取,则得到100个时间点的特征。特征可以是40维mfcc特征。
每个时间点的特征输入到DNN网络模型中后,第一层对特征分类进行处理,得到对应的输出结果,神经网络的参数为浮点型数据,由于设备的要求,必须转为整型。若直接转,会将误差带入之后的网络。此时,我们计算DNN网络模型的浮点型计算参数的调整系数,并训练调整前的参数,这样调整系数可将训好的浮点型数据转换为整型数据,同时保证预测准确。再与上一层的输入运算,得到下一层的输入。每一层都做此类变换。最后得到该语音特征的分类结果。分类结果可以是音素或者是pdfid。
每个时间点的特征的分类结果可输入到唤醒网络中,从而判断是否唤醒。
需要说明的是,本公开实施例中介绍的多种可选的实施方式,在彼此不冲突的情况下可以相互结合实现,也可以单独实现,对此本公开实施例不作限定。
为方便理解,示例说明如下:
考虑某个DNN模型中的某一个隐层i,该隐层的计算量集中于核心(kernel)运算:W_ix_i+b_i,其中W_i代表kernel的权重(weight)矩阵,x_i代表输入特征向量,b_i代表kernel的残差(bias)向量。
模型量化计算过程中,会将W_i,x_i,及b_i分别量化成整型数据,然后利用嵌入式设备的硬件运行加速指令对上面的计算进行加速。量化的误差主要来源于W_i,x_i,及b_i在转化为整型数计算后的结果与原浮点结果的量化误差,同时这个量化误差会传递到下面的其它隐层,会被逐步放大,使网络的整体量化误差较大,从而影响最终模型的效果。
以8bit中心量化为例,假设w_i^{max}代表W_i绝对值最大的元素,那么8bit量化的权重矩阵可以表示成W_i^{s8},它的第(k,j)元素W_i^{s8}(k,j)=round(127W_i(k,j)/w_i^{max})其中round代表对浮点数取整操作,这样量化后的权重矩阵元素都分布在(-128,127)之间,实现了从浮点数到8bit整数的量化过程;对输入向量进行同样的量化操作,记作x_i^{s8},元素绝对值最大值x_i^{max};为了保证整型计算不溢出,需要将W_i^{s8}与x_i^{s8}相乘的结果保存到更宽的整型数里面,即b_i需要采用更宽的量化数据。这里涉及一个量化宽度和计算速度的折中问题,在嵌入式设备上面约窄的整型能够使用硬件加速指令(如arm neon)进行越快的计算,同时很多嵌入式设备的整型运算会比浮点运算速度快很多(如dsp平台),因此b_i的量化宽度需要尽可能窄,比如16bit或32bit,这就需要W_i^{s8}与x_i^{s8}相乘再与量化的b_i的计算结果要尽可能不溢出,从而降低量化误差。而在很多应用场景,输入特征向量x_i很难保证分布比较均匀,同时训练得到的浮点参数也难以保障是均匀分布的,因此实际中经常遇到量化的W_i^{s8}与x_i^{s8}因数据分布不均匀导致的计算误差较大问题。
为此,本示例在模型训练阶段即考虑量化带来的影响。以上述第i层为例,当模型训练迭代W_i时,可以先缩小W_i的值的分布范围,在训练中该层的权重转换成W_i^{\tilde},以降低W_i的处理复杂度。
同时考虑到该层的输入x_i,假设要对输入和权重进行位宽为Q的整数的量化,那么对于浮点数f定义量化取值率函数\nu(f),该函数定义需要事先对输入值的取值范围做概率统计,以x_i为例,假设其取值范围是-1.0至100.0,目标位宽是8bit,即将该浮点数转换成int8整数,那么可以定义\nu(f)为:
\nu(f)=\round{2.49f}
那么输入x_i变为:
x_i^{(q)}=\round{2.49x_i}-122
那么相应地对W_i^{\tilde}做运算:
W_i^{(q)}=\round{W_i^{\tilde}/2.49}
其中\round{}表示对浮点数取整,例如\round{1.5}=2,\round{3.4}=3。
通用地表示,将位宽Q对应的调整参数计为s(Q),那么模型训练迭代中对W_i及x_i的量化感知调整为:
x_i^{(q)}=\round{s(Q)x_i}
x_i^{new}=float(x_i^{(q)})/s(Q)
W_i^{(q)}=\round{W_i^{\tilde}/s(Q)}
W_i^{new}=float(W_i^{(q)})s(Q)
即使用W_i^{new}及x_i^{new}作为此次调整后的训练参数进行迭代。
其余训练参数可以按正常继续,这样不断迭代,可以发现,每一次迭代的参数经过上面的调整,能够把量化误差带入到模型迭代优化中,即能够使最终训练得到的模型对量化误差不敏感。在实际部署经过上述量化感知训练的深度网络模型,能够极大地降低量化误差和误差传导。
因此不难发现,只要将训练得到的网络的各个隐层参数预先进行上面的处理,即可得到等效的计算隐层,只需要在此基础上进行网络量化即可。
针对拥有DNN模型应用的嵌入式设备,典型实施示例可以包括:
在arm嵌入式设备上面,利用上述量化方法将浮点DNN模型进行量化,在设备上利用arm neon指令进行运算加速,与运行浮点模型相比得到更低的功耗;
在dsp嵌入式设备上面,利用上述量化方法将浮点DNN模型进行量化,在设备上利用hifi指令进行运算加速,保障能够使用较低的内存运行较大的模型。
可见,本公开实施例可以降低网络模型量化误差,使用量化模型能够更好地提高嵌入式设备模型计算速度,提升效果;本公开实施例对网络进行训练时,不需要对训练端做调整,从而可以拓展模型的使用范围。
参见图2,图2是根据一示例性实施例示出的语音特征分类装置的结构图。如图2所示,语音特征分类装置200包括:
第一获取模块201,用于获取语音数据;
提取模块202,用于从所述语音数据中提取语音特征;
第二获取模块203,用于将所述语音特征输入第一网络模型,得到所述语音特征的分类结果;
其中,所述第一网络模型包括依次连接的多个分类层,多个所述分类层中的第一个所述分类层的输入为所述语音特征,多个所述分类层中除最后一个所述分类层之外的每个所述分类层的输出为各自后一个所述分类层的输入,最后一个所述分类层的输出为所述语音特征的分类结果;
多个所述分类层中,每个所述分类层,用于:
确定所述分类层的每个浮点型计算参数对应的调整系数;
基于所述调整系数将所述浮点型计算参数的数据类型由浮点型转换为整型;
基于数据类型为整型的所述浮点型计算参数执行本层的运算,得到所述分类层的输出结果。
可选地,所述语音特征的分类装置200还包括:
训练模块,用于对第二网络模型的每个分类层的参数进行训练,得到所述第一网络模型;
其中,所述训练模块,包括:
确定子模块,用于确定所述第二网络模型的各个所述分类层的每个浮点型计算参数对应的调整系数;
训练子模块,用于基于所述调整系数训练对应的所述浮点型计算参数。
可选地,所述训练子模块,包括:
量化单元,用于基于所述调整系数对所述浮点型计算参数进行量化;
反量化单元,用于基于所述调整系数对量化后的所述浮点型计算参数进行反量化。
可选地,所述量化单元,具体用于:
基于所述调整系数,以及所述浮点型计算参数对应的取值范围和目标位宽,确定量化函数;
基于所述量化函数对所述浮点型计算参数进行量化。
可选地,所述量化单元,具体用于:
对所述浮点型计算参数的数据进行归一化处理;
对所述归一化处理后的浮点型计算参数进行量化。
可选地,所述确定子模块,包括:
第一确定单元,用于确定所述分类层的浮点型计算参数对应的取值范围和目标位宽;
第二确定单元,用于根据所述取值范围和所述目标位宽,确定所述浮点型计算参数对应的调整系数。
语音特征分类装置200能够实现图1方法实施例的各个过程,以及达到相同的有益效果,为避免重复,这里不再赘述。
参见图3,图3是根据一示例性实施例示出的电子设备的结构图。如图3所示,电子设备300包括:处理器301、存储器302、用户接口303、收发机304和总线接口。
其中,在本公开实施例中,电子设备300还包括:存储在存储器302上并可在处理器301上运行的程序,程序被处理器301执行时实现如下步骤:
获取语音数据;
从所述语音数据中提取语音特征;
将所述语音特征输入第一网络模型,得到所述语音特征的分类结果;
其中,所述第一网络模型包括依次连接的多个分类层,多个所述分类层中的第一个所述分类层的输入为所述语音特征,多个所述分类层中除最后一个所述分类层之外的每个所述分类层的输出为各自后一个所述分类层的输入,最后一个所述分类层的输出为所述语音特征的分类结果;
多个所述分类层中,每个所述分类层,用于:
确定所述分类层的每个浮点型计算参数对应的调整系数;
基于所述调整系数将所述浮点型计算参数的数据类型由浮点型转换为整型;
基于数据类型为整型的所述浮点型计算参数执行本层的运算,得到所述分类层的输出结果。
可选地,程序被处理器301执行时实现如下步骤:
对第二网络模型的每个分类层的参数进行训练,得到所述第一网络模型;
其中,所述对第二网络模型的每个分类层的参数进行训练,包括:
确定所述第二网络模型的各个所述分类层的每个浮点型计算参数对应的调整系数;
基于所述调整系数训练对应的所述浮点型计算参数。
可选地,程序被处理器301执行时实现如下步骤:
基于所述调整系数对所述浮点型计算参数进行量化;
基于所述调整系数对量化后的所述浮点型计算参数进行反量化。
可选地,程序被处理器301执行时实现如下步骤:
基于所述调整系数,以及所述浮点型计算参数对应的取值范围和目标位宽,确定量化函数;
基于所述量化函数对所述浮点型计算参数进行量化。
可选地,程序被处理器301执行时实现如下步骤:
对所述浮点型计算参数的数据进行归一化处理;
对所述归一化处理后的浮点型计算参数进行量化。
可选地,程序被处理器301执行时实现如下步骤:
确定所述分类层的浮点型计算参数对应的取值范围和目标位宽;
根据所述取值范围和所述目标位宽,确定所述浮点型计算参数对应的调整系数。
在图3中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器301代表的一个或多个处理器和存储器302代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机304可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口303还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器301负责管理总线架构和通常的处理,存储器302可以存储处理器2601在执行操作时所使用的数据。
电子设备300能够实现图1方法实施例的各个过程,为避免重复,这里不再赘述。
本公开实施例还提供一种可读存储介质,可读存储介质上存储有程序,该程序被处理器执行时实现图1方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述可读存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
上面结合附图对本公开的实施例进行了描述,但是本公开并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本公开的启示下,在不脱离本公开宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本公开的保护之内。

Claims (10)

1.一种语音特征分类方法,其特征在于,包括:
获取语音数据;
从所述语音数据中提取语音特征;
将所述语音特征输入第一网络模型,得到所述语音特征的分类结果;
其中,所述第一网络模型包括依次连接的多个分类层,多个所述分类层中的第一个所述分类层的输入为所述语音特征,多个所述分类层中除最后一个所述分类层之外的每个所述分类层的输出为各自后一个所述分类层的输入,最后一个所述分类层的输出为所述语音特征的分类结果;
多个所述分类层中,每个所述分类层,用于:
确定所述分类层的每个浮点型计算参数对应的调整系数;
基于所述调整系数将所述浮点型计算参数的数据类型由浮点型转换为整型;
基于数据类型为整型的所述浮点型计算参数执行本层的运算,得到所述分类层的输出结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述语音特征输入第一网络模型,得到所述语音特征的分类结果之前,所述方法还包括:
对第二网络模型的每个分类层的参数进行训练,得到所述第一网络模型;
其中,所述对第二网络模型的每个分类层的参数进行训练,包括:
确定所述第二网络模型的各个所述分类层的每个浮点型计算参数对应的调整系数;
基于所述调整系数训练对应的所述浮点型计算参数。
3.根据权利要求2所述的方法,其特征在于,所述基于所述调整系数训练对应的所述浮点型计算参数,包括:
基于所述调整系数对所述浮点型计算参数进行量化;
基于所述调整系数对量化后的所述浮点型计算参数进行反量化。
4.根据权利要求3所述的方法,其特征在于,所述基于所述调整系数对所述浮点型计算参数进行量化,包括:
基于所述调整系数,以及所述浮点型计算参数对应的取值范围和目标位宽,确定量化函数;
基于所述量化函数对所述浮点型计算参数进行量化。
5.根据权利要求3所述的方法,其特征在于,所述基于所述调整系数对所述浮点型计算参数进行量化,包括:
对所述浮点型计算参数的数据进行归一化处理;
对所述归一化处理后的浮点型计算参数进行量化。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述确定所述分类层的每个浮点型计算参数对应的调整系数,包括:
确定所述分类层的浮点型计算参数对应的取值范围和目标位宽;
根据所述取值范围和所述目标位宽,确定所述浮点型计算参数对应的调整系数。
7.一种语音特征的分类装置,其特征在于,包括:
第一获取模块,用于获取语音数据;
提取模块,用于从所述语音数据中提取语音特征;
第二获取模块,用于将所述语音特征输入第一网络模型,得到所述语音特征的分类结果;
其中,所述第一网络模型包括依次连接的多个分类层,多个所述分类层中的第一个所述分类层的输入为所述语音特征,多个所述分类层中除最后一个所述分类层之外的每个所述分类层的输出为各自后一个所述分类层的输入,最后一个所述分类层的输出为所述语音特征的分类结果;
多个所述分类层中,每个所述分类层,用于:
确定所述分类层的每个浮点型计算参数对应的调整系数;
基于所述调整系数将所述浮点型计算参数的数据类型由浮点型转换为整型;
基于数据类型为整型的所述浮点型计算参数执行本层的运算,得到所述分类层的输出结果。
8.根据权利要求7所述的语音特征的分类装置,其特征在于,所述语音特征的分类装置还包括:
训练模块,用于对第二网络模型的每个分类层的参数进行训练,得到所述第一网络模型;
其中,所述训练模块,包括:
确定子模块,用于确定所述第二网络模型的各个所述分类层的每个浮点型计算参数对应的调整系数;
训练子模块,用于基于所述调整系数训练对应的所述浮点型计算参数。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至6中任一项所述的语音特征分类方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至6中任一项所述的语音特征分类方法的步骤。
CN202111025989.8A 2021-09-02 2021-09-02 语音特征的分类方法、相关设备及可读存储介质 Active CN113593538B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111025989.8A CN113593538B (zh) 2021-09-02 2021-09-02 语音特征的分类方法、相关设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111025989.8A CN113593538B (zh) 2021-09-02 2021-09-02 语音特征的分类方法、相关设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN113593538A true CN113593538A (zh) 2021-11-02
CN113593538B CN113593538B (zh) 2024-05-03

Family

ID=78241013

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111025989.8A Active CN113593538B (zh) 2021-09-02 2021-09-02 语音特征的分类方法、相关设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113593538B (zh)

Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0696048A (ja) * 1992-09-17 1994-04-08 Sanyo Electric Co Ltd ニューラルネットを用いた認識装置
JP2004078886A (ja) * 2002-06-20 2004-03-11 Matsushita Electric Ind Co Ltd 浮動小数点格納方法及び浮動小数点演算装置
US20170220929A1 (en) * 2014-09-09 2017-08-03 Intel Corporation Improved fixed point integer implementations for neural networks
CN107292382A (zh) * 2016-03-30 2017-10-24 中国科学院声学研究所 一种神经网络声学模型激活函数定点量化方法
CN107451658A (zh) * 2017-07-24 2017-12-08 杭州菲数科技有限公司 浮点运算定点化方法及系统
CN107679618A (zh) * 2017-07-28 2018-02-09 北京深鉴科技有限公司 一种静态策略定点化训练方法及装置
CN107688849A (zh) * 2017-07-28 2018-02-13 北京深鉴科技有限公司 一种动态策略定点化训练方法及装置
CN108053028A (zh) * 2017-12-21 2018-05-18 深圳云天励飞技术有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
CN108701250A (zh) * 2017-10-16 2018-10-23 深圳市大疆创新科技有限公司 数据定点化方法和装置
KR20190043849A (ko) * 2017-10-19 2019-04-29 삼성전자주식회사 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법
CN109800877A (zh) * 2019-02-20 2019-05-24 腾讯科技(深圳)有限公司 神经网络的参数调整方法、装置及设备
US10354644B1 (en) * 2018-01-15 2019-07-16 Gyrfalcon Technology Inc. System and method for encoding data in a voice recognition integrated circuit solution
JP2019160319A (ja) * 2018-03-09 2019-09-19 キヤノン株式会社 多階層ニューラルネットワークモデルを最適化して適用する方法及び装置、及び記憶媒体
CN110555508A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
US20200097802A1 (en) * 2017-09-05 2020-03-26 Panasonic Intellectual Property Corporation Of America Execution method, execution device, learning method, learning device, and recording medium for deep neural network
CN110929838A (zh) * 2018-09-19 2020-03-27 杭州海康威视数字技术股份有限公司 神经网络中位宽定点化方法、装置、终端和存储介质
CN111176853A (zh) * 2020-02-19 2020-05-19 珠海市杰理科技股份有限公司 数据量化方法、装置、计算机设备和存储介质
KR20200061164A (ko) * 2018-11-23 2020-06-02 삼성전자주식회사 뉴럴 네트워크 연산 수행을 위한 뉴럴 네트워크 장치, 뉴럴 네트워크 장치의 동작 방법 및 뉴럴 네트워크 장치를 포함하는 애플리케이션 프로세서
CN111401550A (zh) * 2020-03-10 2020-07-10 北京迈格威科技有限公司 神经网络模型量化方法、装置及电子设备
WO2020223856A1 (zh) * 2019-05-05 2020-11-12 深圳市大疆创新科技有限公司 一种基于卷积神经网络架构的数据处理方法及装置
CN112308226A (zh) * 2020-08-03 2021-02-02 北京沃东天骏信息技术有限公司 神经网络模型的量化、用于输出信息的方法和装置
US20210034955A1 (en) * 2019-07-30 2021-02-04 Perceive Corporation Quantizing neural networks using approximate quantization function
CN112382302A (zh) * 2020-12-02 2021-02-19 漳州立达信光电子科技有限公司 婴儿哭声识别方法及终端设备
CN112748899A (zh) * 2020-06-08 2021-05-04 腾讯科技(深圳)有限公司 一种数据处理方法和相关设备
CN113326930A (zh) * 2020-02-29 2021-08-31 华为技术有限公司 数据处理方法、神经网络的训练方法及相关装置、设备

Patent Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0696048A (ja) * 1992-09-17 1994-04-08 Sanyo Electric Co Ltd ニューラルネットを用いた認識装置
JP2004078886A (ja) * 2002-06-20 2004-03-11 Matsushita Electric Ind Co Ltd 浮動小数点格納方法及び浮動小数点演算装置
US20170220929A1 (en) * 2014-09-09 2017-08-03 Intel Corporation Improved fixed point integer implementations for neural networks
CN107292382A (zh) * 2016-03-30 2017-10-24 中国科学院声学研究所 一种神经网络声学模型激活函数定点量化方法
CN107451658A (zh) * 2017-07-24 2017-12-08 杭州菲数科技有限公司 浮点运算定点化方法及系统
CN107679618A (zh) * 2017-07-28 2018-02-09 北京深鉴科技有限公司 一种静态策略定点化训练方法及装置
CN107688849A (zh) * 2017-07-28 2018-02-13 北京深鉴科技有限公司 一种动态策略定点化训练方法及装置
US20200097802A1 (en) * 2017-09-05 2020-03-26 Panasonic Intellectual Property Corporation Of America Execution method, execution device, learning method, learning device, and recording medium for deep neural network
CN108701250A (zh) * 2017-10-16 2018-10-23 深圳市大疆创新科技有限公司 数据定点化方法和装置
KR20190043849A (ko) * 2017-10-19 2019-04-29 삼성전자주식회사 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법
CN108053028A (zh) * 2017-12-21 2018-05-18 深圳云天励飞技术有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
US10354644B1 (en) * 2018-01-15 2019-07-16 Gyrfalcon Technology Inc. System and method for encoding data in a voice recognition integrated circuit solution
JP2019160319A (ja) * 2018-03-09 2019-09-19 キヤノン株式会社 多階層ニューラルネットワークモデルを最適化して適用する方法及び装置、及び記憶媒体
CN110555508A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
CN110929838A (zh) * 2018-09-19 2020-03-27 杭州海康威视数字技术股份有限公司 神经网络中位宽定点化方法、装置、终端和存储介质
KR20200061164A (ko) * 2018-11-23 2020-06-02 삼성전자주식회사 뉴럴 네트워크 연산 수행을 위한 뉴럴 네트워크 장치, 뉴럴 네트워크 장치의 동작 방법 및 뉴럴 네트워크 장치를 포함하는 애플리케이션 프로세서
CN109800877A (zh) * 2019-02-20 2019-05-24 腾讯科技(深圳)有限公司 神经网络的参数调整方法、装置及设备
WO2020223856A1 (zh) * 2019-05-05 2020-11-12 深圳市大疆创新科技有限公司 一种基于卷积神经网络架构的数据处理方法及装置
US20210034955A1 (en) * 2019-07-30 2021-02-04 Perceive Corporation Quantizing neural networks using approximate quantization function
CN111176853A (zh) * 2020-02-19 2020-05-19 珠海市杰理科技股份有限公司 数据量化方法、装置、计算机设备和存储介质
CN113326930A (zh) * 2020-02-29 2021-08-31 华为技术有限公司 数据处理方法、神经网络的训练方法及相关装置、设备
CN111401550A (zh) * 2020-03-10 2020-07-10 北京迈格威科技有限公司 神经网络模型量化方法、装置及电子设备
CN112748899A (zh) * 2020-06-08 2021-05-04 腾讯科技(深圳)有限公司 一种数据处理方法和相关设备
CN112308226A (zh) * 2020-08-03 2021-02-02 北京沃东天骏信息技术有限公司 神经网络模型的量化、用于输出信息的方法和装置
CN112382302A (zh) * 2020-12-02 2021-02-19 漳州立达信光电子科技有限公司 婴儿哭声识别方法及终端设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TAILIN LIANG等: "Pruning and quantization for deep neural network acceleration: A survey", 《NEUROCOMPUTING》, pages 370 - 403 *
张文烨等: "基于Octave卷积的混合精度神经网络量化方法", 《计算机应用》, vol. 41, no. 5, pages 1299 - 1304 *

Also Published As

Publication number Publication date
CN113593538B (zh) 2024-05-03

Similar Documents

Publication Publication Date Title
US11450312B2 (en) Speech recognition method, apparatus, and device, and storage medium
JP6828001B2 (ja) 音声ウェイクアップ方法及び装置
US10607600B2 (en) System and method for mobile automatic speech recognition
US10332507B2 (en) Method and device for waking up via speech based on artificial intelligence
CN110546656A (zh) 前馈生成式神经网络
CN110689878A (zh) 一种基于XLNet的智能语音对话意图识别方法
CN111161726B (zh) 一种智能语音交互方法、设备、介质及系统
CN111179944B (zh) 语音唤醒及年龄检测方法、装置及计算机可读存储介质
US20210073645A1 (en) Learning apparatus and method, and program
CN113838468A (zh) 流式语音识别方法、终端设备及介质
CN114943335A (zh) 一种三值神经网络逐层优化方法
US20180061395A1 (en) Apparatus and method for training a neural network auxiliary model, speech recognition apparatus and method
CN101019171B (zh) 用于生成向量码本的方法、用于压缩数据的方法及装置、以及分布式语音识别系统
CN111833852B (zh) 一种声学模型的训练方法、装置以及计算机可读存储介质
CN113593538B (zh) 语音特征的分类方法、相关设备及可读存储介质
CN114171043B (zh) 回声的确定方法、装置、设备以及存储介质
CN110717022A (zh) 一种机器人对话生成方法、装置、可读存储介质及机器人
CN114360500B (zh) 语音识别方法和装置、电子设备及存储介质
KR102405163B1 (ko) 상호 정보량 추정을 이용한 화자 임베딩 추출 장치 및 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램
KR102617914B1 (ko) 음성 인식 방법 및 그 시스템
CN115936094B (zh) 文本处理模型的训练方法、装置、电子设备和存储介质
CN116776926B (zh) 一种对话模型的优化部署方法、装置、设备及介质
CN116705013B (zh) 语音唤醒词的检测方法、装置、存储介质和电子设备
CN111930921B (zh) 意图预测的方法及装置
CN117174083A (zh) 模型训练方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant