![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
音频
pikaqiu_n95
这个作者很懒,什么都没留下…
展开
-
麦克风阵列之一阶差分麦克风阵列
beamforming,一阶差分麦,differential mic array,音频处理,语音增强,麦克风阵列原创 2022-06-04 18:15:49 · 3723 阅读 · 3 评论 -
音频raw数据转wav数据
音频文件格式很多,常见的有raw,pcm,wav等,下面主要是raw数据转换为wav数据的实现,具体实现代码如下:def raw2wav(inf_str,outf_str,sampleRate = 44000): pcmfile = open(inf_str, 'rb') pcmdata = pcmfile.read() wavfile = wave.open(outf_str, 'wb') wavfile.setframerate(sampleRate) wav原创 2021-03-28 17:26:49 · 2029 阅读 · 0 评论 -
python 音频文件采样率转换
音频处理中经常会遇到各种采样率的文件,一般需要经过采样率的转换才能得到自己需要的采样率音频文件,下面提供一种音频转换方法,具体程序如下:def resample_rate(path,new_sample_rate = 16000): signal, sr = librosa.load(path, sr=None) wavfile = path.split('/')[-1] wavfile = wavfile.split('.')[0] file_name = wavfil原创 2021-03-22 09:56:56 · 4865 阅读 · 0 评论 -
深度学习vad人声检测之模型设计
本博文主要vad训练用到的模型结构,可以采用dnn之类网络,亦可以采用cnn网络实现,这里采用的实现方式是基于cnn的,网络架构在一定程度上影响这模型的精度,但是更多的是数据起着决定性的作用。实现过程也比较简单,直接上代码,具体实现如下:import torch.nn as nnimport mathimport torchfrom .dfsmn import DFSMN import numpy as npimport torch.nn.functional as Ffrom torch.a原创 2021-02-27 22:59:39 · 1942 阅读 · 0 评论 -
深度学习vad人声检测之训练数据加载
vad训练数据的特征在前面的博客已经准备好了,下面就是利用准备好的数据进行模型训练,训练主要包含了下面几个步骤:(1)加载数据(2)搭建模型(3)模型训练加载数据:主要是加载训练数据的特征和对应标签,具体实现如下:import torchfrom torch.utils import dataimport jsonimport osimport soundfile as sfimport numpy as npimport mathdef read_audio_file1(pat原创 2021-02-27 22:53:25 · 1088 阅读 · 0 评论 -
深度学习vad人声检测之特征生成
得到加噪合成数据后,下面就可以进行特征生成,本博文这里采用的是26维的mfcc特征,当然你也可以根据自己的需求选择不同的特征。准备好了数据,导入直接生成即可,注意这里分帧的方式要和标签制作一致,这里给出的程序当然是一致的。另外需要注意的就是数据均衡的问题,程序中也有体现,具体实现如下:# -*- coding: utf-8 -*-from python_speech_features import mfccimport scipy.io.wavfile as wavimport utilsimpo原创 2021-02-21 21:07:04 · 725 阅读 · 1 评论 -
深度学习vad人声检测之数据合成
vad的主要目的是检测声音(这里特指人声),实际环境当中,声音往往存在很多的噪声,即便人在说话的时候也会存在噪声;所以前面制作标签的干净数据需要加入噪声来合成含有噪声的音频数据,从而使得训练出来的模型对噪声更具鲁棒性。数据合成代码实现如下:audio_lib.py# -*- coding: utf-8 -*-"""@author: chkarada"""import osimport numpy as npimport soundfile as sfimport subprocessim原创 2021-02-21 20:54:16 · 1414 阅读 · 0 评论 -
深度学习vad人声检测之标签制作
深度学习几乎渗透到了各行各业,最火热的莫过于视觉算法。然而,音频相关的很多处理算法也逐渐被深度学习所浸润,vad作为音频前处理的一个操作得到了很广泛的应用,比较典型的vad检测算法是通过提取特征,构造高斯模型得到每段音频的概率来确认是人声还是噪声(包含了静默);尽管传统vad通过合理的设置参数也能取得可观的效果,但是在当下数据驱动时代,深度学习的效果要比传统vad算法胜任的多,当然这个前提是模型训练数据要足够的丰富。下面从深度学习的角度解析vad算法的实现,基于深度学习的vad实现并不困难,关键的部分就是原创 2021-02-21 20:37:40 · 3186 阅读 · 3 评论 -
fft快速傅里叶变换(二)
本文主要依据前面所写的文章请戳进行规律总结,便于后续的程序实现。这里仍然以8点fft进行分析,具体示意图如下:说明:(1)m代表某一级(N = 8时,一共可以分为m = 0,1,2三级),M表示一共有多少级(2)旋转因子记为:WNpW_{N}^{p}WNp,p是旋转因子指数(3)旋转因子的增量记为:k,比如在m级最后一级增量k总为1(4)B表示每个蝶形运算的输入数据的间隔由上图分析可知(1)每个蝶形运算中两个输入数据的间隔B = 2m2^{m}2m(2)有2m2^{m}2m个旋转因子(原创 2020-11-22 20:41:07 · 561 阅读 · 2 评论 -
fft快速傅里叶变换(一)
fft变换并不是什么新的算法,它只是为了加速dft运算的一种方法,dft的表达式如下:很显然求出N点的X(k)需要NN次复数乘法和N(N - 1)次复数加法;我们都知道实现一次复数乘法需要四次实数乘两次实数加,实现一次复数加法需要两次实数加;那么当N很大的时候,计算量就会相当的大。dft作为信号处理中最为常用的算法,这么大的计算量显然是不能在实际中得到很好的应用,为此fft就出现了;fft是如何进行的呢?下面将进行详细的介绍。1、基于时间的抽取(DIT)基2fft算法对于下式令N=xMN = x原创 2020-11-21 20:57:34 · 840 阅读 · 2 评论