摘要:在audio DSP这类低算力、低memory的处理器上,只有算力要求低、参数量小的模型才能部署。在语音降噪领域,以前的模型参数通常都大于500k,很难在audio DSP上落地。近两年出了一个GTCRN(Grouped Temporal Convolutional Recurrent Networ
阅读全文
随笔分类 - 智能语音
摘要:前面的文章(飞桨paddlespeech语音唤醒推理C定点实现)讲了INT16的定点实现。因为目前商用的语音唤醒方案推理几乎都是INT8的定点实现,于是我又做了INT8的定点实现。 实现前做了一番调研。量化主要包括权重值量化和激活值量化。权重值由于较小且均匀,还是用最大值非饱和量化。最大值法已不适合
阅读全文
摘要:前面的文章(飞桨paddlespeech语音唤醒推理C浮点实现)讲了飞桨paddlespeech语音唤醒推理的C浮点实现。但是嵌入式设备通常CPU频率低和memory小,在嵌入式设备上要想流畅的运行语音唤醒功能,通常用的是定点实现。于是我就在浮点实现(把卷积层和相应的batchNormal层合并成一
阅读全文
摘要:飞桨Paddlespeech中的语音唤醒是基于hey_snips数据集做的。Hey_snips数据集是英文唤醒词,对于中国人来说,最好是中文唤醒词。经过一番尝试,我发现它也能训练中文唤醒词,于是我决定训练一个中文唤醒词模型。 要训练中文唤醒词模型,主要有如下工作要做:找数据集,做数据增强(augme
阅读全文
摘要:最近在智能语音中用到了数据集cn-celeb。这个数据集的音频格式是flac,而在做数据增强(augmentation)以及模型训练时用的数据格式是wav,因此需要把音频格式从flac转到wav。我在ubuntu下摸索了一番,找到了两种方法。 1,基于Linux下的sox命令写shell脚本实现 S
阅读全文
摘要:上篇(飞桨paddlespeech 语音唤醒初探)初探了paddlespeech下的语音唤醒方案,通过调试也搞清楚了里面的细节。因为是python 下的,不能直接部署,要想在嵌入式上部署需要有C下的推理实现,于是我就在C下把这个方案的部署实现了。需要说明的是目前完成的是浮点实现,真正部署时要用的是定
阅读全文
摘要:PaddleSpeech提供了MDTC模型(paper: The NPU System for the 2020 Personalized Voice Trigger Challenge)在Hey Snips数据集上的语音唤醒(KWS)的实现。这篇论文是用空洞时间卷积网络(dilated tempo
阅读全文
摘要:上篇(智能语音之远场关键词识别实践(一))讲了“远场关键词识别”项目中后端上的实践。本篇将讲在前端上的一些实践以及将前端和后端连起来形成一个完整的方案。下图是其框图:(麦克风阵列为圆阵且有四个麦克风,即有四个语音通道) 从上图可以看出,前端主要包括去混响、声源定位和波速形成(beamforming)
阅读全文
摘要:语音识别主要分两大类:大词汇量连续语音识别技术(Large Vocabulary Continuous Speech Recognition,LVCSR)和关键词识别(keyword Spotting,KWS)。LVCSR由于对算力要求较高,一般在云端(服务器侧)做,而KWS对算力的要求相对较小,可
阅读全文
摘要:语音识别有近场和远场之分,且很多场景下都会用到麦克风阵列(micphone array)。所谓麦克风阵列是一组位于空间不同位置的麦克风按一定的形状规则布置形成的阵列,是对空间传播声音信号进行空间采样的一种装置,采集到的信号包含了其空间位置信息。近场语音识别将声波看成球面波,它考虑各麦克风接收信号间的
阅读全文
摘要:上篇文章(基于混合模型的语音降噪实践)实践了基于混合模型的算法来做语音降噪,有了一定的降噪效果。本篇说说怎么样来提升降噪效果。 算法里会算每个音素的高斯模型参数,也会建一个音素分类的神经网络模型。这些都是依赖于音素对齐的,音素对齐做的越好,每个音素的高斯模型越准确,音素分类模型越收敛准确率越高,从而
阅读全文
摘要:前面的文章(语音降噪论文“A Hybrid Approach for Speech Enhancement Using MoG Model and Neural Network Phoneme Classifier”的研读 )梳理了论文的思想。本篇就开始对其实践,主要分以下几步:1,基于一个语料库算
阅读全文
摘要:最近认真的研读了这篇关于降噪的论文。它是一种利用混合模型降噪的方法,即既利用了生成模型(MoG高斯模型),也利用了判别模型(神经网络NN模型)。本文根据自己的理解对原理做了梳理。 论文是基于“Speech Enhancement Using a Mixture-Maximum Model”提出的Mi
阅读全文
摘要:深度学习神经网络模型中的量化是指浮点数用定点数来表示,也就是在DSP技术中常说的Q格式。我在以前的文章(Android手机上Audio DSP频率低 memory小的应对措施 )中简单讲过Q格式,网上也有很多讲Q格式的,这里就不细讲了。神经网络模型在训练时都是浮点运算的,得到的模型参数也是浮点的。通
阅读全文
摘要:以前的神经网络几乎都是部署在云端(服务器上),设备端采集到数据通过网络发送给服务器做inference(推理),结果再通过网络返回给设备端。如今越来越多的神经网络部署在嵌入式设备端上,即inference在设备端上做。嵌入式设备的特点是算力不强、memory小。可以通过对神经网络做量化来降load和
阅读全文
摘要:卷积神经网络(CNN)是深度学习中常用的网络架构,在智能语音中也不例外,比如语音识别。语音中是按帧来处理的,每一帧处理完就得到了相对应的特征向量,常用的特征向量有MFCC等,通常处理完一帧得到的是一个39维的MFCC特征向量。假设一段语音有N帧,处理完这段语音后得到的是一个39行N列(行表示特征维度
阅读全文
摘要:在处理深度学习分类问题时,会用到一些评价指标,如accuracy(准确率)等。刚开始接触时会感觉有点多有点绕,不太好理解。本文写出我的理解,同时以语音唤醒(唤醒词识别)来举例,希望能加深理解这些指标。 1,TP / FP / TN / FN 下表表示为一个二分类的混淆矩阵(多分类同理,把不属于当前类
阅读全文
摘要:先前的文章《三个小白是如何在三个月内搭一个基于kaldi的嵌入式在线语音识别系统的 》说我们花了不到三个月的时间搭了一个基于kaldi的嵌入式语音识别系统,不过它是基于传统的GMM-HMM的,是给我们练手用的,通过搭这个系统我们累积了一定的语音识别领域的经验,接下来我们就要考虑做什么形态的产品了。语
阅读全文
摘要:在基于DNN-HMM的语音识别中,DNN的作用跟GMM是一样的,即它是取代GMM的,具体作用是算特征值对每个三音素状态的概率,算出来哪个最大这个特征值就对应哪个状态。只不过以前是用GMM算的,现在用DNN算了。这是典型的多分类问题,所以输出层用的激活函数是softmax,损失函数用的是cross e
阅读全文
摘要:本文讲梯度下降(Gradient Descent)前先看看利用梯度下降法进行监督学习(例如分类、回归等)的一般步骤: 1, 定义损失函数(Loss Function) 2, 信息流forward propagation,直到输出端 3, 误差信号back propagation。采用“链式法则”,求
阅读全文

浙公网安备 33010602011771号