CN110211593B - 语音识别方法、装置、电子设备及存储介质 - Google Patents

语音识别方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN110211593B
CN110211593B CN201910477949.3A CN201910477949A CN110211593B CN 110211593 B CN110211593 B CN 110211593B CN 201910477949 A CN201910477949 A CN 201910477949A CN 110211593 B CN110211593 B CN 110211593B
Authority
CN
China
Prior art keywords
data
weight
value
network layer
recognized
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.)
Active
Application number
CN201910477949.3A
Other languages
English (en)
Other versions
CN110211593A (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 Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information 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 Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN201910477949.3A priority Critical patent/CN110211593B/zh
Publication of CN110211593A publication Critical patent/CN110211593A/zh
Application granted granted Critical
Publication of CN110211593B publication Critical patent/CN110211593B/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
    • 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/28Constructional details of speech recognition systems

Landscapes

  • Engineering & Computer Science (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)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Telephonic Communication Services (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本公开是关于一种语音识别方法、装置、电子设备及存储介质,涉及深度学习技术领域,包括:获取待识别语音信号;将待识别语音信号输入至第一语音识别模型中,第一语音识别模型包括多个网络层,多个网络层中的至少一个第一网络层的权重数据为量化后的整型数据矩阵,多个网络层中的至少一个第二网络层的偏置数据为量化后的整型数据矩阵;通过第一语音识别模型中的每个网络层的权重数据和型偏置数据对待识别语音信号进行识别,得到语音识别结果。根据量化后的整型权重数据和整型偏置数据对待识别语音信号进行计算,进而识别该待识别语音信号,避免了通过浮点型数据进行计算,提高了语音识别时的运算速度,提高了语音识别的效率。

Description

语音识别方法、装置、电子设备及存储介质
技术领域
本公开涉及深度学习技术领域,尤其涉及一种语音识别方法、装置、电子设备及存储介质。
背景技术
随着深度学习技术的发展,通过深度学习技术可以训练出多种神经网络模型,通过神经网络模型可以完成多种识别操作。例如,神经网络模型为语音识别模型时,可以通过语音识别模型对输入的语音信号进行运算,得到语音识别结果。
相关技术中,为了保证语音识别模型的识别精准度,语音识别模型的权重数据和偏置数据通常是浮点型数据矩阵,因此,通过语音识别模型对待识别语音信号进行识别时,通过浮点型数据的权重数据和偏置数据对待识别语音信号进行运算,得到语音识别结果。
上述过程中,由于浮点型数据在运算过程中,会耗费大量的时间,因此上述方法会导致识别过程较慢,识别的效率低。
发明内容
本公开提供一种语音识别方法、装置、电子设备及存储介质,能够克服由于浮点型数据在运算过程中,会耗费大量的时间,因此上述方法会导致识别过程较慢,识别的效率低的问题。
根据本公开实施例的第一方面,提供一种语音识别方法,包括:
获取待识别语音信号;
将所述待识别语音信号输入至第一语音识别模型中,所述第一语音识别模型包括多个网络层,所述多个网络层中的至少一个第一网络层的权重数据为量化后的整型数据矩阵,所述多个网络层中的至少一个第二网络层的偏置数据为量化后的整型数据矩阵;
通过所述第一语音识别模型中的每个网络层的权重数据和型偏置数据对所述待识别语音信号进行识别,得到语音识别结果。
在一种可能的实现方式中,所述将所述待识别语音信号输入至语音识别模型中之前,所述方法还包括:
获取第二语音识别模型中的所述至少一个第一网络层的第一权重数据,所述第一权重数据为浮点型数据矩阵;
确定所述至少一个第一网络层的第一权重数据在第一整型数据范围内的第一量化尺度值和第一量化零点值;
根据所述第一量化尺度值和所述第一量化零点值,基于所述第一权重数据获取第二权重数据,所述第二权重数据为整型数据矩阵;
获取所述至少一个第二网络层的第一偏置数据,所述第一偏置数据为浮点型数据矩阵;
根据所述第一量化尺度值,基于所述第一偏置数据获取第二偏置数据,所述第二偏置数据为整型数据矩阵;
将所述第二语音识别模型中的所述至少一个第一网络层的第一权重数据替换为所述第二权重数据,所述至少一个第二网络层的第一偏置数据替换为所述第二偏置数据,得到所述第一语音识别模型。
在另一种可能的实现方式中,所述根据所述第一量化尺度值和所述第一量化零点值,基于所述第一权重数据获取第二权重数据,包括:
对于所述第一权重数据中的每个第一权重值,根据所述第一量化尺度值,将所述第一权重值映射到所述第一整型数据范围内,得到第二权重值;
将所述第二权重值在所述第一整型数据范围内偏移所述第一量化零点值,得到第三权重值;
将基于每个第一权重值得到的第三权重值组成所述第二权重数据。
在另一种可能的实现方式中,所述根据所述第一量化尺度值,基于所述第一偏置数据获取第二偏置数据,包括:
根据所述第一量化尺度值,确定第三量化尺度值;
对于所述第一偏置数据中的第一偏置值,根据所述第三量化尺度值,将所述第一偏置值映射到第二整型数据范围内,得到第二偏置值,所述第二整型数据范围与所述第一整型数据范围不同;
将所述第二偏置值组成所述第二偏置数据。
在另一种可能的实现方式中,所述根据所述第一量化尺度值,确定第三量化尺度值,包括:
获取样本对象的第三特征数据在所述第一整型数据范围内的第四量化尺度值,将所述第一量化尺度值和所述第四量化尺度值进行乘积运算,得到所述第三量化尺度值;或者,
当对待识别语音信号进行识别时,获取所述待识别语音信号的第一特征数据在所述第一整型数据范围内的第二量化尺度值,将所述第一量化尺度值和所述第二量化尺度值进行乘积运算,得到所述第三量化尺度值。
在另一种可能的实现方式中,所述确定所述至少一个第一网络层的第一权重数据在第一整型数据范围内的第一量化尺度值和第一量化零点值,包括:
根据所述第一权重数据,确定第一权重阈值和第二权重阈值;
根据所述第一权重阈值和所述第二权重阈值和所述第一整型数据范围内,确定所述第一量化尺度值;
根据所述第一量化尺度值,量化所述第二权重阈值,得到所述第一量化零点值。
在另一种可能的实现方式中,所述根据所述第一权重数据,确定第一权重阈值和第二权重阈值,包括:
从所述第一权重数据中选择最大权重值和最小权重值,将所述最大权重值作为所述第一权重阈值,以及将所述最小权重值作为所述第二权重阈值;或者,
从所述第一权重数据中选择最大权重值和最小权重值,将所述最大权重值与第一系数的乘积作为所述第一权重阈值,以及将所述最小权重值与第二系数的乘积作为所述第二权重阈值。
在另一种可能的实现方式中,所述通过所述第一语音识别模型中的每个网络层的权重数据和型偏置数据对所述待识别语音信号进行识别,得到语音识别结果,包括:
确定所述待识别语音信号在所述多个网络层的至少一个第三网络层的第一特征数据;
确定所述至少一个第三网络层的第一特征数据在所述第一整型数据范围内的第二量化尺度值和第二量化零点值,所述第一特征数据为浮点型数据矩阵;
根据所述第二量化尺度和所述第二量化零点值,基于所述第一特征数据获取第二特征数据,所述第二特征数据为整型数据矩阵;
根据所述第一语音识别模型中每个网络层的权重数据、偏置数据和特征数据,对所述待识别语音信号进行识别,得到识别结果。
在另一种可能的实现方式中,所述根据所述第二量化尺度和所述第二量化零点值,基于所述第一特征数据获取第二特征数据,包括:
对于所述第一特征数据中的每个第一特征值,根据所述第二量化尺度值,将所述第一特征值映射到所述第一整型数据范围内,得到第二特征值;
将所述第二特征值在所述第一整型数据范围内偏移所述第一量化零点值,得到第三特征值;
将基于每个第一特征值得到的第三特征值组成所述第二特征数据。
在另一种可能的实现方式中,所述根据所述第一语音识别模型中每个网络层的权重数据、偏置数据和特征数据,对所述待识别语音信号进行识别,得到识别结果,包括:
对于每个网络层,将所述网络层的特征数据和权重数据进行点乘运算,得到第一运算结果;
将所述第一运算结果与所述网络层的偏置数据进行求和运算,得到第二运算结果;
对所述第二运算结果进行逆量化运算,得到第三运算结果;
当所述网络层是所述第一语音识别模型中的最后一个网络层时,根据所述第三运算结果,确定所述待识别语音信号的识别结果。
在另一种可能的实现方式中,所述方法还包括:
当所述网络层不是所述第一语音识别模型中的最后一个网络层时,将所述第三运算结果作为下一网络层的第一特征数据,根据所述下一网络层的第一特征数据,确定所述下一网络层的第二特征数据;
将所述下一网络层的第二特征数据和所述下一网络层的权重数据进行点成运算,得到第四运算结果;
将所述第四运算结果与所述下一网络层的偏置数据进行求和运算,得到第五运算结果;
对所述第五运算结果进行逆量化运算,得到第六运算结果;
当所述下一网络层是所述第一语音识别模型中的最后一个网络层时,根据所述第六运算结果,确定所述待识别语音信号的识别结果。
根据本公开实施例的第二方面,提供一种语音识别装置,包括:
第一获取模块,被配置为获取待识别语音信号;
输入模块,被配置为将所述待识别语音信号输入至第一语音识别模型中,所述第一语音识别模型包括多个网络层,所述多个网络层中的至少一个第一网络层的权重数据为量化后的整型数据矩阵,所述多个网络层中的至少一个第二网络层的偏置数据为量化后的整型数据矩阵;
识别模块,被配置为通过所述第一语音识别模型中的每个网络层的权重数据和型偏置数据对所述待识别语音信号进行识别,得到语音识别结果。
在一种可能的实现方式中,所述装置还包括:
第二获取模块,被配置为获取第二语音识别模型中的所述至少一个第一网络层的第一权重数据,所述第一权重数据为浮点型数据矩阵;
第一确定模块,被配置为确定所述至少一个第一网络层的第一权重数据在第一整型数据范围内的第一量化尺度值和第一量化零点值;
第三获取模块,被配置为根据所述第一量化尺度值和所述第一量化零点值,基于所述第一权重数据获取第二权重数据,所述第二权重数据为整型数据矩阵;
第四获取模块,被配置为获取所述至少一个第二网络层的第一偏置数据,所述第一偏置数据为浮点型数据矩阵;
第五获取模块,被配置为根据所述第一量化尺度值,基于所述第一偏置数据获取第二偏置数据,所述第二偏置数据为整型数据矩阵;
替换模块,被配置为将所述第二语音识别模型中的所述至少一个第一网络层的第一权重数据替换为所述第二权重数据,所述至少一个第二网络层的第一偏置数据替换为所述第二偏置数据,得到所述第一语音识别模型。
在另一种可能的实现方式中,所述第三获取模块,还被配置为对于所述第一权重数据中的每个第一权重值,根据所述第一量化尺度值,将所述第一权重值映射到所述第一整型数据范围内,得到第二权重值;将所述第二权重值在所述第一整型数据范围内偏移所述第一量化零点值,得到第三权重值;将基于每个第一权重值得到的第三权重值组成所述第二权重数据。
在另一种可能的实现方式中,所述第五获取模块,还被配置为根据所述第一量化尺度值,确定第三量化尺度值;对于所述第一偏置数据中的第一偏置值,根据所述第三量化尺度值,将所述第一偏置值映射到第二整型数据范围内,得到第二偏置值,所述第二整型数据范围与所述第一整型数据范围不同;将所述第二偏置值组成所述第二偏置数据。
在另一种可能的实现方式中,所述第五获取模块,还被配置为获取样本对象的第三特征数据在所述第一整型数据范围内的第四量化尺度值,将所述第一量化尺度值和所述第四量化尺度值进行乘积运算,得到所述第三量化尺度值;或者,当对待识别语音信号进行识别时,获取所述待识别语音信号的第一特征数据在所述第一整型数据范围内的第二量化尺度值,将所述第一量化尺度值和所述第二量化尺度值进行乘积运算,得到所述第三量化尺度值。
在另一种可能的实现方式中,所述第一确定模块,还被配置为根据所述第一权重数据,确定第一权重阈值和第二权重阈值;根据所述第一权重阈值和所述第二权重阈值和所述第一整型数据范围内,确定所述第一量化尺度值;根据所述第一量化尺度值,量化所述第二权重阈值,得到所述第一量化零点值。
在另一种可能的实现方式中,所述第一确定模块,还被配置为从所述第一权重数据中选择最大权重值和最小权重值,将所述最大权重值作为所述第一权重阈值,以及将所述最小权重值作为所述第二权重阈值;或者,从所述第一权重数据中选择最大权重值和最小权重值,将所述最大权重值与第一系数的乘积作为所述第一权重阈值,以及将所述最小权重值与第二系数的乘积作为所述第二权重阈值。
在另一种可能的实现方式中,所述识别模块,还被配置为确定所述待识别语音信号在所述多个网络层的至少一个第三网络层的第一特征数据;确定所述至少一个第三网络层的第一特征数据在所述第一整型数据范围内的第二量化尺度值和第二量化零点值,所述第一特征数据为浮点型数据矩阵;根据所述第二量化尺度和所述第二量化零点值,基于所述第一特征数据获取第二特征数据,所述第二特征数据为整型数据矩阵;根据所述第一语音识别模型中每个网络层的权重数据、偏置数据和特征数据,对所述待识别语音信号进行识别,得到识别结果。
在另一种可能的实现方式中,所述识别模块,还被配置为对于所述第一特征数据中的每个第一特征值,根据所述第二量化尺度值,将所述第一特征值映射到所述第一整型数据范围内,得到第二特征值;将所述第二特征值在所述第一整型数据范围内偏移所述第一量化零点值,得到第三特征值;将基于每个第一特征值得到的第三特征值组成所述第二特征数据。
在另一种可能的实现方式中,所述识别模块,还被配置为对于每个网络层,将所述网络层的特征数据和权重数据进行点乘运算,得到第一运算结果;将所述第一运算结果与所述网络层的偏置数据进行求和运算,得到第二运算结果;对所述第二运算结果进行逆量化运算,得到第三运算结果;当所述网络层是所述第一语音识别模型中的最后一个网络层时,根据所述第三运算结果,确定所述待识别语音信号的识别结果。
在另一种可能的实现方式中,所述装置还包括:
第二确定模块,被配置为当所述网络层不是所述第一语音识别模型中的最后一个网络层时,将所述第三运算结果作为下一网络层的第一特征数据,根据所述下一网络层的第一特征数据,确定所述下一网络层的第二特征数据;
第一运算模块,被配置为将所述下一网络层的第二特征数据和所述下一网络层的权重数据进行点成运算,得到第四运算结果;
第二运算模块,被配置为将所述第四运算结果与所述下一网络层的偏置数据进行求和运算,得到第五运算结果;
第三运算模块,被配置为对所述第五运算结果进行逆量化运算,得到第六运算结果;
第三确定模块,被配置为当所述下一网络层是所述第一语音识别模型中的最后一个网络层时,根据所述第六运算结果,确定所述待识别语音信号的识别结果。
根据本公开实施例的第三方面,提供一种电子设备,包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行本公开实施例的第一方面所述的语音识别方法。
根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本公开实施例的第一方面所述的语音识别方法。
根据本公开实施例的第五方面,提供一种应用程序,当所述应用程序中的指令由终端的处理器执行时,使得电子设备能够执行本公开实施例的第一方面所述的语音识别方法。
本公开的实施例提供的技术方案可以包括以下有益效果:在本公开实施例中,通过量化后的第一语音识别模型,对待识别语音信号进行识别,根据量化后的整型权重数据和整型偏置数据对待识别语音信号进行计算,进而识别该待识别语音信号,避免了通过浮点型数据进行计算,提高了语音识别时的运算速度,提高了语音识别的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种语音识别方法的流程图。
图2是根据一示例性实施例示出的一种语音识别方法的流程图。
图3是根据一示例性实施例示出的一种离线量化方法的示意图。
图4是根据一示例性实施例示出的一种语音识别方法的流程图。
图5是根据一示例性实施例示出的一种语音识别方法的流程图。
图6是根据一示例性实施例示出的一种语音识别方法的流程图。
图7是根据一示例性实施例示出的一种语音识别方法的流程图。
图8是根据一示例性实施例示出的一种语音识别装置的框图。
图9是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种语音识别方法的流程图,如图1所示,该语音识别方法包括以下步骤。
在步骤S101中,获取待识别语音信号。
在步骤S102中,将该待识别语音信号输入至第一语音识别模型中,该第一语音识别模型包括多个网络层,该多个网络层中的至少一个第一网络层的权重数据为量化后的整型数据矩阵,该多个网络层中的至少一个第二网络层的偏置数据为量化后的整型数据矩阵。
在步骤S103中,通过该第一语音识别模型中的每个网络层的权重数据和型偏置数据对该待识别语音信号进行识别,得到语音识别结果。
在一种可能的实现方式中,该将该待识别语音信号输入至语音识别模型中之前,该方法还包括:
获取第二语音识别模型中的该至少一个第一网络层的第一权重数据,该第一权重数据为浮点型数据矩阵;
确定该至少一个第一网络层的第一权重数据在第一整型数据范围内的第一量化尺度值和第一量化零点值;
根据该第一量化尺度值和该第一量化零点值,基于该第一权重数据获取第二权重数据,该第二权重数据为整型数据矩阵;
获取该至少一个第二网络层的第一偏置数据,该第一偏置数据为浮点型数据矩阵;
根据该第一量化尺度值,基于该第一偏置数据获取第二偏置数据,该第二偏置数据为整型数据矩阵;
将该第二语音识别模型中的该至少一个第一网络层的第一权重数据替换为该第二权重数据,该至少一个第二网络层的第一偏置数据替换为该第二偏置数据,得到该第一语音识别模型。
在另一种可能的实现方式中,该根据该第一量化尺度值和该第一量化零点值,基于该第一权重数据获取第二权重数据,包括:
对于该第一权重数据中的每个第一权重值,根据该第一量化尺度值,将该第一权重值映射到该第一整型数据范围内,得到第二权重值;
将该第二权重值在该第一整型数据范围内偏移该第一量化零点值,得到第三权重值;
将基于每个第一权重值得到的第三权重值组成该第二权重数据。
在另一种可能的实现方式中,该根据该第一量化尺度值,基于该第一偏置数据获取第二偏置数据,包括:
根据该第一量化尺度值,确定第三量化尺度值;
对于该第一偏置数据中的第一偏置值,根据该第三量化尺度值,将该第一偏置值映射到第二整型数据范围内,得到第二偏置值,该第二整型数据范围与该第一整型数据范围不同;
将该第二偏置值组成该第二偏置数据。
在另一种可能的实现方式中,该根据该第一量化尺度值,确定第三量化尺度值,包括:
获取样本对象的第三特征数据在该第一整型数据范围内的第四量化尺度值,将该第一量化尺度值和该第四量化尺度值进行乘积运算,得到该第三量化尺度值;或者,
当对待识别语音信号进行识别时,获取该待识别语音信号的第一特征数据在该第一整型数据范围内的第二量化尺度值,将该第一量化尺度值和该第二量化尺度值进行乘积运算,得到该第三量化尺度值。
在另一种可能的实现方式中,该确定该至少一个第一网络层的第一权重数据在第一整型数据范围内的第一量化尺度值和第一量化零点值,包括:
根据该第一权重数据,确定第一权重阈值和第二权重阈值;
根据该第一权重阈值和该第二权重阈值和该第一整型数据范围内,确定该第一量化尺度值;
根据该第一量化尺度值,量化该第二权重阈值,得到该第一量化零点值。
在另一种可能的实现方式中,该根据该第一权重数据,确定第一权重阈值和第二权重阈值,包括:
从该第一权重数据中选择最大权重值和最小权重值,将该最大权重值作为该第一权重阈值,以及将该最小权重值作为该第二权重阈值;或者,
从该第一权重数据中选择最大权重值和最小权重值,将该最大权重值与第一系数的乘积作为该第一权重阈值,以及将该最小权重值与第二系数的乘积作为该第二权重阈值。
在另一种可能的实现方式中,该通过该第一语音识别模型中的每个网络层的权重数据和型偏置数据对该待识别语音信号进行识别,得到语音识别结果,包括:
确定该待识别语音信号在该多个网络层的至少一个第三网络层的第一特征数据;
确定该至少一个第三网络层的第一特征数据在该第一整型数据范围内的第二量化尺度值和第二量化零点值,该第一特征数据为浮点型数据矩阵;
根据该第二量化尺度和该第二量化零点值,基于该第一特征数据获取第二特征数据,该第二特征数据为整型数据矩阵;
根据该第一语音识别模型中每个网络层的权重数据、偏置数据和特征数据,对该待识别语音信号进行识别,得到识别结果。
在另一种可能的实现方式中,该根据该第二量化尺度和该第二量化零点值,基于该第一特征数据获取第二特征数据,包括:
对于该第一特征数据中的每个第一特征值,根据该第二量化尺度值,将该第一特征值映射到该第一整型数据范围内,得到第二特征值;
将该第二特征值在该第一整型数据范围内偏移该第一量化零点值,得到第三特征值;
将基于每个第一特征值得到的第三特征值组成该第二特征数据。
在另一种可能的实现方式中,该根据该第一语音识别模型中每个网络层的权重数据、偏置数据和特征数据,对该待识别语音信号进行识别,得到识别结果,包括:
对于每个网络层,将该网络层的特征数据和权重数据进行点乘运算,得到第一运算结果;
将该第一运算结果与该网络层的偏置数据进行求和运算,得到第二运算结果;
对该第二运算结果进行逆量化运算,得到第三运算结果;
当该网络层是该第一语音识别模型中的最后一个网络层时,根据该第三运算结果,确定该待识别语音信号的识别结果。
在另一种可能的实现方式中,该方法还包括:
当该网络层不是该第一语音识别模型中的最后一个网络层时,将该第三运算结果作为下一网络层的第一特征数据,根据该下一网络层的第一特征数据,确定该下一网络层的第二特征数据;
将该下一网络层的第二特征数据和该下一网络层的权重数据进行点成运算,得到第四运算结果;
将该第四运算结果与该下一网络层的偏置数据进行求和运算,得到第五运算结果;
对该第五运算结果进行逆量化运算,得到第六运算结果;
当该下一网络层是该第一语音识别模型中的最后一个网络层时,根据该第六运算结果,确定该待识别语音信号的识别结果。
在本公开实施例中,通过量化后的第一语音识别模型,对待识别语音信号进行识别,根据量化后的整型权重数据和整型偏置数据对待识别语音信号进行计算,进而识别该待识别语音信号,避免了通过浮点型数据进行计算,提高了语音识别时的运算速度,提高了语音识别的效率。
在本公开实施例中通过第二语音识别模型对待识别语音进行识别时,由于第二语音识别模型中的偏置数据和权重数据均为浮点型数据矩阵,导致通过第二语音识别模型进行语音识别时的运算速度慢,语音识别的效率低。因此,在对待识别语音进行识别之前,可以对第二语音识别模型中的权重数据和偏置数据进行量化,得到第一语音识别模型,第一语音识别模型中的权重数据和偏置数据均为整型数据矩阵。通过该第一语音识别模型对待识别语音进行识别时,降低了语音识别时的运算速度,提高了语音识别的效率。
其中,在对第二语音识别模型中的权重数据和偏置数据进行量化得到量时,可以离线量化权重数据和偏置数据,得到第一语音识别模型;也可以离线量化权重数据,在对待识别语音进行识别时,在线量化偏置数据,得到第一语音识别模型。
其中,该待识别语音信号可以为任一音频数据,例如,该待识别语音信号可以为终端中下载或播放的音频文件或视频文件中的音频数据,该待识别语音信号还可以为语音通话过程中的通话数据等,在本公开实施例中,对该待识别语音信号不作具体限定。该第二语音识别模型可以为任一具有语音识别功能的神经网络模型,例如,该第二语音识别模型可以为CNN(Convolutional Neural Networks,卷积神经网络),且该第二语音识别模型为用于识别发出该待识别语音信号的用户性别、待识别语音信号对应的文字信息或者歌曲名称等。
图2是根据一示例性实施例示出的一种语音识别方法的流程图,在本公开实施例中,以在进行语音识别之前,通过离线量化权重数据和偏置数据的方法为例进行说明,如图2所示,该语音识别方法包括以下步骤。
在步骤S201中,电子设备获取第二语音识别模型的至少一个第一网络层的第一权重数据,该第一权重数据为浮点型数据矩阵。
其中,该第二语音识别模型可以为任一浮点型数据类型的神经网络模型,该第二语音识别模型中一般包括多个网络层,该至少一个第一网络层为该多个网络层中的任一至少一个第一网络层,该至少一个第一网络层可以为连续的至少一个网络层也可以为不连续的至少一个网络层,在本公开实施例中,对此不作具体限定。每个网络层的参数包括该网络层的权重数据和偏置数据等。为了便于描述,将每个网络层的量化前的权重数据称为第一权重数据。其中,第一权重数据为浮点型数据矩阵;例如,该第一权重数据可以为float型数据矩阵,也可以为double型数据矩阵。
需要说明的一点是,对于第二语音识别模型中的每个网络层,电子设备可以选择将神经网络中的所有网络层中的参数进行量化,也可以选择网络层中的部分网络层中的参数进行量化,在本公开实施例中,对此不作具体限定。
在步骤S202中,电子设备确定该至少一个第一网络层的第一权重数据在第一整型数据范围内的第一量化尺度值和第一量化零点值。
对该多个网络层的至少一个第一网络层中的每个网络层,电子设备对该网络层的第一权重数据进行量化时,先确定第一权重数据的第一量化尺度值和第一量化零点值;其中,该过程可以通过以下步骤S202A-S202C实现,包括:
S202A:电子设备根据第一权重数据,确定第一权重阈值和第二权重阈值。
在一种可能的实现方式中,电子设备从该第一权重数据中确定该权重数据的最大权重值和最小权重值,将该第一权重数据中的最大权重值作为第一权重阈值,将该第一权重数据中的最小权重值作为第二权重阈值。
例如,将第一权重数据中的最大权重值Wf max作为第一权重阈值,将第一权重数据中的最小权重值Wf min作为第二权重阈值。
在本公开实施例中,电子设备可以直接将该第一权重数据中的最大权重值作为第一权重阈值,将该第一权重数据中的最小权重值作为第二权重阈值,从而提高了效率。
在另一种可能的实现方式中,电子设备从该第一权重数据中选择最大权重值和最小权重值,将该最大权重值与第一系数的乘积作为该第一权重阈值,以及将该最小权重值与第二系数的乘积作为该第二权重阈值。
例如,该第一权重数据的最大权重值为Wf max,最小权重值为Wf min,第一系数为α,第二系数为β,相应的,第一权重阈值为Whist1=α*Wf max,第二权重阈值为Whist 2=β*Wf min
其中,第一系数和第二系数为大于0小于1的任一数值,该第一系数和第二系数可以相同也可以不同,该第一系数可以为0.8、0.85、0.95;第二系数可以为0.8、0.85、0.95等。例如,第一系数和第二系数相同,均为0.95。
在本公开实施例中,电子设备将该最大权重值与第一系数的乘积作为该第一权重阈值,以及将该最小权重值与第二系数的乘积作为该第二权重阈值,从而实现在网络层中的第一权重数据的最大权重值和最小权重值所对应的范围过大时,降低在量化过程中对该权重数据的精度损失,提高了准确性。
需要说明的一点是,电子设备可以通过以上两种方法中的任一方法确定第一权重阈值和第二权重阈值。并且,电子设备确定出第一权重数据中的最大权重值和最小权重值之后,确定最小权重值和最大权重值组成的第一权重值范围;当该第一权重值范围在第一整型数据范围的预设倍数范围内时,电子设备可以直接将该第一权重数据中的最大权重值作为第一权重阈值,将该第一权重数据中的最小权重值作为第二权重阈值。当该第一权重值范围不在第一整型数据范围的预设倍数范围内时,电子设备将该最大权重值与第一系数的乘积作为该第一权重阈值,以及将该最小权重值与第二系数的乘积作为该第二权重阈值。
在本公开实施例中,第一整型数据范围可以由整型数据的类型确定,例如,当该整型数据的类型为uint8类型的整型数据时,该第一整型数范围为:0-255。需要说明的一点是,该整型数据的类型可以根据需要进行设置,并更改,在本公开实施例中,对该整型数据的类型不作具体限定。
S202B:电子设备根据该第一权重阈值、该第二权重阈值和第一整型数据范围,确定该第一量化尺度值。
电子设备确定第一权重阈值和第二权重阈值的差,得到第一数值,确定第一数值与第一整型数据范围的最大阈值的商,得到第一量化尺度值。其中,当第一整型数据范围为0-255时,该第一整型数据范围的最大阈值为255;当第一整型数据范围为0-63时,该第一整型数据范围的最大阈值为63。例如,当第一整型数据范围为255时,电子设备根据该第一权重阈值、该第二权重阈值和第一整型数据范围,可以通过以下公式一确定该第一量化尺度值。
公式一:scale=(Wf max-Wf min)/255。
其中,scale表示该第一权重数据的第一量化尺度,Wf max表示该第一权重阈值,Wf min表示该第一权重数据的第二权重阈值,255为第一整型数据范围的最大阈值。
S202C:电子设备根据该第一量化尺度值,量化该第二权重阈值,得到该第一量化零点值。
电子设备确定第二权重阈值与该第一量化尺度值的商,得到第二数值,确定预设数值与第二数值的差,得到第一量化零点值。相应的,电子设备根据该第一量化尺度值,量化该第二权重阈值,可以通过以下公式二,得到该第一量化零点值;
公式二:Z=WQmin-Wf min/scale
其中,Z表示第一量化零点值,WQmin表示预设数值,Wf min表示第一权重数据中的最小权重值,scale表示第一权重数据的第一量化尺度值;其中,预设数值可以根据需要进行设置并更改,在本公开实施例中,对该预设数值不作具体限定;例如,该预设数值可以为0。
在本公开实施例中,由于整型数据的整型数据范围一般为从0开始的数据范围,而第一权重数据的权重值范围可以从负数范围到整数范围,因此,通过量化第二权重阈值,可以保证量化后的权重值在第一整型数据范围内,从而可以将该第一权重数据中的权重值映射到第一整型数据范围内后,将该权重值根据第一量化零点进行平移校正,提高了准确性。
需要说明的一点是,电子设备还可以通过量化第一权重阈值,确定第一量化零点值。相应的,步骤S201D可以替换为:电子设备根据该第一量化尺度值,量化该第一权重阈值,得到该第一量化零点值。
在步骤S203中,电子设备根据该第一量化尺度值和该第一量化零点值,基于该第一权重数据获取第二权重数据,该第二权重数据为整型数据矩阵。
对于该第一权重数据中的每个第一权重值,电子设备根据该第一权重数据对应的第一量化尺度值,将该第一权重数据中的每个第一权重值映射到该第一整型数据范围内,得到第二权重数据。该过程可以通过以下步骤S203A-S203C实现,包括:
S203A:对于该第一权重数据中的每个第一权重值,电子设备根据该第一量化尺度值,将该第一权重值映射到该第一整型数据范围内,得到第二权重值。
电子设备确定第一权重值除以第一量化尺度值的商,得到第三数值,根据第三数据确定第二权重值。其中,当第三数值为整数时,电子设备直接将该第三数值作为第二权重值,当第三数值不为整数时,将第三数值进行取整,得到第二权重值。其中,该取整方式可以为四舍五入取整、上取整或下取整等,在本公开实施例中,对此不作具体限定。
S203B:电子设备将该第二权重值在该第一整型数据范围内偏移该第一量化零点值,得到第三权重值。
电子设备确定第二权重值与第一量化零点值的和,得到第四数值,根据第四数值,确定第三权重值。在一种可能的实现方式中,电子设备可以直接将第四数值作为第三权重值。相应的,电子设备可以通过以下公式三,将该第二权重值在该第一整型数据范围内偏移该第一量化零点值,得到第三权重值;
公式三:Wuint=Wfloat/scale+Z
其中,Wuint表示第三权重值,Wfloat/scale表示第二权重值,Wfloat表示第一权重值,Z表示第一量化零点值。
在另一种可能的实现方式中,当第四数值在第一整型数据范围内,电子设备直接将第四数值作为第三权重值。当第四数值不在第一整型数据范围内,当第四数值大于第一整型数据范围的最大阈值时,电子设备将该第一整型数据范围的最大阈值作为第三权重值;当第四数值小于第一整型数据范围的最小阈值时,电子设备将该第一整型数据范围的小大阈值作为第三权重值。
例如,当该第一整型数据范围为0-255时,当该第四数值为123时,则第三权重值取123;当该四数值为300时,第三权重值取255;当第四数值为-10时,该第三权重值取0。
在本公开实施例中,由于第一权重数据的权重值范围可以从负数范围到整数范围,而第二权重值不一定为从零开始的数值,因此,电子设备将该第二权重值在该第一整型数据范围内偏移该第一量化零点值,得到第三权重值,可以保证量化后的权重值在第一整型数据范围内,提高了准确性。
并且,电子设备将该第一权重数据映射到第一整型数据量化范围内,从而实现将浮点数据转换为整型数据,降低了神经网络模型的大小。并且,第一权重数据中的权重值一般为float32,而第一整型数据量化范围为uint8对应的整型数据范围。因此,本公开实施例可以实现将数据类型为float32的第一权重数据量化为数据类型为uint8的第二权重数据,从而使得神经网络模型的存储空间降低将近4倍。
S203C:电子设备将基于每个第一权重值得到的第三权重值组成该第二权重数据。
对于第一权重数据中的每个第一权重值,电子设备根据该第一权重值,获取该第一权重值对应的第三权重值,将第一权重数据中的第一权重值修改为第三权重值,得到第二权重数据。
在本公开实施例中,电子设备在通过神经网络模型对待识别语音信号进行识别之前,将神经网络模型中的第一权重数据量化为第二权重数据,从而实现离线量化权重数据,后续使用神经网络模型对待识别语音信号进行识别时,直接根据第二权重数据对待识别语音信号进行识别,不需要在线量化,提高了识别效率。
例如,参见图3,电子设备通过离线量化,将第二语音识别模型的第一权重数据量化为第二权重数据。
在步骤S204中,电子设备获取该多个网络层的至少一个第二网络层的第一偏置数据,该第一偏置数据为浮点型数据矩阵。
其中,该至少一个第二网络层为该多个网络层中的任一至少一个第二网络层,该至少一个第二网络层可以为连续的至少一个网络层也可以为不连续的至少一个网络层,在本公开实施例中,对此不作具体限定。并且,该至少一个第二网络层和至少一个第一网络层可以为相同的网络层,也可以为不同的网络层,在本公开实施例中,对此不作具体限定。
在步骤S205中,电子设备获取样本对象的第三特征数据在该第一整型数据范围内的第四量化尺度值,将该第一量化尺度值和该第四量化尺度值进行乘积运算,得到该第三量化尺度值。
本步骤可以通过以下步骤S205A至S205C实现,包括:
S205A:电子设备获取样本对象的第三特征数据。
电子设备提取样本对象的特征值,将样本对象的特征值组成第三特征数据。
S205B:电子设备确定第三特征数据在第一整型数据范围内的第四量化尺度值。
电子设备确定第三特征数据的最大特征值和最小特征值,根据该第三特征数据的最大特征值和最小特征值,确定该第三特征数据的第四量化尺度值,该电子设备确定第三特征数据的第四量化尺度的方法与电子设备确定第一量化尺度范围的过程相似,在此不再赘述。
S205C:电子设备将该第一量化尺度值和该第四量化尺度值进行乘积运算,得到该第三量化尺度值。
该第三量化尺度值可以为Wscale*Xscale,其中,表示Wscale第一权重数据的第一量化尺度值,Xscale表示第三特征数据的第四量化尺度值。
在步骤S206中,对于第一偏置数据中的第一偏置值,电子设备根据该第三量化尺度值,将该第一偏置值映射到第二整型数据范围内,得到第二偏置值。
其中,该第一偏置数据为浮点型数据矩阵。电子设备确定第一偏置值与第三量化尺度值的商,得到第五数值,根据第五数值,确定第二偏置值。其中,当第五数值为整数时,电子设备可以直接将第五数值作为第二偏置值。相应的,第二偏置值、第一偏置值和第三量化尺度值应该满足以下公式四。
公式四:Bias=Wscale*Xscale(Buint+0)
相应的,电子设备根据该网络层中的第一偏置数据,通过以下公式五,将该网络层中的第一偏置数据中第一偏置值映射到该第二整型数据范围内,得到第二偏置值。
公式五:Buint=Bias/Wscale*Xscale-0;
其中,Bias表示该第一偏置数据中的第一偏置值,Wscale*Xscale表示第三量化尺度值,表示Buint第二偏置值。
需要说明的一点是,该第二偏置值不是整数时,将该第五数值进行取整,得到第二偏置值。其中,该取整方式可以为四舍五入取整、上取整或下取整等,在本公开实施例中,对第二偏置值的取整方式不作具体限定。
需要说明的另一点是,该第二整型数据范围的最大阈值可以等于该第一整型数据范围的最大阈值。相应的,本公开实施例可以实现神经网络模型的对称量化。该第二整型数据范围的最大阈值还可以大于该第一整型数据范围的最大阈值。相应的,本公开实施例可以实现神经网络模型的非对称量化。当第二整型数据范围的最大阈值还可以大于该第一整型数据范围的最大阈值时,第一整型数据范围为uint8类型的整型数据对应的数据范围,该第二整型数据范围可以为uint16或uint32类型的整型数据对应的数据范围。
在步骤S207中,电子设备将第二偏置值组成第二偏置数据。
对于第一偏置数据中的每个第一偏置值,电子设备将第一偏置数据中的第一偏置值替换为第二偏置值,得到第二偏置数据。
需要说明的一点是,电子设备在确定了第一权重数据的第一量化尺度值后,可以先对该第一权重数据进行量化得到第二权重数据,再对第一偏置数据进行量化得到第二偏置数据;电子设备也可以先对第一偏置数据进行量化得到第二偏置数据,再对对该第一权重数据进行量化得到第二权重数据;电子设备还可以同时对第一权重数据和第一偏置数据进行量化,得到第二权重数据和第二偏置数据。即电子设备执行完步骤S202后,可以先执行步骤S203,再执行步骤S204-S207;也可以先执行步骤S204-S207,再执行步骤S203;还可以同时执行步骤S203和步骤S204-S207。在本公开实施例中,对确定第二权重数据和第二偏置数据的顺序不作具体限定。
在本公开实施例中,电子设备在对待识别语音信号进行识别之前,将第二语音识别模型中的第一偏置数据量化为第二偏置数据,从而实现离线量化偏置数据,后续对待识别语音信号进行识别时,直接根据第二偏置数据对待识别语音信号进行识别,不需要在线量化,提高了识别效率。
例如,继续参见图3,电子设备通过离线量化,将第二语音识别模型的第一偏置数据量化为第二偏置数据。
并且,电子设备将该第一偏置数据映射到第一整型数据量化范围内,从而实现将浮点数据转换为整型数据,降低了第二语音识别模型的大小。并且,第一偏置数据中的权重值一般为float32,而第一整型数据量化范围为uint8对应的整型数据范围。因此,本公开实施例可以实现将数据类型为float32的第一偏置数据量化为数据类型为uint8的第二偏置数据,从而使得第二语音识别模型的存储空间降低将近4倍。
在步骤S208中,电子设备将该至少一个第一网络层的第一权重数据替换为该第二权重数据,将该至少一个第二网络层的第一偏置数据替换为该第二偏置数据,得到第一语音识别模型。
其中,第一语音识别模型为将第二语音识别模型的网络层中的参数替换为量化后的参数得到的神经网络模型。
在本步骤中,对于每个第一网络层,电子设备根据该第一网络层的第一权重数据,确定用于存储第一权重数据的第一存储空间;删除该第一存储空间中的第一权重数据,将基于该第一权重数据获取的第二权重数据存储在该第一存储空间中。
对于每个第二网络层,电子设备根据该第二网络层的第一偏置数据,确定用于存储第一偏置数据的第二存储空间;删除该第二存储空间中的第一偏置数据,将基于该第一偏置数据获取的第二偏置数据存储在该第二存储空间中。基于该第一存储空间的第二权重数据和第二存储空间中的第二偏置数据,得到第一语音识别模型。
在本公开实施例中,通过量化后的第一语音识别模型,对待识别语音信号进行识别,根据量化后的整型权重数据和整型偏置数据对待识别语音信号进行计算,进而识别该待识别语音信号,避免了通过浮点型数据进行计算,提高了语音识别时的运算速度,提高了语音识别的效率。
并且,在对神经网络模型进行量化时,不仅量化权重数据,还量化偏置数据,从而降低了神经网络模型占用的存储空间;并且,在对权重数据和偏置数据进行量化时,对于每个网络层,确定第一量化尺度值和第一量化零点值,根据第一量化尺度值和第一量化零点值对权重数据进行量化,根据第一量化尺度值对偏置数据进行量化,不需要进行多级量化,从而降低了预算量。
在本公开实施例中,电子设备将该至少一个第一网络层的第一权重数据替换为该第二权重数据,将该至少一个第二网络层的第一偏置数据替换为该第二偏置数据,得到第一语音识别模型。由于第二权重数据和第二偏置数据均为整型数据矩阵,因此,第一语音识别模型会占用较小存储空间。
电子设备完成对第二语音识别模型的量化,得到量化后的第一语音识别模型后,可以根据量化后的第一语音识别模型进行语音识别。图4是根据一示例性实施例示出的一种语音识别方法的流程图。在本公开实施例中,以电子设备通过量化后的第一语音识别模型,识别待识别的语音信号,得到识别结果的过程为例,进行说明。如图4所示,该语音识别方法包括以下步骤。
在步骤S401中,当通过第一语音识别模型对待识别语音信号进行识别时,电子设备获取待识别语音信号。
在本步骤中,电子设备可以获取用户输入的待识别语音信号,也可以获取服务器发送的待识别语音信号。相应的,当该待识别语音信号为用户输入的待识别语音信号时,电子设备接收用户输入的待识别语音信号。当该待识别语音信号为服务器发送的待识别语音信号时,电子设备接收服务器发送的待识别语音信号。
在步骤S402中,电子设备将该待识别语音信号输入至第一语音识别模型中。
其中,该第一语音识别模型包括多个网络层,该多个网络层中的至少一个第一网络层的权重数据为量化后的整型数据矩阵,该多个网络层中的至少一个第二网络层的偏置数据为量化后的整型数据矩阵。
需要说明的一点是,在本公开实施例中,以上步骤S201-S208可以仅执行一次,之后通过第一识别模型进行识别时,可以直接通过该第一识别模型进行语音识别;以上步骤S201-S208还可以在每次进行语音识别之前都执行一次,在本公开实施例中,对此不作具体限定。
在步骤S403中,电子设备确定该待识别语音信号在该多个网络层的至少一个第三网络层的第一特征数据。
当第二神经网络对待识别语音信号进行识别时,待识别语音信号的第一特征数据通过该第一语音识别模型中的至少一个第三网络层。其中,该至少一个第三网络层可以与至少一个第一网络层和至少一个第二网络层相同,也可以与至少一个第一网络层和至少一个第二网络层不同,在本公开实施例中,对此不作具体限定。
在步骤S404中,电子设备确定该至少一个第三网络层的第一特征数据在该第一整型数据范围内的第二量化尺度值和第二量化零点值,该第一特征数据为浮点型数据矩阵。
对于神经网络中的每层网络层,电子设备根据第一整型数据范围确定该第一特征数据的第二量化尺度值和第二量化零点值。该电子设备确定该第一特征数据的第二量化尺度值和第二量化零点值的过程与电子设备确定第一权重数据的第一量化尺度值和第一量化零点值的过程相似,在此不再赘述。当第一语音识别模型为语音识别模型时,该待识别语音信号可以为语音信号;当第一语音识别模型为图像识别模型时,该待识别语音信号可以为图像。
在步骤S405中,电子设备根据该第二量化尺度和该第二量化零点值,基于该第一特征数据获取第二特征数据,该第二特征数据为整型数据矩阵。
该过程可以通过以下步骤S405A-S405C实现,包括:
S405A:对于该第一特征数据中的每个第一特征值,电子设备根据该第二量化尺度值,将该第一特征值映射到该第一整型数据范围内,得到第二特征值。
该过程与步骤S203A中,电子设备根据第一量化尺度值,将第一权重数据的第一权重值量化为第二权重值的过程相似,在此不再赘述。
S405B:电子设备将该第二特征值在该第一整型数据范围内偏移该第二量化零点值,得到第三特征值。
该过程与步骤S203B中,电子设备将第二权重值偏移第一量化零点值,得到第三权重值的过程相似,在此不再赘述。
S405C:电子设备将基于每个第一特征值得到的第三特征值组成该第二特征数据。
该过程步骤S203C相似,在此不再赘述。
在本公开实施例中,不仅对神经网络模型的权重数据和偏置数据进行量化,还对待识别语音信号的特征数据进行量化,从而在识别过程中,将浮点型数据的运算转化为了整型数据的运算,节省了运算过程中数据占用的空间,并且,由于将浮点型数据转化为了整型数据进行运算,提高了数据的运算速度,减少了运算消耗的功耗,提高了语音识别的效率。
在步骤S406中,电子设备根据该第一语音识别模型中每个网络层的权重数据、偏置数据和特征数据,对该待识别语音信号进行识别,得到识别结果。
在本步骤中,第一语音识别模型对输入的待识别语音信号进行识别。该待识别语音信号可以为终端中下载或播放的音频文件或视频文件中的音频数据,由于第二语音识别模型可以用于识别发出该待识别语音信号的用户性别、待识别语音信号对应的文字信息或者歌曲名称等,相应的,对第二语音识别模型进行量化后得到的第一语音识别模型也可以用于识别发出该待识别语音信号的用户性别、待识别语音信号对应的文字信息或者歌曲名称等。相应的,当该第一语音识别模型用于识别发出该待识别语音信号的用户性别时,该待识别语音信号还可以为语音通话过程中的通话数据等,该识别结果可以为男或女;当该第一语音识别模型用于待识别语音信号对应的文字信息时,该识别结果可以为该待识别语音信号对应的文字信息;当该第一语音识别模型用于识别待识别语音信号对应的歌曲名称时,该识别结果可以为待识别语音信号对应的歌曲名称。在本公开实施例中,对该第一识别模型识别待识别语音信号的结果也不作具体限定。
本步骤可以通由以下步骤S406A-S406E实现,包括:
S406A:对于每个网络层,电子设备将该网络层的特征数据和权重数据进行点乘运算,得到第一运算结果。
当该网络层的权重数据被量化时,该网络层的权重数据为第二权重数据;当该网络层的权重数据没有被量化时,该网络层的权重数据为第一权重数据。当该网络层的特征数据被量化时,该网络层的特征数据为第二特征数据。当该网络层的特征数据没有被量化时,该网络层的特征数据为第一特征数据。在本步骤中,以将该网络层的权重数据被量化和特征数据均被量化为例进行说明。相应的,本步骤可以为:
电子设备可以将该网络层的后的第二特征数据和第二权重数据进行点成运算,得到运算后的第一运算结果,该第一运算结果为整型数据矩阵。例如,第二权重数据Wuint与第二特征数据Xuint进行点乘运算,得到第一预算结果Ruint
例如,参见图5,电子设备将第二特征数据Wuint和该第二权重数据Xuint进行点乘运算,得到第一运算结果,第一运算结果为uint32类型的整型数据。
S406B:电子设备将该第一运算结果与该网络层的偏置数据进行求和运算,得到第二运算结果。
当该网络层的偏置数据被量化时,该网络层的偏置数据为第二偏置数据;当该网络层的偏置数据没有被量化时,该网络层的偏置数据为第一偏置数据。在本步骤中,以将该网络层的偏置数据被量化为例进行说明。相应的,本步骤可以为:
例如,继续参见图5,电子设备将第一运算结果和第二偏置数据Buint32相加,得到第二运算结果,第二运算结果也为uint32类型的整型数据。
S406C:电子设备对该第二运算结果进行逆量化运算,得到第三运算结果。
电子设备确定第三量化尺度值与第二运算结果的乘积,得到第三运算结果。相应的,电子设备可以通过以下公式六对对该第二运算结果进行逆量化运算,得到第三运算结果。
公式六:A=Wscale*Xscale*(Ruint+Buint)
其中,A为第三运算结果,Wscale*Xscale为第三量化尺度值,Ruint+Buint表示第二运算结果;Wscale表示第一量化尺度值,Xscale表示第二量化尺度值。
例如,继续参见图5,电子设备将第二运算结果进行你量化,得到第三运算结果,第三运算结果为浮点型数据(float)。
在本公开实施例中,电子设备利用整型数据完成运算后,将运算得到的第二运算结果逆运算为浮点类型的第三运算结果,从而保真数据的真实准确性,提高了识别准确性。
在本公开实施例中,当该网络层中的特征数据、权重数据都被量化和偏置数据都被量化时,第一语音识别模型包括多个网络层,在通过第一语音识别模型对待识别语音信号进行识别时,先获取待识别语音信号的第一特征数据,将第一特征数据输入第一个网络层,在第一个网络层中通过以上步骤S406A-S406C确定第一个网络层的运算结果,将第一个网络层的运算结果作为第二个网络层的第一特征数据,输入到第二个网络层中,然后再通过以上步骤S406A-S406C确定第二个网络层的运算结果,依次类推,直到最后一个网络层确定出运算结果为止,而最后一个网络层确定出的运算结果即为该待识别语音信号的识别结果。相应的,执行完步骤S406C之后,确定该运算所在的网络层是否为神经网络模型中的最后一个网络层;当该运算所在的网络层是神经网络模型中的最后一个网络层时,执行步骤S406D。当该运算所在的网络层不是神经网络模型中的最后一个网络层时,执行步骤S406E。
S406D:当该网络层是该第一语音识别模型中的最后一个网络层时,电子设备根据该第三运算结果,确定该待识别语音信号的识别结果。
电子设备将第三运算结果输入到激活函数,得到该识别对象的识别结果。其中,激活函数为用于确定识别结果的函数。
S406E:当该网络层不是该第一语音识别模型中的最后一个网络层时,电子设备将该第三运算结果作为下一网络层的第一特征数据,继续执行步骤S404,直到得到待识别语音信号的识别结果为止。
当该网络层不是该神经网络模型中的最后一个网络层时,将该第三运算结果作为下一网络层的第一特征数据;根据下一网络层的第一特征数据,确定下一网络层的第二特征数据;将下一网络层的第二特征数据和下一网络层的第二权重数据进行点成运算,得到第四运算结果;将第四运算结果与下一网络层的第二偏置数据进行求和运算,得到第五运算结果;对第五运算结果进行逆量化运算,得到第六运算结果;当下一网络层是第一语音识别模型中的最后一个网络层时,将第六运行结果作为待识别语音信号的识别结果。当下一网络层不是神经网络模型中的最后一个网络层时,继续执行步骤S404,直到得到待识别语音信号的识别结果为止。
例如,继续参见图5,电子设备将第三运算结果(float)输入到激活函数中,得到当前网络层的下一个网络层的第一特征数据,该第一特征数据为float类型的特征数据。
在本公开实施例中,通过量化后的第一语音识别模型,对待识别语音信号进行识别,根据量化后的整型权重数据和整型偏置数据对待识别语音信号进行计算,进而识别该待识别语音信号,避免了通过浮点型数据进行计算,提高了语音识别时的运算速度,提高了语音识别的效率。
图6是根据一示例性实施例示出的一种语音识别方法的流程图,在本公开实施例中,以通过离线量化权重数据和在线量化偏置数据的方法得到第一语音识别模型后,根据该第一语音识别模型进行语音识别为例进行说明,如图6所示,该语音识别方法包括以下步骤。
在步骤S601中,电子设备获取第二语音识别模型的至少一个第一网络层的第一权重数据,该第一权重数据为浮点型数据矩阵。
本步骤与步骤S201相同,在此不再赘述。
在步骤S602中,电子设备确定该至少一个第一网络层的第一权重数据在第一整型数据范围内的第一量化尺度值和第一量化零点值。
本步骤与步骤S202相同,在此不再赘述。
在步骤S603中,电子设备根据该第一量化尺度值和该第一量化零点值,基于该第一权重数据获取第二权重数据,该第二权重数据为整型数据矩阵。
本步骤与步骤S203相同,在此不再赘述。
在步骤S604中,当通过第一语音识别模型对待识别语音信号进行识别时,电子设备获取待识别语音信号。
本步骤与步骤S401相同,在此不再赘述。
在步骤S605中,电子设备将该待识别语音信号输入至第一语音识别模型中。
本步骤与步骤S402相同,在此不再赘述。
在步骤S606中,电子设备确定该待识别语音信号在该多个网络层的至少一个第三网络层的第一特征数据。
本步骤与步骤S403相同,在此不再赘述。
在步骤S607中,电子设备确定该至少一个第三网络层的第一特征数据在该第一整型数据范围内的第二量化尺度值和第二量化零点值,该第一特征数据为浮点型数据矩阵。
本步骤与步骤S404相似,在此不再赘述。
在步骤S608中,电子设备获取该待识别语音信号的第一特征数据在该第一整型数据范围内的第二量化尺度值,将该第一量化尺度值和该第二量化尺度值进行乘积运算,得到该第三量化尺度值。
在本步骤中,当开始对待识别语音信号进行识别时,电子设备获取该待识别语音信号的第一特征数据对应的第二量化尺度值进行量化,将第一量化尺度和该识别对象中的第一特征数据中的第二量化尺度相乘,得到该第三量化尺度值,该过程与步骤S205相似,在此不再赘述。
在本公开实施例中,通过将第一权重数据进行离线量化,使得在识别过程中不需要再对该第一权重数据在进行量化,提高了识别过程中的运算速度,并且,在识别时计算该网络层对应的第一偏置数据,使偏置数据更加精确,进而保证运算结果更加精确。
在步骤S609中,对于第一偏置数据中的第一偏置值,电子设备根据该第三量化尺度值,将该第一偏置值映射到第二整型数据范围内,得到第二偏置值。
本步骤与步骤S206相似,在此不再赘述。
在步骤S610中,电子设备将第二偏置值组成第二偏置数据。
本步骤与步骤S207相似,在此不再赘述。
在步骤S611中,电子设备将该至少一个第一网络层的第一权重数据替换为该第二权重数据,将该至少一个第二网络层的第一偏置数据替换为该第二偏置数据,得到第一语音识别模型。
本步骤与步骤S208相似,在此不再赘述。
在步骤S612中,电子设备根据该第二量化尺度和该第二量化零点值,基于该第一特征数据获取第二特征数据,该第二特征数据为整型数据矩阵。
本步骤与步骤S405相似,在此不再赘述。
需要说明的一点是,电子设备在确定第二量化尺度和第二量化零点值后,可以先确定第二偏置数据,再确定第二特征数据;也可以先确定第二特征数据,再确定第二偏置数据;还可以同时确定第二偏置数据和第二特征数据。即电子设备执行完步骤S606后,可以先执行步骤S607-S609,再执行步骤S610-S611,也可以先执行步骤S610-S611,再执行步骤S607-S609,还可以同时执行步骤S607-S609和步骤S610-S611,在本公开实施例中,对此不作具体限定。
在步骤S613中,电子设备根据该第一语音识别模型中每个网络层的权重数据、偏置数据和特征数据,对该待识别语音信号进行识别,得到识别结果。
本步骤与步骤S406相似,在此不再赘述。
例如,参见图7,电子设备将第二特征数据Wuint和该第二权重数据Xuint进行点乘运算,得到第一运算结果,第一运算结果为uint32类型的整型数据。电子设备将第一偏置值Bias-float量化为第二偏置值Bias-uint32;电子设备将第一运算结果和第二偏置数据Buint32相加,得到第二运算结果,第二运算结果也为uint32类型的整型数据。电子设备将第二运算结果进行你量化,得到第三运算结果,第三运算结果为浮点型数据(float)。电子设备将第三运算结果(float)输入到激活函数中,得到当前网络层的下一个网络层的第一特征数据,该第一特征数据为float类型的特征数据。
在本公开实施例中,通过量化后的第一语音识别模型,对待识别语音信号进行识别,根据量化后的整型权重数据和整型偏置数据对待识别语音信号进行计算,进而识别该待识别语音信号,避免了通过浮点型数据进行计算,提高了语音识别时的运算速度,提高了语音识别的效率。
并且,通过将第一权重数据进行离线量化,使得在识别过程中不需要再对该第一权重数据在进行量化,提高了识别过程中的运算速度,并且,在识别时计算该网络层对应的第一偏置数据,使偏置数据更加精确,进而保证运算结果更加精确。
图8是根据一示例性实施例示出的一种语音识别装置框图。参照图8,该装置包括第一获取模块801、输入模块802和识别模块803。
第一获取模块801,被配置为获取待识别语音信号;
输入模块802,被配置为将该待识别语音信号输入至第一语音识别模型中,该第一语音识别模型包括多个网络层,该多个网络层中的至少一个第一网络层的权重数据为量化后的整型数据矩阵,该多个网络层中的至少一个第二网络层的偏置数据为量化后的整型数据矩阵;
识别模块803,被配置为通过该第一语音识别模型中的每个网络层的权重数据和型偏置数据对该待识别语音信号进行识别,得到语音识别结果。
在一种可能的实现方式中,该装置还包括:
第二获取模块,被配置为获取第二语音识别模型中的该至少一个第一网络层的第一权重数据,该第一权重数据为浮点型数据矩阵;
第一确定模块,被配置为确定该至少一个第一网络层的第一权重数据在第一整型数据范围内的第一量化尺度值和第一量化零点值;
第三获取模块,被配置为根据该第一量化尺度值和该第一量化零点值,基于该第一权重数据获取第二权重数据,该第二权重数据为整型数据矩阵;
第四获取模块,被配置为获取该至少一个第二网络层的第一偏置数据,该第一偏置数据为浮点型数据矩阵;
第五获取模块,被配置为根据该第一量化尺度值,基于该第一偏置数据获取第二偏置数据,该第二偏置数据为整型数据矩阵;
替换模块,被配置为将该第二语音识别模型中的该至少一个第一网络层的第一权重数据替换为该第二权重数据,该至少一个第二网络层的第一偏置数据替换为该第二偏置数据,得到该第一语音识别模型。
在另一种可能的实现方式中,该第三获取模块,还被配置为对于该第一权重数据中的每个第一权重值,根据该第一量化尺度值,将该第一权重值映射到该第一整型数据范围内,得到第二权重值;将该第二权重值在该第一整型数据范围内偏移该第一量化零点值,得到第三权重值;将基于每个第一权重值得到的第三权重值组成该第二权重数据。
在另一种可能的实现方式中,该第五获取模块,还被配置为根据该第一量化尺度值,确定第三量化尺度值;对于该第一偏置数据中的第一偏置值,根据该第三量化尺度值,将该第一偏置值映射到第二整型数据范围内,得到第二偏置值,该第二整型数据范围与该第一整型数据范围不同;将该第二偏置值组成该第二偏置数据。
在另一种可能的实现方式中,该第五获取模块,还被配置为获取样本对象的第三特征数据在该第一整型数据范围内的第四量化尺度值,将该第一量化尺度值和该第四量化尺度值进行乘积运算,得到该第三量化尺度值;或者,当对待识别语音信号进行识别时,获取该待识别语音信号的第一特征数据在该第一整型数据范围内的第二量化尺度值,将该第一量化尺度值和该第二量化尺度值进行乘积运算,得到该第三量化尺度值。
在另一种可能的实现方式中,该第一确定模块,还被配置为根据该第一权重数据,确定第一权重阈值和第二权重阈值;根据该第一权重阈值和该第二权重阈值和该第一整型数据范围内,确定该第一量化尺度值;根据该第一量化尺度值,量化该第二权重阈值,得到该第一量化零点值。
在另一种可能的实现方式中,该第一确定模块,还被配置为从该第一权重数据中选择最大权重值和最小权重值,将该最大权重值作为该第一权重阈值,以及将该最小权重值作为该第二权重阈值;或者,从该第一权重数据中选择最大权重值和最小权重值,将该最大权重值与第一系数的乘积作为该第一权重阈值,以及将该最小权重值与第二系数的乘积作为该第二权重阈值。
在另一种可能的实现方式中,该识别模块803,还被配置为确定该待识别语音信号在该多个网络层的至少一个第三网络层的第一特征数据;确定该至少一个第三网络层的第一特征数据在该第一整型数据范围内的第二量化尺度值和第二量化零点值,该第一特征数据为浮点型数据矩阵;根据该第二量化尺度和该第二量化零点值,基于该第一特征数据获取第二特征数据,该第二特征数据为整型数据矩阵;根据该第一语音识别模型中每个网络层的权重数据、偏置数据和特征数据,对该待识别语音信号进行识别,得到识别结果。
在另一种可能的实现方式中,该识别模块803,还被配置为对于该第一特征数据中的每个第一特征值,根据该第二量化尺度值,将该第一特征值映射到该第一整型数据范围内,得到第二特征值;将该第二特征值在该第一整型数据范围内偏移该第一量化零点值,得到第三特征值;将基于每个第一特征值得到的第三特征值组成该第二特征数据。
在另一种可能的实现方式中,该识别模块803,还被配置为对于每个网络层,将该网络层的特征数据和权重数据进行点乘运算,得到第一运算结果;将该第一运算结果与该网络层的偏置数据进行求和运算,得到第二运算结果;对该第二运算结果进行逆量化运算,得到第三运算结果;当该网络层是该第一语音识别模型中的最后一个网络层时,根据该第三运算结果,确定该待识别语音信号的识别结果。
在另一种可能的实现方式中,该装置还包括:
第二确定模块,被配置为当该网络层不是该第一语音识别模型中的最后一个网络层时,将该第三运算结果作为下一网络层的第一特征数据,根据该下一网络层的第一特征数据,确定该下一网络层的第二特征数据;
第一运算模块,被配置为将该下一网络层的第二特征数据和该下一网络层的权重数据进行点成运算,得到第四运算结果;
第二运算模块,被配置为将该第四运算结果与该下一网络层的偏置数据进行求和运算,得到第五运算结果;
第三运算模块,被配置为对该第五运算结果进行逆量化运算,得到第六运算结果;
第三确定模块,被配置为当该下一网络层是该第一语音识别模型中的最后一个网络层时,根据该第六运算结果,确定该待识别语音信号的识别结果。
在本公开实施例中,通过量化后的第一语音识别模型,对待识别语音信号进行识别,根据量化后的整型权重数据和整型偏置数据对待识别语音信号进行计算,进而识别该待识别语音信号,避免了通过浮点型数据进行计算,提高了语音识别时的运算速度,提高了语音识别的效率。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9示出了本公开一个示例性实施例提供的电子设备900的结构框图。该电子设备900可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group AudioLayer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts GroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。电子设备900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,电子设备900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请中方法实施例提供的语音识别方法。
在一些实施例中,电子设备900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907、定位组件908和电源909中的至少一种。
外围设备接口903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置电子设备900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在电子设备900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在电子设备900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位电子设备900的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件908可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源909用于为电子设备900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,电子设备900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器917。
加速度传感器911可以检测以电子设备900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测电子设备900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对电子设备900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在电子设备900的侧边框和/或显示屏905的下层。当压力传感器913设置在电子设备900的侧边框时,可以检测用户对电子设备900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在显示屏905的下层时,由处理器901根据用户对显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置电子设备900的正面、背面或侧面。当电子设备900上设置有物理按键或厂商Logo时,指纹传感器914可以与物理按键或厂商Logo集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制显示屏905的显示亮度。具体地,当环境光强度较高时,调高显示屏905的显示亮度;当环境光强度较低时,调低显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器917,也称距离传感器,通常设置在电子设备900的前面板。接近传感器917用于采集用户与电子设备900的正面之间的距离。在一个实施例中,当接近传感器917检测到用户与电子设备900的正面之间的距离逐渐变小时,由处理器901控制显示屏905从亮屏状态切换为息屏状态;当接近传感器917检测到用户与电子设备900的正面之间的距离逐渐变大时,由处理器901控制显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对电子设备900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述语音识别方法。
在示例性实施例中,还提供了一种应用程序,当应用程序中的指令由电子设备的处理器执行时,使得电子设备能够执行上述语音识别方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (20)

1.一种语音识别方法,其特征在于,包括:
获取第二语音识别模型中的至少一个第一网络层的第一权重数据;根据所述第一权重数据,确定第一权重阈值和第二权重阈值,所述第一权重阈值和所述第二权重阈值为基于所述第一权重数据的数据范围确定的,所述第一权重数据为浮点型数据矩阵;
确定所述第一权重阈值和所述第二权重阈值的差,得到第一数值;确定所述第一数值与第一整型数据范围的最大阈值的商,得到第一量化尺度值,所述第一整型数据范围为根据整型数据的类型确定的;
根据所述第一量化尺度值,量化所述第二权重阈值,得到第一量化零点值;
对于所述第一权重数据中的每个第一权重值,根据所述第一权重值和所述第一量化尺度值的商,确定第二权重值;将所述第二权重值在所述第一整型数据范围内偏移所述第一量化零点值,得到第三权重值;将基于每个第一权重值得到的第三权重值组成第二权重数据,所述第二权重数据为整型数据矩阵;
将第二语音识别模型中至少一个第一网络层的第一权重数据替换为所述第二权重数据,得到第一语音识别模型;
当对待识别语音信号进行识别时,获取所述待识别语音信号;将所述待识别语音信号输入至所述第一语音识别模型中,通过所述第一语音识别模型对所述待识别语音信号进行识别,得到语音识别结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取至少一个第二网络层的第一偏置数据;
根据所述第一量化尺度值和第一特征数据,基于所述第一偏置数据获取第二偏置数据;
所述将第二语音识别模型中至少一个第一网络层的第一权重数据替换为所述第二权重数据,得到第一语音识别模型,包括:
将所述第二语音识别模型中的所述至少一个第一网络层的第一权重数据替换为所述第二权重数据,所述至少一个第二网络层的第一偏置数据替换为所述第二偏置数据,得到所述第一语音识别模型。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一量化尺度值和第一特征数据,基于所述第一偏置数据获取第二偏置数据,包括:
根据所述第一量化尺度值和所述第一特征数据,确定第三量化尺度值;
对于所述第一偏置数据中的第一偏置值,根据所述第三量化尺度值,将所述第一偏置值映射到第二整型数据范围内,得到第二偏置值,所述第二整型数据范围与所述第一整型数据范围不同;
将所述第二偏置值组成所述第二偏置数据。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一量化尺度值和所述第一特征数据,确定第三量化尺度值,包括:
获取所述待识别语音信号的第一特征数据在所述第一整型数据范围内的第二量化尺度值,将所述第一量化尺度值和所述第二量化尺度值进行乘积运算,得到所述第三量化尺度值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一权重数据,确定第一权重阈值和第二权重阈值,包括:
从所述第一权重数据中选择最大权重值和最小权重值,将所述最大权重值作为所述第一权重阈值,以及将所述最小权重值作为所述第二权重阈值;或者,
从所述第一权重数据中选择最大权重值和最小权重值,将所述最大权重值与第一系数的乘积作为所述第一权重阈值,以及将所述最小权重值与第二系数的乘积作为所述第二权重阈值。
6.根据权利要求1所述的方法,其特征在于,所述将所述待识别语音信号输入至所述第一语音识别模型中,通过所述第一语音识别模型对所述待识别语音信号进行识别,得到语音识别结果,包括:
确定所述待识别语音信号在所述第一语音识别模型的多个网络层的至少一个第三网络层的第一特征数据;
确定所述至少一个第三网络层的第一特征数据在所述第一整型数据范围内的第二量化尺度值和第二量化零点值,所述第一特征数据为浮点型数据矩阵;
根据所述第二量化尺度和所述第二量化零点值,基于所述第一特征数据获取第二特征数据;
根据所述第二特征数据、所述第一语音识别模型中的每个网络层的权重数据和偏置数据,对所述待识别语音信号进行识别,得到语音识别结果。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第二量化尺度和所述第二量化零点值,基于所述第一特征数据获取第二特征数据,包括:
对于所述第一特征数据中的每个第一特征值,根据所述第二量化尺度值,将所述第一特征值映射到所述第一整型数据范围内,得到第二特征值;
将所述第二特征值在所述第一整型数据范围内偏移所述第一量化零点值,得到第三特征值;
将基于每个第一特征值得到的第三特征值组成所述第二特征数据。
8.根据权利要求6所述的方法,其特征在于,所述根据所述第二特征数据、所述第一语音识别模型中的每个网络层的权重数据和偏置数据,对所述待识别语音信号进行识别,得到语音识别结果,包括:
对于每个网络层,将所述网络层的特征数据和权重数据进行点乘运算,得到第一运算结果;
将所述第一运算结果与所述网络层的偏置数据进行求和运算,得到第二运算结果;
对所述第二运算结果进行逆量化运算,得到第三运算结果;
当所述网络层是所述第一语音识别模型中的最后一个网络层时,根据所述第三运算结果,确定所述待识别语音信号的语音识别结果。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当所述网络层不是所述第一语音识别模型中的最后一个网络层时,将所述第三运算结果作为下一网络层的第一特征数据,根据所述下一网络层的第一特征数据,确定所述下一网络层的第二特征数据;
将所述下一网络层的第二特征数据和所述下一网络层的权重数据进行点成运算,得到第四运算结果;
将所述第四运算结果与所述下一网络层的偏置数据进行求和运算,得到第五运算结果;
对所述第五运算结果进行逆量化运算,得到第六运算结果;
当所述下一网络层是所述第一语音识别模型中的最后一个网络层时,根据所述第六运算结果,确定所述待识别语音信号的语音识别结果。
10.一种语音识别装置,其特征在于,包括:
替换模块,被配置为获取第二语音识别模型中的至少一个第一网络层的第一权重数据;根据所述第一权重数据,确定第一权重阈值和第二权重阈值,所述第一权重阈值和所述第二权重阈值为基于所述第一权重数据的数据范围确定的,所述第一权重数据为浮点型数据矩阵;确定所述第一权重阈值和所述第二权重阈值的差,得到第一数值;确定所述第一数值与第一整型数据范围的最大阈值的商,得到第一量化尺度值,所述第一整型数据范围为根据整型数据的类型确定的;根据所述第一量化尺度值,量化所述第二权重阈值,得到第一量化零点值;对于所述第一权重数据中的每个第一权重值,根据所述第一权重值和所述第一量化尺度值的商,确定第二权重值;将所述第二权重值在所述第一整型数据范围内偏移所述第一量化零点值,得到第三权重值;将基于每个第一权重值得到的第三权重值组成第二权重数据,所述第二权重数据为整型数据矩阵;将第二语音识别模型中至少一个第一网络层的第一权重数据替换为所述第二权重数据,得到第一语音识别模型;
第一获取模块,被配置为当对待识别语音信号进行识别时,获取所述待识别语音信号;将所述待识别语音信号输入至所述第一语音识别模型中,通过所述第一语音识别模型对所述待识别语音信号进行识别,得到语音识别结果。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第四获取模块,被配置为获取至少一个第二网络层的第一偏置数据;
第五获取模块,被配置为根据所述第一量化尺度值和第一特征数据,基于所述第一偏置数据获取第二偏置数据;
所述替换模块,还被配置为将所述第二语音识别模型中的所述至少一个第一网络层的第一权重数据替换为所述第二权重数据,所述至少一个第二网络层的第一偏置数据替换为所述第二偏置数据,得到所述第一语音识别模型。
12.根据权利要求11所述的装置,其特征在于,
所述第五获取模块,还被配置为根据所述第一量化尺度值和所述第一特征数据,确定第三量化尺度值;对于所述第一偏置数据中的第一偏置值,根据所述第三量化尺度值,将所述第一偏置值映射到第二整型数据范围内,得到第二偏置值,所述第二整型数据范围与所述第一整型数据范围不同;将所述第二偏置值组成所述第二偏置数据。
13.根据权利要求12所述的装置,其特征在于,
所述第五获取模块,还被配置为获取所述待识别语音信号的第一特征数据在所述第一整型数据范围内的第二量化尺度值,将所述第一量化尺度值和所述第二量化尺度值进行乘积运算,得到所述第三量化尺度值。
14.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第一确定模块,被配置为从所述第一权重数据中选择最大权重值和最小权重值,将所述最大权重值作为所述第一权重阈值,以及将所述最小权重值作为所述第二权重阈值;或者,从所述第一权重数据中选择最大权重值和最小权重值,将所述最大权重值与第一系数的乘积作为所述第一权重阈值,以及将所述最小权重值与第二系数的乘积作为所述第二权重阈值。
15.根据权利要求10所述的装置,其特征在于,
所述第一获取模块,还被配置为确定所述待识别语音信号在所述第一语音识别模型的多个网络层的至少一个第三网络层的第一特征数据;确定所述至少一个第三网络层的第一特征数据在所述第一整型数据范围内的第二量化尺度值和第二量化零点值,所述第一特征数据为浮点型数据矩阵;根据所述第二量化尺度和所述第二量化零点值,基于所述第一特征数据获取第二特征数据;根据所述第二特征数据、所述第一语音识别模型中的每个网络层的权重数据和偏置数据,对所述待识别语音信号进行识别,得到语音识别结果。
16.根据权利要求15所述的装置,其特征在于,
所述第一获取模块,还被配置为对于所述第一特征数据中的每个第一特征值,根据所述第二量化尺度值,将所述第一特征值映射到所述第一整型数据范围内,得到第二特征值;将所述第二特征值在所述第一整型数据范围内偏移所述第一量化零点值,得到第三特征值;将基于每个第一特征值得到的第三特征值组成所述第二特征数据。
17.根据权利要求10所述的装置,其特征在于,
所述第一获取模块,还被配置为对于每个网络层,将所述网络层的特征数据和权重数据进行点乘运算,得到第一运算结果;将所述第一运算结果与所述网络层的偏置数据进行求和运算,得到第二运算结果;对所述第二运算结果进行逆量化运算,得到第三运算结果;当所述网络层是所述第一语音识别模型中的最后一个网络层时,根据所述第三运算结果,确定所述待识别语音信号的语音识别结果。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第二确定模块,被配置为当所述网络层不是所述第一语音识别模型中的最后一个网络层时,将所述第三运算结果作为下一网络层的第一特征数据,根据所述下一网络层的第一特征数据,确定所述下一网络层的第二特征数据;
第一运算模块,被配置为将所述下一网络层的第二特征数据和所述下一网络层的权重数据进行点成运算,得到第四运算结果;
第二运算模块,被配置为将所述第四运算结果与所述下一网络层的偏置数据进行求和运算,得到第五运算结果;
第三运算模块,被配置为对所述第五运算结果进行逆量化运算,得到第六运算结果;
第三确定模块,被配置为当所述下一网络层是所述第一语音识别模型中的最后一个网络层时,根据所述第六运算结果,确定所述待识别语音信号的语音识别结果。
19.一种电子设备,其特征在于,包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行权利要求1-9任一项所述的语音识别方法。
20.一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1-9任一项所述的语音识别方法。
CN201910477949.3A 2019-06-03 2019-06-03 语音识别方法、装置、电子设备及存储介质 Active CN110211593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910477949.3A CN110211593B (zh) 2019-06-03 2019-06-03 语音识别方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910477949.3A CN110211593B (zh) 2019-06-03 2019-06-03 语音识别方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN110211593A CN110211593A (zh) 2019-09-06
CN110211593B true CN110211593B (zh) 2021-10-22

Family

ID=67790471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910477949.3A Active CN110211593B (zh) 2019-06-03 2019-06-03 语音识别方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN110211593B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111368978B (zh) * 2020-03-02 2023-03-24 开放智能机器(上海)有限公司 一种离线量化工具的精度提升方法
CN113066508A (zh) * 2021-03-15 2021-07-02 腾讯科技(深圳)有限公司 语音内容的处理方法、装置、设备及可读存储介质
CN115083423B (zh) * 2022-07-21 2022-11-15 中国科学院自动化研究所 语音鉴别的数据处理方法和装置
CN116913266B (zh) * 2023-09-13 2024-01-05 腾讯科技(深圳)有限公司 一种语音检测方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106575379A (zh) * 2014-09-09 2017-04-19 英特尔公司 用于神经网络的改进的定点整型实现方式
CN106611599A (zh) * 2015-10-21 2017-05-03 展讯通信(上海)有限公司 基于人工神经网络的语音识别方法、装置及电子设备
US20170286830A1 (en) * 2016-04-04 2017-10-05 Technion Research & Development Foundation Limited Quantized neural network training and inference
US20180121796A1 (en) * 2016-11-03 2018-05-03 Intel Corporation Flexible neural network accelerator and methods therefor
US20190042935A1 (en) * 2017-12-28 2019-02-07 Intel Corporation Dynamic quantization of neural networks
CN109766800A (zh) * 2018-12-28 2019-05-17 华侨大学 一种移动端花卉识别模型的构建方法
CN109767000A (zh) * 2019-01-16 2019-05-17 厦门美图之家科技有限公司 基于Winograd算法的神经网络卷积方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107392310A (zh) * 2016-05-16 2017-11-24 北京陌上花科技有限公司 神经网络模型训练方法及装置
CN107748915A (zh) * 2017-11-02 2018-03-02 北京智能管家科技有限公司 深度神经网络dnn模型的压缩方法、装置、设备及介质
CN109635927A (zh) * 2018-12-05 2019-04-16 东软睿驰汽车技术(沈阳)有限公司 一种卷积神经网络训练方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106575379A (zh) * 2014-09-09 2017-04-19 英特尔公司 用于神经网络的改进的定点整型实现方式
CN106611599A (zh) * 2015-10-21 2017-05-03 展讯通信(上海)有限公司 基于人工神经网络的语音识别方法、装置及电子设备
US20170286830A1 (en) * 2016-04-04 2017-10-05 Technion Research & Development Foundation Limited Quantized neural network training and inference
US20180121796A1 (en) * 2016-11-03 2018-05-03 Intel Corporation Flexible neural network accelerator and methods therefor
US20190042935A1 (en) * 2017-12-28 2019-02-07 Intel Corporation Dynamic quantization of neural networks
CN109766800A (zh) * 2018-12-28 2019-05-17 华侨大学 一种移动端花卉识别模型的构建方法
CN109767000A (zh) * 2019-01-16 2019-05-17 厦门美图之家科技有限公司 基于Winograd算法的神经网络卷积方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《Quantization and training of neural networks for efficient integer-arithmetic-only inference》;Benoit Jacob et al.;《IEEE Conference on Computer Vision and Pattern Recognition》;20181231;全文 *
《一种基于FPGA的卷积神经网络加速器的设计与实现》;张榜等;《复旦学报(自然科学版)》;20180430;全文 *

Also Published As

Publication number Publication date
CN110211593A (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
CN109800877B (zh) 神经网络的参数调整方法、装置及设备
CN110211593B (zh) 语音识别方法、装置、电子设备及存储介质
WO2020011169A1 (zh) 伽马校正方法及装置、显示装置、计算机存储介质
CN108304265B (zh) 内存管理方法、装置及存储介质
CN112907725B (zh) 图像生成、图像处理模型的训练、图像处理方法和装置
CN109558837B (zh) 人脸关键点检测方法、装置及存储介质
CN111005715B (zh) 确定气井产量的方法、装置及存储介质
CN112581358B (zh) 图像处理模型的训练方法、图像处理方法及装置
CN110991445B (zh) 竖排文字识别方法、装置、设备及介质
CN110572710B (zh) 视频生成方法、装置、设备及存储介质
CN110619614B (zh) 图像处理的方法、装置、计算机设备以及存储介质
CN109754439B (zh) 标定方法、装置、电子设备及介质
CN112135191A (zh) 视频编辑方法、装置、终端及存储介质
CN111354378A (zh) 语音端点检测方法、装置、设备及计算机存储介质
CN115798417A (zh) 背光亮度的确定方法、装置、设备及计算机可读存储介质
CN110414673B (zh) 多媒体识别方法、装置、设备及存储介质
CN114817709A (zh) 排序方法、装置、设备及计算机可读存储介质
CN111757146B (zh) 视频拼接的方法、系统及存储介质
CN110443841B (zh) 地面深度的测量方法、装置及系统
CN107992230B (zh) 图像处理方法、装置及存储介质
CN111488895B (zh) 对抗数据生成方法、装置、设备及存储介质
CN111916105A (zh) 语音信号处理方法、装置、电子设备及存储介质
CN111723615A (zh) 对检测物图像进行检测物匹配判定的方法和装置
CN112945240B (zh) 特征点位置的确定方法、装置、设备及可读存储介质
CN110792423A (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