CN117351961A - 一种智能语音识别SoC系统 - Google Patents
一种智能语音识别SoC系统 Download PDFInfo
- Publication number
- CN117351961A CN117351961A CN202311512454.2A CN202311512454A CN117351961A CN 117351961 A CN117351961 A CN 117351961A CN 202311512454 A CN202311512454 A CN 202311512454A CN 117351961 A CN117351961 A CN 117351961A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- voice
- mfcc
- weight
- 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.)
- Pending
Links
- 238000000605 extraction Methods 0.000 claims abstract description 38
- 238000004364 calculation method Methods 0.000 claims abstract description 34
- 230000002093 peripheral effect Effects 0.000 claims abstract description 4
- 238000010586 diagram Methods 0.000 claims description 35
- 238000001914 filtration Methods 0.000 claims description 31
- 238000005070 sampling Methods 0.000 claims description 27
- 238000009432 framing Methods 0.000 claims description 20
- 238000010606 normalization Methods 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 13
- 238000001228 spectrum Methods 0.000 claims description 10
- 238000003491 array Methods 0.000 claims description 6
- 230000001133 acceleration Effects 0.000 claims description 5
- 230000037433 frameshift Effects 0.000 claims description 5
- 238000009825 accumulation Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 4
- 238000009499 grossing Methods 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 3
- 230000003139 buffering effect Effects 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims description 2
- 238000013527 convolutional neural network Methods 0.000 abstract description 14
- 238000013528 artificial neural network Methods 0.000 abstract description 6
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/02—Feature extraction for speech recognition; Selection of recognition unit
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/16—Speech classification or search using artificial neural networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供了一种智能语音识别SoC系统,包括:CPU处理器模块与AHB总线模块电连接,通过AHB总线模块发送指令和数据,用于配置挂载在AHB总线模块上的外设模块的相关寄存器进行指定功能的操作和计算,并且存储数据到Sys_SRAM存储模块;PDM语音信号接收模块用于接收CPU处理器模块的指令后,开始接收语音数据;Sys_SRAM存储模块用于接收并存储语音数据;MFCC语音特征提取模块用于处理来自PDM语音信号接收模块的音频数据,得到24维的结果参数数据;CNN卷积网络加速器模块用于处理来自MFCC语音特征提取模块的24维的结果参数数据,生成分类结果。本发明的有益效果在于:实现对语音数据进行高效率语音特征提取以及神经网络推理分类,完成语音唤醒的功能。
Description
技术领域
本发明涉及语音识别技术领域,尤其是指一种智能语音识别SoC系统。
背景技术
近年来,随着语音识别技术的不断普及,语音识别的相关SoC应用受到业界和用户的广泛关注,作为自然语言处理的一条分支,其在移动互联网,智能家居、汽车、医疗等领域广泛应用起来,语音识别SoC系统的大量应用给人们的生活和工作带来了方便。通过智能SoC系统对语音数据进行语音特征提取算法、神经网络推理算法可以对语音信息进行分类提取关键信息从而唤醒整个SoC系统,这项技术在低成本低功耗上体现了巨大的作用。
有鉴于此,有必要提出一种智能语音识别的SoC系统。
发明内容
本发明所要解决的技术问题是:提供一种智能语音识别SoC系统。
为了解决上述技术问题,本发明采用的技术方案为:一种智能语音识别SoC系统,包括CPU处理器模块、Sys_SRAM存储模块、PDM语音信号接收模块、MFCC语音特征提取模块、CNN卷积网络加速器模块及AHB总线模块;
所述CPU处理器模块与AHB总线模块电连接,通过AHB总线模块发送指令和数据,用于配置挂载在AHB总线模块上的外设模块的相关寄存器进行指定功能的操作和计算,并且存储数据到Sys_SRAM存储模块;
所述PDM语音信号接收模块与AHB总线模块电连接,用于接收CPU处理器模块的指令后,开始接收语音数据;
所述Sys_SRAM存储模块与AHB总线模块电连接,用于接收并存储语音数据;
所述MFCC语音特征提取模块与AHB总线模块电连接,用于处理来自PDM语音信号接收模块的音频数据,得到24维的结果参数数据;
所述CNN卷积网络加速器模块与AHB总线模块电连接,用于处理来自MFCC语音特征提取模块的24维的结果参数数据,生成分类结果。
进一步的,所述MFCC语音特征提取模块包括,FIR滤波器模块、分帧模块、预加重模块、汉明窗模块、傅里叶变换DFT模块、Mel滤波模块及离散余弦变换DCT模块;
所述FIR滤波器模块,用于对语音数据进行高频滤波处理,滤除掉噪音信号,把有效的语音信号提取出来;
所述分帧模块,用于接收来自FIR滤波后的语音数据,进行分帧处理,通过帧长和帧移寄存器参数产生的一帧信号;
所述预加重模块,用于接收来自分帧后的有效帧信号,进行预加重处理,突出语音信号的高频特新;
所述汉明窗模块,用于接收来自预加重后的有效帧信号,将时域上的帧信号乘上窗函数增加帧信号两端的连续性,防止频谱泄露,使窗口两端平滑过度到零;
所述傅里叶变换DFT模块,用于接收汉明窗处理后的音频数据,进行傅里叶变换处理,将时域上的帧信号转换为频率上的信号;
所述Mel滤波模块,用于接收傅里叶变换后的频谱数据,进行平滑化处理,采用三角滤波器来消除谐波突显原先语音的共振峰,最后得到特征提取后的语音数据;
所述离散余弦DCT模块,接收梅尔滤波后的梅尔频率系数,通过离散余弦变换得到MFCC系数,并通过差分计算得到相应的MFCC一阶差分参数。
进一步的,所述CNN卷积网络加速器模块包括,Line Buffer行缓存模块、WeightBuffer权重缓存模块、FSM core状态机模块、卷积阵列模块、全连接层模块及归一化模块;
所述Line Buffer行缓存模块和Weight Buffer权重缓存模块,用于缓存部分特征提取后的语音数据和所有权重数据;
所述FSM core状态机模块,用于控制Line Buffer行缓存模块和Weight Buffer权重缓存模块与卷积阵列模块之间的运算状态,根据输入特征图尺寸大小,步长,padding寄存器参数信息控制卷积阵列的运算状态;
所述卷积阵列模块,用于接收来自Line Buffer行缓存模块和Weight Buffer权重缓存模块,对特征提取后的语音数据和权重数据作卷积运算;
所述全连接层模块,用于接收卷积后的数据,进行全连接运算,将数据映射到样本标记空间;
所述归一化模块,用于接收全连接后的数据,进行归一化操作,最后得到的结果数据表示每一类样本的概率,进行语音分类。
进一步的,所述PDM语音信号接收模块,还用于将PDM格式的音频数据转换成PCM格式的音频数据供MFCC语音特征提取模块做特征提取。
进一步的,所述分帧模块,还用于对帧信号进行短时过零率端点检测处理降低无声段的噪声干扰,最后将有效的帧信号输出。
进一步的,所述预加重模块采用的预加重的公式为:y(k)=x(k)-0.95x(k-1);其中,y(k)为预加重处理后的数据,x(k)为当前语音数据采样点,x(k-1)为前一语音数据采样点;通过寄存器寄存前一语音数据采样点x(k-1)并进行移位与减法操作处理得到缩小一定倍数的语音数据采样点0.95x(k-1),然后将当前语音数据采样点x(k)与处理后的前一语音数据采样点0.95x(k-1)进行减法操作得到预加重处理后的数据y(k)。
进一步的,所述傅里叶变换DFT模块,用于对于N点的DFT傅里叶变换,其变换公式为: 其中X(k)为经过傅里叶变换后的频域信号,x(n)为语音数据采样点。
进一步的,所述离散余弦变换DCT模块,具体用于:
接收梅尔滤波后的梅尔频率系数,通过离散余弦变换得到MFCC系数所采用的公式为:其中,c(n)表示离散傅里叶变换后的结果,s(m)表示梅尔频率系数,L表示MFCC系数阶数,M表示三角滤波器个数;
将梅尔滤波倒频系数模块计算得到对数能量代入公式完成离散余弦变换,求出L阶的Mel-scale Cepstrum参数;
通过计数器读取dct_rom中64点的余弦参数相乘后进行迭代累加,累加完成的数据除去最大幅值64,从而得到MFCC参数;
在完成离散余弦变换之后,进行MFCC一阶差分参数计算,将得到每帧的MFCC参数,将其存入寄存器中,当寄存器存满五帧之后,计算其一阶差分系数,即MFCC_dtm=2*(m_r0-m_r4)+(m_r1-m_r2),其中m_r0,m_r1,m_r2,m_r4分别表示MFCC系数在1,2,4,5级寄存器中的存储数据。
进一步的,所述FSM core状态机模块,根据控制寄存器组内的寄存器值,执行相应的卷积状态跳转;具体状态机跳转状态包括:空闲状态、读网络参数状态、读权重参数状态、读输入特征图并计算状态;
空闲状态:初始化后的CNN卷积网络加速模块处于空闲状态,状态机等待CPU给控制寄存器组的相关寄存器的工作使能信号,当接收到相关寄存器的工作使能信号,跳入读网络参数状态,当卷积层计算完成后,状态机跳入空闲状态;
读网络参数状态:通过读取控制寄存器组的相关寄存器,配置相应的网络参数:包括输入特征图尺寸大小、padding操作、数据存储偏移地址、数据复用模式,针对不同的网络尺寸选择最优的网络参数,获得最优的计算效率;
读权重参数状态:通过数据寄存器组从AHB总线模块读取权重数据和bias数据,并存入Weight Buffer权重缓存模块;
读输入特征图并计算状态:通过数据寄存器组从AHB总线模块读取MFCC语音特征提取模块的24维语音特征参数数据,将语音特征参数数据送入Line Buffer行缓存模块,最后Line Buffer行缓存模块输出3x3大小的窗口图,与此同时读取Weight Buffer权重缓存模块的权重数据,完成卷积计算,卷积计算完成后,状态机返回到空闲状态。
进一步的,所述Line Buffer行缓存模块包括移位寄存器,移位寄存器的数量为2L+2,其中L为输入特征图的长度,对应24维的语音特征参数,最后输出一个3x3大小的滑动窗口;
Weight Buffer权重缓存模块为RAM,用于存储权重数据和bias数据,当状态机进入到读输入特征图并计算状态时,开始读取RAM内的数据;
卷积阵列模块包括3组3x3个乘法阵列和3组Adder Tree;3组对应3个通道,可并行完成3通道的计算;每组乘法阵列包含3x3个乘法器,用于3x3大小的输入特征图和3x3大小的权重数据卷积计算,最后输出3组9个乘法结果;每组Adder Tree包含4个加法器,用于计算9个乘法结果的和,每个加法器计算3个加数的和,分两个周期完成9个加数的加法运算。
本发明的有益效果在于:一种智能语音识别SoC系统,包括CPU处理器模块、Sys_SRAM存储模块、PDM语音信号接收模块、MFCC语音特征提取模块、CNN卷积网络加速器模块及AHB总线模块;采用流水的思想实现了MFCC语音特征提取和CNN神经网络的加速,能够实现对语音数据进行高效率语音特征提取以及神经网络推理分类,完成语音唤醒的功能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的机构获得其他的附图。
图1为本发明实施例的智能语音识别SoC系统模块图;
图2为本发明实施例的FIR滤波器模块电路图;
图3为本发明实施例的分帧模块电路图;
图4为本发明实施例的预加重模块电路图;
图5为本发明实施例的汉明窗模块电路图;
图6为本发明实施例的傅里叶变换DFT模块电路图;
图7为本发明实施例的梅尔滤波块Mel模块电路图;
图8为本发明实施例的离散余弦变换DCT模块中的MFCC系数计算模块电路图;
图9为本发明实施例的离散余弦变换DCT模块中的MFCC差分参数计算模块电路图;
图10为本发明实施例的缓存模块和卷积模块电路图;
图11为本发明实施例的归一化模块电路图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
如图1所示,本发明的实施例为:一种智能语音识别SoC系统,包括CPU处理器模块100、Sys_SRAM存储模块200、PDM语音信号接收模块300、MFCC语音特征提取模块400、CNN卷积网络加速器模块500及AHB总线模块600;
所述CPU处理器模块100与AHB总线模块600电连接,通过AHB总线模块600发送指令和数据,用于配置挂载在AHB总线模块600上的外设模块的相关寄存器进行指定功能的操作和计算,并且存储数据到Sys_SRAM存储模块200;
所述PDM语音信号接收模块300与AHB总线模块600电连接,用于接收CPU处理器模块的指令后,开始接收语音数据;
其中,所述PDM语音信号接收模块300,还用于将PDM格式的音频数据转换成PCM格式的音频数据供MFCC语音特征提取模块400做特征提取。
所述Sys_SRAM存储模块200与AHB总线模块600电连接,用于接收并存储语音数据;
所述MFCC语音特征提取模块400与AHB总线模块600电连接,用于处理来自PDM语音信号接收模块300的音频数据,得到24维的结果参数数据;
所述CNN卷积网络加速器模块500与AHB总线模块600电连接,用于处理来自MFCC语音特征提取模块400的24维的结果参数数据,生成分类结果。
在一具体实施例中,所述MFCC语音特征提取模块400主要包括数据寄存器组410、控制寄存器组420、FIR滤波模块430、分帧模块440、预加重模块450、汉明窗模块460、傅里叶变换DFT模块470、Mel滤波模块480、离散余弦变换DCT模块490;
所述数据寄存器组410和控制寄存器组420,主要负责与AHB总线模块600的交互,通过接收AHB总线模块600发送来的地址和数据,向相关的寄存器写入数据,最后FIR滤波模块430、分帧模块440、预加重模块450、汉明窗加窗模块460、傅里叶变换DFT模块470、Mel滤波模块480、离散余弦变换DCT模块490根据数据寄存器组410和控制寄存器组420的寄存器值执行相应的功能操作;
所述FIR滤波器模块430,用于对语音数据进行高频滤波处理,滤除掉噪音信号,把有效的语音信号提取出来;
所述FIR滤波模块430接收数据寄存器组410内的PCM语音数据,进行滤波处理。主要功能为处理数据寄存器组410内的PCM语音数据,对语音数据进行高频滤波处理,滤除掉噪音信号,把有效的语音信号提取出来。本模块对应的电路图如图2所示,采用8阶滤波器,通过常系数乘法器、加法器、以及触发器产生滤波处理后的语音信号。可通过控制寄存器组420内的相关寄存器配置使能滤波功能。
所述分帧模块440,用于接收来自FIR滤波后的语音数据,进行分帧处理,通过帧长和帧移寄存器参数产生的一帧信号;
在一具体实施例中,所述分帧模块440,还用于对帧信号进行短时过零率端点检测处理降低无声段的噪声干扰,最后将有效的帧信号输出。
所述分帧模块440,接收来自滤波后的音频数据,进行分帧处理。主要功能为根据帧长和帧移产生的一帧信号。其中一帧信号为帧长L个语音数据采样点,前一帧信号与后一帧信号重复的语音信号采样点为帧长L-帧移S。本模块对应的电路图如图3所示。该模块还可以对帧信号进行短时过零率端点检测处理从而降低无声段的噪声干扰,最后将有效的帧信号输出。进行短时过零率端点检测的方法主要是判断:1、前一个数据采样点和后一个数据采样点的符号位与绝对差值;2、一帧数据的最大数据采样点。当符号位不同且绝对差值大于绝对差值阈值计数一次,将计数次数与设定的条件阈值进行比较;将最大数据采样点与最大数据阈值进行比较,以此判断一帧信号是否有效。可通过控制寄存器组420内的相关寄存器配置一帧的帧长L、帧移S、绝对差值阈值,条件阈值,最大数据阈值。
所述预加重模块450,用于接收来自分帧后的有效帧信号,进行预加重处理,突出语音信号的高频特新;
在一具体实施例中,所述预加重模块450的主要功能是为了突出语音信号的高频特性,使得信号变得平坦,保持在低频到高频的整个频带中可以使用同样的信噪比求频谱,本模块对应的电路图如图4所示。采用的预加重的公式为:y(k)=x(k)-0.95x(k-1);其中,y(k)为预加重处理后的数据,x(k)为当前语音数据采样点,x(k-1)为前一语音数据采样点;通过寄存器寄存前一语音数据采样点x(k-1)并进行移位与减法操作处理得到缩小一定倍数的语音数据采样点0.95x(k-1),然后将当前语音数据采样点x(k)与处理后的前一语音数据采样点0.95x(k-1)进行减法操作得到预加重处理后的数据y(k)。可通过控制寄存器组420内的相关寄存器配置使能预加重功能。
所述汉明窗模块460,用于接收来自预加重后的有效帧信号,将时域上的帧信号乘上窗函数增加帧信号两端的连续性,防止频谱泄露,使窗口两端平滑过度到零;
汉明窗模块460的主要功能为将时域上的帧信号乘上窗函数增加帧信号两端的连续性,防止频谱泄露,使窗口两端平滑过度到零。本模块对应的电路图如图5所示。通过输入进来的语音帧信号与存储在ROM当中的汉明窗信号进行相乘并截断成16bit的信号输出。可通过控制寄存器组420内的相关寄存器配置使能汉明窗功能。
所述傅里叶变换DFT模块470,用于接收汉明窗处理后的音频数据,进行傅里叶变换处理,将时域上的帧信号转换为频率上的信号;
在一具体实施例中,所述傅里叶变换DFT模块470,用于对于N点的DFT傅里叶变换,其变换公式为:
其中X(k)为经过傅里叶变换后的频域信号,x(n)为语音数据采样点。
通过傅里叶变换DFT模块470实现输入信号不断输入的同时完成频域上的迭代计算。本模块对应的电路图如图6所示。通过计数器生成地址访问预先存储在ROM中的64点cos值,通过诱导公式不断迭代将ROM读取到的cos值与输入进来的音频数据相乘与相加得到最后的频域信号。其中,本模块实现了参数化设计的方式,根据公式,一个输入的x(n)需要与64个不同的cos值相乘并存储中间值。可以根据时间和资源的考量,参数化设置并行度为64,实现一个周期计算64次乘法;或者参数化设置并行度为1,实现64个周期计算64次乘法。参数化并行度可以设置为1、2、4、8、16、32、64,不同的参数化并行度,所需要的资源和时间各不相同。在输入完一帧256个音频数据之后,得到转换后频域的数据。可通过控制寄存器组420内的相关寄存器配置使能傅里叶变换功能。表1为时钟频率设置200MHz,tsmc40nm工艺下不同并行度下的资源消耗和计算周期。
表1:
所述Mel滤波模块480,用于接收傅里叶变换后的频谱数据,进行平滑化处理,采用三角滤波器来消除谐波突显原先语音的共振峰,最后得到特征提取后的语音数据;
所述Mel滤波模块480,接收傅里叶变换后的频谱数据,进行平滑化处理,采用三角滤波器来消除谐波的作用,突显原先语音的共振峰。并通过取log_LUT模块计算对数获取将能量谱通过一组Mel尺度的三角形滤波器组,定义一个有24个滤波器的滤波器组,采用的滤波器为三角滤波器。本模块对应的电路如图7所示,首先通过256个寄存器存储DFT计算后的数据,通过平方计算频谱能量。计算完成后,通过24组Mel_fit ler滤波器进行滤波计算。每组滤波器采用CSD编码将原先乘法运算优化为多个移位后的数相加,从而完成滤波计算。完成滤波计算,将数据依次输入取对数模块。这里采用以使用查表的方式来实现log2的计算,在求得log2以后,就可以通过换底公式求log10。
所述离散余弦模块490,接收梅尔滤波后的梅尔频率系数,通过离散余弦变换得到MFCC系数,并通过差分计算得到相应的MFCC一阶差分参数。
在一具体实施例中,所述离散余弦模块490,具体用于:
接收梅尔滤波后的梅尔频率系数,通过离散余弦变换得到MFCC系数所采用的公式为:其中,c(n)表示离散傅里叶变换后的结果,s(m)表示梅尔频率系数,L表示MFCC系数阶数,M表示三角滤波器个数;本模块取L=12,M=24;将梅尔滤波倒频系数模块计算得到对数能量代入公式完成离散余弦变换,求出L阶的Mel-scale Cepstrum参数;梅尔滤波倒频系数模块对应的电路如图8所示。通过计数器读取dct_rom中64点的余弦参数相乘后进行迭代累加,累加完成的数据除去最大幅值64,从而得到MFCC参数;在完成离散余弦变换之后,进行MFCC一阶差分参数计算,MFCC差分参数计算模块对应的电路图如图9所示。将得到每帧的MFCC参数,将其存入寄存器中,当寄存器存满五帧之后,计算其一阶差分系数,即MFCC_dtm=2*(m_r0-m_r4)+(m_r1-m_r2),其中m_r0,m_r1,m_r2,m_r4分别表示MFCC系数在1,2,4,5级寄存器中的存储数据。
在一具体实施例中,所述CNN卷积网络加速器模块500包括,数据寄存器组510、控制寄存器组520、Line Buffer行缓存模块530、Weight Buffer权重缓存模块540、FSM core状态机模块550、卷积阵列模块560、全连接层模块570及归一化模块580;
所述Line Buffer行缓存模块530和Weight Buffer权重缓存模块540,用于缓存部分特征提取后的语音数据和所有权重数据;
在一具体实施例中,Line Buffer行缓存模块530和Weight Buffer权重缓存模块540及卷积阵列模块560其对应的电路图如图10所示,所述Line Buffer行缓存模块530包括移位寄存器,移位寄存器的数量为2L+2,其中L为输入特征图的长度,本模块中设置L为24,对应24维的语音特征参数,最后输出一个3x3大小的滑动窗口;
Weight Buffer权重缓存模块540主要由RAM组成,用于存储权重数据和bias数据,当状态机进入到读输入特征图并计算状态时,开始读取RAM内的数据;
所述FSM core状态机模块550,用于控制Line Buffer行缓存模块530和WeightBuffer权重缓存模块540与卷积阵列模块560之间的运算状态,根据输入特征图尺寸大小,步长,padding寄存器参数信息控制卷积阵列的运算状态;
在一具体实施例中,所述FSM core状态机模块550,根据控制寄存器组520内的寄存器值,执行相应的卷积状态跳转;具体状态机跳转状态包括:空闲状态、读网络参数状态、读权重参数状态、读输入特征图并计算状态;
空闲状态:初始化后的CNN卷积网络加速模块500处于空闲状态,状态机等待CPU给控制寄存器组520的相关寄存器的工作使能信号,当接收到相关寄存器的工作使能信号,跳入读网络参数状态,当卷积层计算完成后,状态机跳入空闲状态;
读网络参数状态:通过读取控制寄存器组520的相关寄存器,配置相应的网络参数:包括输入特征图尺寸大小、padding操作、数据存储偏移地址、数据复用模式,针对不同的网络尺寸选择最优的网络参数,获得最优的计算效率;
读权重参数状态:通过数据寄存器组510从AHB总线模块600读取权重数据和bias数据,并存入Weight Buffer权重缓存模块540;
读输入特征图并计算状态:通过数据寄存器组从AHB总线模块600读取MFCC语音特征提取模块400的24维语音特征参数数据,将语音特征参数数据送入Line Buffer行缓存模块530,最后Line Buffer行缓存模块530输出3x3大小的窗口图,与此同时读取WeightBuffer权重缓存模块540的权重数据,完成卷积计算,卷积计算完成后,状态机返回到空闲状态。
所述卷积阵列模块560,用于接收来自Line Buffer行缓存模块530和WeightBuffer权重缓存模块540,对特征提取后的语音数据和权重数据作卷积运算;
卷积阵列模块560包括3组3x3个乘法阵列和3组Adder Tree;3组对应3个通道,可并行完成3通道的计算;每组乘法阵列包含3x3个乘法器,用于3x3大小的输入特征图和3x3大小的权重数据卷积计算,最后输出3组9个乘法结果;每组Adder Tree包含4个加法器,用于计算9个乘法结果的和,每个加法器计算3个加数的和,分两个周期完成9个加数的加法运算,适合于流水线式计算。
所述全连接层模块570,用于接收卷积后的数据,进行全连接运算,将数据映射到样本标记空间;
所述全连接模块570,接收卷积阵列模块560的输出特征图数据与输入权重数据作全连接运算。全连接计算原理和卷积计算原理类似,不同的是卷积核大小等于输入特征图大小。该模块电路主要由乘法器和累加器完成流水线式运算。卷积阵列模块560每次会输出3个输出特征图数据,3个输出特征图数据对应特征图的3个通道,输入权重数据有3组对应3个卷积核,每个卷积核包含3个通道,完成一次全连接运算需要用到9个乘法器与3个累加器。最后输出3个累加结果。
所述归一化模块580,用于接收全连接后的数据,进行归一化操作,最后得到的结果数据表示每一类样本的概率,进行语音分类。
所述归一化模块580,其对应的电路图如图11所示。其主要功能为对全连接层输出的数据完成归一化处理,输出各个分类结果的概率。归一化操作包括求指数和求倒数。求指数主要是通过泰勒公式:
进行指数运算,其中x为归一化模块580的输入数据,ex为经过归一化模块580计算的输出数据。求指数电路主要由选择器,触发器,两个乘法器,一个加法器,divisors LUT组合成。其中divisors LUT主要存储常系数1、1/2,1/3,1/4,1/5,1/6,前两个乘法器将前一周期的乘法输出结果与当前输入作迭代累乘,例如第一周期:输入1,与divisors LUT输入1相乘,再与前一寄存器输入1相乘,输出1;第二周期:输入1,与divisors LUT输入1相乘,再与x相乘,输出x;第三周期:输入x,与divisors LUT输入1/2相乘,再与x相乘,输出第四周期:输入/>与divisors LUT输入1/3相乘,再与x相乘,输出/>第五周期:输入/>与divisors LUT输入1/4相乘,再与x相乘,输出/>第六周期:输入/>与divi sors LUT输入1/5相乘,再与x相乘,输出/>第七周期:输入/>与divi sors LUT输入1/6相乘,再与x相乘,输出/>加法器负责将每一个周期输出的乘法结果作累加,最终得到指数输出ex。求倒数主要是通过牛顿迭代公式/>其中xn是第n次迭代的解,xn+1是第n+1次迭代的解,f(xn)是函数值,f’(xn)是函数在xn处的导数值,最后通过牛顿迭代公式求得输入ex的倒数1/ex。求倒数数电路主由三个乘法器,两个加法器,一个减法器,比较器,选择器,触发器组成。首先对输入浮点数进行截取尾数和指数部分的得到Ddash,再通过常系数加法器和常系数乘法器得到/>将此结果作为输入Xi通过加法器、乘法器、减法器实现Xi+Xi(1-Ddash*Xi),将结果作为输入Xi不断通过公式Xi+Xi(1-Ddash*Xi)进行迭代运算,最后求得倒数。通过softmax的公式/>求得每一个分类结果概率。其中ei为第i个输入样本,Si为第i个输入样本的预测概率。
表2为在时钟频率为25MHz,tsmc40nm工艺下,MFCC语音特征提取模块和CNN卷积神经网络加速器模块的综合报表。
表2:
本实施例中的智能语音识别SoC主要包括分帧模块440、FIR滤波器模块430、预加重模块450、汉明窗模块460、傅里叶变换DFT模块470、Mel滤波模块480、卷积阵列模块560、全连接层模块570、归一化模块580。傅里叶变换DFT模块470的并行度可以通过参数配置进行重构,支持1、2、4、8、16、32、64多种并行度。从采用流水的思想实现了MFCC语音特征提取和CNN神经网络的加速。本发明的技术方案能够实现对语音数据进行高效率语音特征提取以及神经网络推理分类,完成语音唤醒的功能。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种智能语音识别SoC系统,其特征在于:包括CPU处理器模块、Sys_SRAM存储模块、PDM语音信号接收模块、MFCC语音特征提取模块、CNN卷积网络加速器模块及AHB总线模块;
所述CPU处理器模块与AHB总线模块电连接,通过AHB总线模块发送指令和数据,用于配置挂载在AHB总线模块上的外设模块的相关寄存器进行指定功能的操作和计算,并且存储数据到Sys_SRAM存储模块;
所述PDM语音信号接收模块与AHB总线模块电连接,用于接收CPU处理器模块的指令后,开始接收语音数据;
所述Sys_SRAM存储模块与AHB总线模块电连接,用于接收并存储语音数据;
所述MFCC语音特征提取模块与AHB总线模块电连接,用于处理来自PDM语音信号接收模块的音频数据,得到24维的结果参数数据;
所述CNN卷积网络加速器模块与AHB总线模块电连接,用于处理来自MFCC语音特征提取模块的24维的结果参数数据,生成分类结果。
2.如权利要求1所述的智能语音识别SoC系统,其特征在于:所述MFCC语音特征提取模块包括,FIR滤波器模块、分帧模块、预加重模块、汉明窗模块、傅里叶变换DFT模块、Mel滤波模块及离散余弦变换DCT模块;
所述FIR滤波器模块,用于对语音数据进行高频滤波处理,滤除掉噪音信号,把有效的语音信号提取出来;
所述分帧模块,用于接收来自FIR滤波后的语音数据,进行分帧处理,通过帧长和帧移寄存器参数产生的一帧信号;
所述预加重模块,用于接收来自分帧后的有效帧信号,进行预加重处理,突出语音信号的高频特新;
所述汉明窗模块,用于接收来自预加重后的有效帧信号,将时域上的帧信号乘上窗函数增加帧信号两端的连续性,防止频谱泄露,使窗口两端平滑过度到零;
所述傅里叶变换DFT模块,用于接收汉明窗处理后的音频数据,进行傅里叶变换处理,将时域上的帧信号转换为频率上的信号;
所述Mel滤波模块,用于接收傅里叶变换后的频谱数据,进行平滑化处理,采用三角滤波器来消除谐波突显原先语音的共振峰,最后得到特征提取后的语音数据;
所述离散余弦变换DCT模块,接收梅尔滤波后的梅尔频率系数,通过离散余弦变换得到MFCC系数,并通过差分计算得到相应的MFCC一阶差分参数。
3.如权利要求1所述的智能语音识别SoC系统,其特征在于:所述CNN卷积网络加速器模块包括,Line Buffer行缓存模块、Weight Buffer权重缓存模块、FSM core状态机模块、卷积阵列模块、全连接层模块及归一化模块;
所述Line Buffer行缓存模块和Weight Buffer权重缓存模块,用于缓存部分特征提取后的语音数据和所有权重数据;
所述FSM core状态机模块,用于控制Line Buffer行缓存模块和Weight Buffer权重缓存模块与卷积阵列模块之间的运算状态,根据输入特征图尺寸大小,步长,padding寄存器参数信息控制卷积阵列的运算状态;
所述卷积阵列模块,用于接收来自Line Buffer行缓存模块和Weight Buffer权重缓存模块,对特征提取后的语音数据和权重数据作卷积运算;
所述全连接层模块,用于接收卷积后的数据,进行全连接运算,将数据映射到样本标记空间;
所述归一化模块,用于接收全连接后的数据,进行归一化操作,最后得到的结果数据表示每一类样本的概率,进行语音分类。
4.如权利要求1所述的智能语音识别SoC系统,其特征在于:所述PDM语音信号接收模块,还用于将PDM格式的音频数据转换成PCM格式的音频数据供MFCC语音特征提取模块做特征提取。
5.如权利要求2所述的智能语音识别SoC系统,其特征在于:所述分帧模块,还用于对帧信号进行短时过零率端点检测处理降低无声段的噪声干扰,最后将有效的帧信号输出。
6.如权利要求2所述的智能语音识别SoC系统,其特征在于:所述预加重模块采用的预加重的公式为:y(k)=x(k)-0.95x(k-1);其中,y(k)为预加重处理后的数据,x(k)为当前语音数据采样点,x(k-1)为前一语音数据采样点;通过寄存器寄存前一语音数据采样点x(k-1)并进行移位与减法操作处理得到缩小一定倍数的语音数据采样点0.95x(k-1),然后将当前语音数据采样点x(k)与处理后的前一语音数据采样点0.95x(k-1)进行减法操作得到预加重处理后的数据y(k)。
7.如权利要求2所述的智能语音识别SoC系统,其特征在于:所述傅里叶变换DFT模块,用于对于N点的DFT傅里叶变换,其变换公式为: 其中X(k)为经过傅里叶变换后的频域信号,x(n)为语音数据采样点。
8.如权利要求2所述的智能语音识别SoC系统,其特征在于:所述离散余弦模块,具体用于:
接收梅尔滤波后的梅尔频率系数,通过离散余弦变换得到MFCC系数所采用的公式为:其中,c(n)表示离散傅里叶变换后的结果,s(m)表示梅尔频率系数,L表示MFCC系数阶数,M表示三角滤波器个数;
将Mel滤波模块计算得到对数能量代入公式完成离散余弦变换,求出L阶的Mel-scaleCepstrum参数;
通过计数器读取dct_rom中64点的余弦参数相乘后进行迭代累加,累加完成的数据除去最大幅值64,从而得到MFCC参数;
在完成离散余弦变换之后,进行MFCC一阶差分参数计算,将得到每帧的MFCC参数,将其存入寄存器中,当寄存器存满五帧之后,计算其一阶差分系数,即MFCC_dtm=2*(m_r0-m_r4)+(m_r1-m_r2),其中m_r0,m_r1,m_r2,m_r4分别表示MFCC系数在1,2,4,5级寄存器中的存储数据。
9.如权利要求3所述的智能语音识别SoC系统,其特征在于:所述FSM core状态机模块,根据控制寄存器组内的寄存器值,执行相应的卷积状态跳转;具体状态机跳转状态包括:空闲状态、读网络参数状态、读权重参数状态、读输入特征图并计算状态;
空闲状态:初始化后的CNN卷积网络加速模块处于空闲状态,状态机等待CPU给控制寄存器组的相关寄存器的工作使能信号,当接收到相关寄存器的工作使能信号,跳入读网络参数状态,当卷积层计算完成后,状态机跳入空闲状态;
读网络参数状态:通过读取控制寄存器组的相关寄存器,配置相应的网络参数:包括输入特征图尺寸大小、padding操作、数据存储偏移地址、数据复用模式,针对不同的网络尺寸选择最优的网络参数,获得最优的计算效率;
读权重参数状态:通过数据寄存器组从AHB总线模块读取权重数据和bias数据,并存入Weight Buffer权重缓存模块;
读输入特征图并计算状态:通过数据寄存器组从AHB总线模块读取MFCC语音特征提取模块的24维语音特征参数数据,将语音特征参数数据送入Line Buffer行缓存模块,最后Line Buffer行缓存模块输出3x3大小的窗口图,与此同时读取Weight Buffer权重缓存模块的权重数据,完成卷积计算,卷积计算完成后,状态机返回到空闲状态。
10.如权利要求3所述的智能语音识别SoC系统,其特征在于:所述Line Buffer行缓存模块包括移位寄存器,移位寄存器的数量为2L+2,其中L为输入特征图的长度,对应24维的语音特征参数,最后输出一个3x3大小的滑动窗口;
Weight Buffer权重缓存模块为RAM,用于存储权重数据和bias数据,当状态机进入到读输入特征图并计算状态时,开始读取RAM内的数据;
卷积阵列模块包括3组3x3个乘法阵列和3组Adder Tree;3组对应3个通道,可并行完成3通道的计算;每组乘法阵列包含3x3个乘法器,用于3x3大小的输入特征图和3x3大小的权重数据卷积计算,最后输出3组9个乘法结果;每组Adder Tree包含4个加法器,用于计算9个乘法结果的和,每个加法器计算3个加数的和,分两个周期完成9个加数的加法运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311512454.2A CN117351961A (zh) | 2023-11-14 | 2023-11-14 | 一种智能语音识别SoC系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311512454.2A CN117351961A (zh) | 2023-11-14 | 2023-11-14 | 一种智能语音识别SoC系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117351961A true CN117351961A (zh) | 2024-01-05 |
Family
ID=89361517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311512454.2A Pending CN117351961A (zh) | 2023-11-14 | 2023-11-14 | 一种智能语音识别SoC系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117351961A (zh) |
-
2023
- 2023-11-14 CN CN202311512454.2A patent/CN117351961A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110718211B (zh) | 一种基于混合压缩卷积神经网络的关键词识别系统 | |
US11715456B2 (en) | Serial FFT-based low-power MFCC speech feature extraction circuit | |
CN114708855B (zh) | 一种基于二值残差神经网络的语音唤醒方法及系统 | |
Vu et al. | Implementation of the MFCC front-end for low-cost speech recognition systems | |
CN113077806A (zh) | 音频处理方法及装置、模型训练方法及装置、介质和设备 | |
CN112435652A (zh) | 一种基于图卷积神经网络的语音关键词识别系统及方法 | |
US6567777B1 (en) | Efficient magnitude spectrum approximation | |
CN112669819B (zh) | 基于不重叠分帧和串行fft的极低功耗语音特征提取电路 | |
CN112509601B (zh) | 一种音符起始点检测方法及系统 | |
CN111489739A (zh) | 音素识别方法、装置及计算机可读存储介质 | |
CN117496998A (zh) | 一种音频分类方法、装置、存储介质 | |
CN117351961A (zh) | 一种智能语音识别SoC系统 | |
CN112397086A (zh) | 语音关键词检测方法、装置、终端设备和存储介质 | |
CN116013293A (zh) | 一种基于混合精度量化神经网络的语音唤醒方法及系统 | |
CN116597814A (zh) | 一种基于时域二值神经网络的语音唤醒方法及系统 | |
Dhungana et al. | RTKWS: Real-Time Keyword Spotting Based on Integer Arithmetic for Edge Deployment | |
Xiwen | Design of voice recognition acoustic compression system based on neural network | |
CN112735469A (zh) | 低内存语音关键词检测方法、系统、介质、设备及终端 | |
Yu et al. | A $2.81\mu\mathrm {W} $, Energy Efficient MFCC Feature Extractor for Keyword-Spotting in 65nm CMOS | |
Zhou et al. | Design and implementation of speech recognition system based on field programmable gate array | |
Liu et al. | The VLSI design of the sub-band filterbank in MP3 decoding | |
US11804238B2 (en) | Optimization method for implementation of mel-frequency cepstral coefficients | |
CN112397044B (zh) | 一种基于深度学习的自动音乐转录方法 | |
Huang et al. | A High-Performance Mel-scale Frequency Cepstral Coefficients Digital Circuit Used on Keyword-Spotting Chip | |
CN100359507C (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 |