- 博客(29)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 深度学习降噪 与回声消除aec 配合的相关分享
1、回声消除aec 与降噪ns的关系:a、回声消除与ns 的前后关系:回声消除aec 与降噪算法之间的衔接问题一直存在,由于回声消除算法的建模基本都是自适应滤波模拟回声路径,为了尽可能缩短路径,确保自适应滤波的准确性,一般来说aec 都会在ns 之前使用。b、当前aec与ns如何搭配:aec 目前大部分aec 算法单靠自适应滤波是很难完全去除回声,因为线程的波动,回声路径的变化等原...
2019-05-10 14:44:23
3630
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 降噪测试过程中,测试语音选择的思考
最近一直在测试降噪效果,也花了很多时间,借鉴同事以及资料,自己通过测试比较,有一些感悟,分享出来,希望音频算法的同行一起讨论。降噪效果测试,正常情况我们会更多注重在噪声分类上面,往往忽略了语音音素的选择,这里我分享下,其实音素在降噪效果的比较中,我们应该要重视起来,以下我先来谈谈一些音素的区别以及降噪的影响:1、几种音素的分类:浊音:指发音时声带有震动的音素,比如au,o。清音:与...
2019-04-17 11:20:09
3603
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 speex aec 与webrtc 回声消除的比较优化
当前开源回声消除算法主要有speex 以及webrtc 的aec算法。两个开源aec 算法的基本原理都是基于自适应滤波nlms。两者的主要区别:speex 使用的是mdf 双滤波结构。通过前滤波与本次滤波的结果来调整滤波器系数的更新,滤波器长度设计的很长,同时对信号做了预加重以及去直流处理。webrtc aec :模块相对比较复杂,包含了延时估计,nlms以及nlp(非线性压缩...
2019-02-13 15:22:52
5670
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 rnnoise 训练步骤
git 下载rnnoise 源代码后,按照下面的步骤运行:(1) cd src ; ./compile.sh(2) ./denoise_training signal.raw noise.raw count > training.f32(3) cd training ; ./bin2hdf5.py ../src/training.f32 50000000 87 training....
2019-01-08 16:54:13
7979
19
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 rnnoise 降噪算法 与传统算法对比分析
随着人工智能的兴起,越来越多,传统语音增强算法的缺点,在深度学习领域得到提高。本文主要针对rnnoise 算法与传统算法比较分析:1、传统降噪算法,大部分是估计噪声+维纳滤波,噪声估计的准确性,是整个算法效果的核心。根据噪声的不同,大部分处理是针对平稳噪声,以及瞬时噪声来做。2、rnnoise 降噪算法,是根据纯语音,以及噪声 通过gru 训练来做。特征点提取,已经预料成为了算法的核心部分。...
2018-12-25 14:44:37
8705
2
原创 啸叫抑制算法 ------陷波器
非常感谢好友 @Randolph 、@泥沙的帮助,本文分享的简介很多都是来自于两位的讨论:陷波器算法原理: 设计陷波器,降低啸叫频率点处增益,以破坏啸叫产生的增益条件,来达到啸叫抑制的效果。陷波器算法模块: 1、啸叫点检测:这是陷波器的最重要的模块,看过很多论文,大部分论文围...
2019-12-26 15:51:25
5848
原创 啸叫抑制方法简介
啸叫场景: 扩音系统中,特别是会议、教学、ktv等场景,提高扩音系统音量,啸叫出现的概率非常高,啸叫的产生属于正反馈,音响的声音重新被麦克风拾音,产生自激,导致啸叫,啸叫不仅会影响听觉,也会烧坏音响设备。啸叫抑制方法: 硬件:1、使用低灵敏度、高指向性的麦克风。 2、音响使用非指向性,现场布局时,避免音响正对麦克风场景。...
2019-12-26 15:12:57
4772
原创 深度学习抑制啸叫
以下对比仅来自个人算法,算法不同效果肯定也不一样,仅供参考一、关于啸叫,根据声音系统可以分为两种情况来对比传统和深度学习去啸叫的效果:1、一种是扩声系统,比如大型演播厅,KTV,本地会议扩声系统等,这种场景下的啸叫正反馈自激时间短。2、另一种就是录播系统,比如在同一个房间打电话或者游戏开黑导致的啸叫,这种啸叫自激往往是一段一段。二、传统啸叫的处理方法:1、移频:这个方法对...
2019-10-08 16:22:44
3122
2
原创 https 实现sdk appid + key 认证 整体框架
最近公司准备对外出售sdk,简单对登陆验证的做了一个测试服务器,具体架构如下:https 协议是在http 应用层的基层上加上了安全层ssl 的协议。https 通过openssl 生成的key 以及证书来实现服务器以及客户端的加密。加密内容包括ip以及发送内容。以下介绍主要框架结构1、客户端:libcurl +证书pem(第三点生成),注意默认的libcurl 不支持http...
2019-06-04 14:37:37
1196
原创 webrtc 读写文件操作4------- 录音播放文件
1、接口函数:两个函数的主要区别 主要是写流还是写文件。其他参数:采用的编解码个格式。int StartRecordingPlayout(int channel, const char* fileNameUTF8, CodecInst* compression = NULL,...
2019-06-04 14:06:20
849
原创 webrtc 读写文件操作3------- 录音mic 文件
1、接口函数:两个接口函数的区别还是传入的是文件名还是流。参数 还包括使用的编码格式。 int StartRecordingMicrophone(const char* fileNameUTF8, CodecInst* compression = NULL, int...
2019-06-04 13:58:30
549
原创 webrtc 读写文件操作2------- 播放文件发送给远端
1、接口函数:两个接口函数的主要的区别跟本地播放文件一样,主要是传入的是文件名还是流文件。传入参数还有就是是否需要循环播放、是否需要和mic 采集混音以及文件使用的编解码、以及音量增益控制。 int StartPlayingFileAsMicrophone(int channel, const char fileNam...
2019-06-04 13:48:38
823
原创 webrtc 读写文件操作1------- 本地播放文件
1、接口函数如下:两个函数的区别主要是一个是传入函数名,一个是传入数据流。loop 表示要不要循环播放,format 表示采用的。 int StartPlayingFileLocally(int channel, const char fileNameUTF8[1024], ...
2019-06-04 12:44:34
1519
原创 python 数据处理4----print 耗时问题
1、python 调试代码的时候,经常在各个地方加入大量的print 来监测每一步的输出,但是对于大批量数据处理时,print 往往增加几十倍的耗时,严重影响效率。所以最好养成调试的时候print ,调试完成后,需要核实并注释没有必要的print的习惯。这也是最近自己猜到的坑!...
2019-05-10 15:02:57
2803
原创 python 数据处理3----读取txt 一列数据写入excel 文件
我们在做大数据测试分析的时候,经常需要用到excel 统计分析数据,以下例子就是python 调用xlwt 写excel 文件:import sysimport randomimport timeimport xlwtimport codecsdef Txt_to_Excel(ws,inputTxt,start_row,start_col): fr = codecs.ope...
2019-05-10 14:55:57
2856
1
原创 python 数据处理2----如何批量对数据进行打乱并重命名
可以通过增加多位随机数字,重复执行以下python 代码代码,然后在执行之前分享的python数据处理1--对批量数据重名https://blog.csdn.net/u012514944/article/details/89705504就可以做到了! for category in os.listdir(dirname): print(category) catdir =...
2019-04-30 11:23:48
473
原创 python 数据处理1-----对文件下的所有文件批量重命名
以下代码实现把文件下的所有文件,以数字1~n 的方式重命名: for category in os.listdir(dirname): print(category) catdir = os.path.join(dirname,category) if not os.path.isdir(catdir): continue files = os.listdir(catd...
2019-04-30 11:16:55
761
原创 针对rnnoise vad 分享
1、首先,提取特征点,通过简单的能量的方式来计算vad,这是很有效的方式,因为语音源就已经确保都是非常干净的语音。从测试的结果来看,准确率也还可以,但是并没有想象的那么高,而且很明显存在滞后以及尾音超前,所以就决定了vad 的效果不会很好。2、在训练模型时,正因为vad 的效果不会太好,所以设计的训练单元也就不是很多,对于vad 的输出,特别是低信噪比的输出结果就很不理想,在训练过程,针对va...
2019-04-17 13:52:15
1686
14
原创 降噪主观测试,噪声选择的思考
前面分析了语音的选择,对于语音的选择,更具普遍性,对噪声的选择,往往要根据所使用的环境,降噪的针对性来选择,当然也有一些比较通用的,下面主要是谈下自己个人的理解:1、算法设计的时候,针对那类噪声来做的,就选择那类噪声与不同的语音来做测试。2、带噪语音信噪比:带噪语音信噪比,需要覆盖所有的场景的信噪比来比较。3、噪声的平稳性:测试相对不那么平稳的噪声源处理的效果,注意算法的收敛性。4...
2019-04-17 11:44:30
1072
原创 降噪效果评测
降噪算法评测一般采用如下方法:1、TNLR 噪声总抑制量,越大越好。2、NPLR 噪声能量抑制量,越好大越好。3、SNRI 信噪比提升dB,越大越好。4、DSNsnri与nplr之差,越小越好。5、pesq 主观可懂度评分。6、瞬时噪声,主要依靠测试文件,主观测试听。7、测试训练必须包含所有辅音和元音!8、其他评测方法3quest 工具等。欢迎大家加音频...
2019-03-18 18:07:23
4734
5
原创 回声消除aec 效果评测
目前比较通用的评测方法:1、erle :麦克风信号能量/回声消除剩余能量的比值:ERLE = 10log (E[r(n)^2]/E[(r(n)-r1(n))^2]) dBr(n) 表示麦克风采集采样数值。r1(n) 表示回声消除的采样数值 r(n)-r1(n) 即为回声消除输出采样数值。2、dist 失调:数字越小,表示收敛越好,主要针对自适应滤波器来做。...
2019-03-18 17:02:40
3431
1
原创 深度学习 batch_size epoch 优化
batch_size:可以理解为批处理参数,它的极限值为训练集样本总数。epoch 指深度学习过程中,所有数据迭代的次数。batch_size 太小,算法有可能需要更多epoches 才能收敛。 随着 batch_size 增大,处理相同数据量的速度越快。 随着 batch_size 增大,达到相同精度所需要的 epoch 数量越来越多。 由于上述两种因素的矛盾,batch_siz...
2019-03-18 11:38:28
1178
原创 keras loss loss_weight 作用要点总结
1、损失函数 loss的作用 ,损失权重 loss_weight作用:loss 函数:主要有 sse msse 等统计学函数,也可以自定义,作用主要是统计预测值和真实值的距离。loss_weight:用来计算总的loss 的权重。默认为1,多个输出时,可以设置不同输出loss的权重来决定训练过程。rnnoise 的gru 官方demo 中:a、主损失为denoise_output ...
2019-02-28 16:30:31
15210
原创 深度学习降噪 效果分析及挑战
深度学习降噪,越来越受到音频算法工程师的关注,以往每一种算法只能处理一种或者几种效果的局限有望被打破,这是大家都往这个方向研究的原因之一。 下面分享基于rnnoise 开源算法的训练经验:1、效果的好坏,第一取决于噪声源以及纯语音数据的质量,这是深度学习算法的最重要的部分。所以收集高质量的数据是关键。2、语音信号特征点的选择,也是深度学习算法最重要的部分,直接决定了训练的效...
2019-02-18 09:39:36
5668
原创 音频传输 rs 和red 的使用比较
webrtc 音频传输出了编解码有fec外,还会根据丢包率额外带red包来抵抗丢包。在硬件信道传输中,有一种rs_fec (RS码即里德-所罗门码)的编码来做纠错。本文主要对比red 和rs_fec的特点。red :代码简单,计算效率高,接收端恢复时主要看丢包时是不是刚好其他接收的包刚好 携带了这个包,冗余程度取决于red的策略,发包数不变。rs_fec...
2019-02-12 15:06:54
1667
翻译 rnnoise 运行报错解决
./dump_rnn.py newweights9i.hdf5 rnn_data.c rnn_data.h运行报错信息如下:Traceback (most recent call last): File "./dump_rnn.py", line 60, in <module> model = load_model(sys.argv[1], custom_obje...
2019-01-23 14:33:30
1417
7
原创 rnnoise 48k采样率 转16k采样率有没有必要?
1、关于rnnoise ,因为语音增强大部分场景都是16k,所以很多人的就会想要16k 的模型,而作者提供的是48k的模型,那到底有没有必要从新训练成16k 的呢?优点:a、我们先来分析一下代码结构,从48k 降低到16k,fft 可以从960 降低到320,其他代码基本不会有效率上的减少。b、可以减少一次上采样到48k以及一次下采样16k。缺点:a、pitch 滤波提高基...
2019-01-22 16:18:19
3703
原创 rnnoise 降噪特征点分析
rnnoise 总共提取了42个输入特征点:a、针对输⼊入信号bark 22个频带的能量量做dct变换,得到22个BFCC系数。b、针对22个中的前六个即1.2k 做导数处理,针对 当前及过去三帧处理理为(增加12个特征点):6个:An+A(n-1)+A(n-2);+6个:An -A(n-2);+6个:An +A(n-2)-2A(n-1)。c、针对基⾳周期相关性,做dct变换,得...
2018-12-29 15:03:13
3712
2
原创 rnnoise 训练语料
最近一直研究rnnoise 相关的技术,发现百度大部分的博客都在说作者没有提供语料,其实就是没入深入的原因,其实作者是有提供的:语音资源地址:a、语音:http://www-mmsp.ece.mcgill.ca/Documents/Data/NTT Multi-Lingual Speech Database :注册付费下载。可以使用其他的语音库替代 比如:switchboard。b、噪...
2018-12-25 20:18:39
3178
6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人