自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

audio_algorithm的博客

专注于音频数字信号处理领域,欢迎志同道合的朋友一起探讨!

  • 博客(115)
  • 资源 (5)
  • 收藏
  • 关注

转载 Windows APO

原文时间是:2017/04/20, 适用对象是Windows 10APO最初是在Windows Vista中引入的,您可能会看到对早期系统APO-sAPO的引用。 有关详细信息,请参阅Windows Vista中的自定义音频效果(Custom Audio Effects in Windows Vista)。 本白皮书可能会参考较旧的COM 和 UI开发主题。目录1. APO架构1.1 APO概览1.1.1 软件APOs vs. 硬件 DSP1.1.2 硬件DSP的代理APO(Proxy APO)1.1.3

2022-07-10 21:42:23 1767

转载 DSP线性汇编优化

转自:https://blog.51cto.com/junzhuivs/1398316从dct简单了解一种线性汇编优化方法一直在看这方面的东西,自己也写过代码,但是始终都没有掌握其中的真谛。其实现在也是半懂不懂,然而还是感觉有些灵感了,写起代码也不那么慢了。今天下午就调试了四个代码,前提是这四个函数前几天是看过的:dct4x4dc,idct4x4dc,quant4x4dc和iquant4x4dc。效果dct变换还是很好的,基本提高了一半的效率,而iquant就没甚么改进,而且quant还不如以前了

2022-05-20 18:28:23 759

转载 嵌入式移植代码优化

转自:算法的嵌入式移植(一)C代码优化 – Deep Studio一般C/C++的算法代码不适合直接移植到嵌入式设备,需要做一些优化和处理。一方面是出于速度考虑,另一方面是针对嵌入式设备支持的语言特性差异进行修改,还有就是硬件上的考虑,比如就定点DSP而言,就需要将原来的浮点运算进行转化。近期博主在整理以往笔记,就将算法嵌入式移植这部分差分成两个章节,一是C代码优化部分,二是DSP代码移植部分,第一章节是语言层面的一般而言是适合所有嵌入式设备的,第二章节是和DSP开发环境相关方面的。特此整理,谨..

2022-05-20 10:07:29 908

转载 DSP优化

转自:算法的嵌入式移植(二)DSP优化 – Deep Studio前面一个篇章:算法的嵌入式移植(一)C代码优化部分 侧重语言层面的优化,而更多针对DSP特性进行的优化将在本篇章进行介绍 ,内容大多是摘抄书本和网络资源,因为是整理以往的笔记,来源已经不可靠了,不过不影响其中内容的经典。一. 前序1.图像算法在嵌入式移植时(主要针对DSP芯片)优化的原则和步骤?原则:算法效果达到预期之前最好不要做过多的优化步骤:windows下的算法级优化—>C语言的优化—>DSP下的C编译器

2022-05-20 09:57:22 1559

转载 Android AudioEffect音效移植

原文链接:https://blog.csdn.net/wkw1125/article/details/65632960AudioEffect构造流程跟踪为了编写新的音效实现,需要了解Android底层在AudioEffect的底层实现:在Java层new Equalizer();后,通过JNI进入底层C/C++的实现过程。在底层,通过层层调用,由音控中枢AudioFlinger.cpp负责音效的管理,在线程中使用音效工厂EffectFactory.c读取.conf配置文件完成音效实例的创建。A.

2022-05-16 21:13:53 2658

原创 STL与数据结构

一. 各种容器的底层机制和常见面试题:1.1 vector:1.1.1 vector的底层原理:vector的底层实现是三个指针:struct _Vector_impl : public _Tp_alloc_type { pointer _M_start; pointer _M_finish; pointer _M_end_of_storage;};start和finish之间是已经被使用的空间范围(即vector.size...

2022-05-08 16:24:54 593 1

转载 RNN denoise

前言我将通过几篇文章来介绍一下RNN用于降噪的实例。综合论文和项目介绍及代码编写原文链接:https://people.xiph.org/~jm/demo/rnnoise/上图显示了前后音频噪声抑制的频谱图。(上:noisy,中:RNNoise,下:clean speech)RNNoise该演示介绍了RNNoise项目,显示了如何将深度学习应用于噪声抑制。主要思想是将经典信号处理与深度学习结合起来,创建一个小而快速的实时噪声抑制算法。不需要昂贵的GPU,可以在Raspberry Pi上轻松运

2022-04-28 10:44:14 553

转载 Speex回声消除收敛性能

同一个文件48k,重采样为32k,16k,8k。使用Speex的回声消除功能,frame_size: 10ms的数据filter_length: 100ms的数据。近端和远端用同一个pcm文件,如果成功消除,那么输出应该为一条直线。SpeexDSP 1.2rc3 测试结果使用最新版本的SpeexDSP 1.2rc3:Speex DSP Source Code测试结果如下(看到的是彻底消除时间):8k16k32k48k结果Spe

2022-04-26 20:17:16 922 1

原创 AI深度学习

损失函数:1、绝对值损失函数2、平方损失函数 (回归任务)3、指数损失函数4、交叉熵损失函数  (分类任务)正则化:L1正则化是指权值向量中各个元素的绝对值之和,可以实现让参数矩阵稀疏,让参数稀疏的好处,可以实现对特征的选择L2正则化是指权值向量中各个元素的平方和然后再求平方根,解决过拟合问题。 1*1卷积: 实现跨通道交互、升降维、增加非线性过拟合: 泛化能力差,原因: 网络太复杂,数据量不够; ---调小模型,增加数据集 训练集与测试集特征分布不一致;--正则化,...

2022-04-24 21:34:58 2516

转载 Android智能手机上的音频浅析

手机可以说是现在人日常生活中最离不开的电子设备了。它自诞生以来,从模拟的发展到数字的,从1G发展到目前的4G以及不久将来的5G,从最初的只有唯一的功能(打电话)发展到目前的全功能,从功能机(feature phone)发展到智能机(smart phone),可谓变化巨大。对于手机上的音频来说,刚开始只有语音通信功能,现在不仅语音通信,还可以听音乐、录音、智能语音(语音输入/语音交互)等。智能手机中的音频场景众多,可以说是手机多媒体系统中最复杂的子系统了。今天我们就谈谈Android智能手机上的音频。

2021-12-29 21:46:14 769

转载 软件工程管理工具

软件测试活动开展过程中,将会涉及到大量的测试活动管理及资源文档管理,因此,拥有一个完善、有效的测试管理工具,将会给软件测试工作带来事半功倍的效果。目前业内应用较为广泛的两款测试管理工具,分别是HP的Application Lifecycle Management(简称ALM)和国内开源的项目管理软件——禅道。1.1 ALMALM,全称Application Lifecycle Management,应用程序生命周期管理软件,顾名思义,该产品用于软件研发活动的整个生命周期管理。由HP公司生产,其早

2021-10-29 14:43:03 629

转载 jenkins如何集成gerrit

gerrit是一个基于web的代码审查工具,用于git版本控制系统,在代码入库之前对每个提交进行审阅。gerrit是一个临时区域,在提交的代码成为代码库的一部分之前,可以对其进行修改和检查。在gerrit配置中有两个计数器,Code-Review和Verified,一般情况项目会分别设置为+2,+1使代码审核通过。Code-Review通常需要开发人员人工审核,而Verified设置项可以与测试工具结合,通过测试的指标则设置Verified +1,不通过则-1,如此可以在代码提交阶段提前介入测试,更早的

2021-10-29 10:26:59 976

转载 Gerrit工作流程

Update at 2019-08-04今天偶然看了下图片的流量,发现这篇讲Gerrit的流量好高,果然一看这篇blog的阅读量已经好几万了。为了不误导大家,我还是做下更新:本人已经很久不使用Gerrit了,现在用GitLab,界面非常美观,使用方法也很简单,而且也能满足之前的代码审核的要求。所以大家也都转去GitLab吧。关于GitLab的搭建和使用网上应该有很多介绍,这里就不做过多的介绍,我这里有一篇GitBook和GitLab搭建使用的文章,如果要使用GitLab的CI功能,可以参考一下【.

2021-10-29 09:58:16 378

转载 AudioFlinger Thread中的几个buffer

转载地址:AudioFlinger Thread中的几个buffer | Thinking简述AudioFlinger是实现上层跟Hal层进行交互的重要的一层,它主要就是通过Thread进行沟通,不管是数据流还是控制流都是需要经由AudioFlinger Thread往下分发的。这两天有空梳理了一下Thread中几个重要的buffer,在这边做个总结,东西很浅,留作备忘。内容主要是下面三个buffer:mSinkBuffer,这个buffer的数据最后是要写到hal去的,但是你会发现一开

2021-09-29 17:52:32 741

转载 Android音频延时问题

这个问题在Android上是个难点。 Android在诞生之初对声音的播放和录音延时并没有非常严格的要求。手机厂商之前也都不在意延时指标,这几年才慢慢有改观。Android最近几年的新版本也一直在逐步改善延时问题,不过各大手机厂有多重视就不得而知了。 部分K歌软件为了减少延时,也费了不少精力,使用各种越过中间层的方法,直接使用底层音频接口。就目前的现状来说,手机上用的Linux内核并非实时系统,只依赖Android/Linux的现有音频架构,大部分手机还是没法满足麦克实时返送的要求...

2021-09-27 09:41:44 2723

原创 快速排序优化

众所周知,在排序上应用最广泛的便是快速排序。虽然快速排序的最坏时间复杂度能达到O(n^2),但在实际使用中可以用各种技巧把最坏情况优化掉,使算法在各种情况的排序中令时间复杂度接近O(nlogn)。本文将通过各种常用的快排优化技巧,一步一步优化朴素快速排序算法。由于篇幅有限,本文只用随机数数组做测试,对于有序数组、逆序数组和含有大量重复元素的数组的优化,本文不表。测试函数这是测试函数,通过在测试函数中生成随机数数组并对数组进行排序、计算排序时间。auto test = [](auto&amp

2021-08-09 19:40:51 151

转载 CPU性能衡量参数 主频、MIPS、CPI

1,主频主频 = 时钟频率,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍;时钟频率又称主频,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍;2,时钟周期时钟周期 t =1/ f; 主频的倒数3,机器周期机器周期= m*t ;一个机器周期包含若干个时钟周期4,指令周期指令周期 = m*t*n; 执行一条指令所需要的时间,一般包含若干个机器周期5,CPICPI = m*n; 平均每条指令的...

2020-07-22 20:30:25 7446

原创 算法复杂度评估

在评估一个算法时,测量算法的复杂性是第一步。在特定处理器上运行算法所要求的时钟决定了处理能力,它取决于架构,不同的处理器架构其处理能力是有变化的。而算法的存储器需求明显不会改变。绝大多数的DSP算法对一组样值进行处理,这样的一组样值称为一个帧。一组样值组成一个帧将不可避免引入延迟,并产生处理延迟。国际电联(ITU)规定了每种算法的可接受延迟标准。1. 时间分析法通过在算法的参考代码(C/C++/C#或M代码)加入时间统计函数。来实现对算法在整个系统中所占时间作以统计。优点:实现简单直观的得到...

2020-07-22 20:09:05 1267

原创 开源音频处理软件/项目

−目录 25款开源音频编辑软件 Audacity Power Sound Editor mp3DirectCut Music Editor Free Wavosaur Traverso DAW Ardour Rosegarden Hydrogen WavePad Sound Editor Sound Engine Ex

2020-06-15 18:02:04 1980 1

原创 编解码重要概念

帧的概念:音频的帧的概念没有视频帧那么清晰,几乎所有视频编码格式都可以简单的认为一帧就是编码后的一副图像。但音频帧跟编码格式相关,它是各个编码标准自己实现的。因为如果以PCM(未经编码的音频数据)来说,它根本就不需要帧的概念,根据采样率和采样精度就可以播放了。比如采样率为44.1HZ,采样精度为16位的音频,你可以算出bitrate(比特率)是4410016kbps,每秒的音频数据是固定的4410016/8 字节。amr帧比较简单,它规定每20ms的音频是一帧,每一帧音频都是独立的,有可能采用不

2020-05-27 20:52:05 318

原创 编解码评价指标

通过衡量比较各种语音编码器或语音编码算法的性能指标来评价语音编码器的好坏。指标有:编码速率、语音质量、顽健性、时延、计算复杂性、算法的扩展性等。对同一种算法,这些性能指标之间有矛盾性,必须根据实际情况进行取舍和折衷。编码速率:是语音编码首要目的。直接关系到传输资源的有效利用和网络容量的提高。有固定速率编码器和可变速率编码器。大部分编码标准是固定速率编码:保密电话0.8Kbps-4.8Kbps,原因是他的通信信道带宽限定在4.8Kbps以下。数字蜂窝移动电话和卫星电话编码器的编码速率是3.3Kbps-

2020-05-27 20:20:14 2307

原创 G711原理

G.711是国际电信联盟ITU-T定制出来的一套语音压缩标准,它代表了对数PCM(logarithmic pulse-code modulation)抽样标准,是主流的波形声音编解码标准,主要用于电话。主要用脉冲编码调制对音频采样,采样率为8k每秒。它利用一个 64Kbps 未压缩通道传输语音讯号。 压缩率为1:2, 即把16位成8位。G.711 标准下主要有两种压缩算法。u-law algorithm (又称u-law, ulaw, mu-law),主要运用于北美和日本。 A-law alg

2020-05-27 19:52:52 1723

转载 语音编解码G.711 G.729

1. 语音编码分类 (1)波形编码: 以逼近声音波形为目标,其代表算法有G.711,其声音清楚度好,语音的自然度高,但是压缩效率比较差,常在32kbps以上。 (2)参数编码: 将人的声道抽象成一个发声模型,对这个模型的参数进行编码,其特点是压缩效率高,但是自然度比较差,能够以极低速率进行编码。 (3)波形参数混合编码: 结合了波形编码和参数编码的优点,代表算法有G.723, G.729等,能够在4-16kbps速率进行高质量语音合成。2. G.711 也称为PCM(脉冲编码调制...

2020-05-27 18:12:30 1933

原创 Audition人声美化

聲音的「壓限」、「均衡」、「混響」是做好人聲的關鍵。1Ultrafunk fx: Equalizer R3(均衡)聲音過暗會感覺吐詞含糊不清,聲音過亮,會有爆音現象。要處理好這些,均衡的作用就大了。頻段5–增益:6.5 dBRe: 很簡單的設定,加6.5dB就對了^^2BBE Sonic Maximizer(激勵)當BBE和均衡器同時使用的時候,一般來說,應該把BBE放在均衡的後面。此過程目的是為了調節所錄人聲的高音和低音部分,使聲音顯得更加清晰明亮或是厚重。激勵的作用就是產生諧波,對聲

2020-05-19 15:11:30 5464

转载 Android系统架构与源码目录

Android系统的整个源码目录结构分析本文介绍的Android系统源码并不是像某一个类(比如:Handler)的源码,而是支持整个Android系统能够运行的源码。这里只对Android系统源码目录进行分析,具体的源码一般都是根据需求来看。一.Android源码的基本知识Android源码包含比较多的文件,比如Android系统的所有页面,里面的所有app程序,还包含了sdk,各种镜...

2020-04-23 14:35:15 243

原创 一篇关于FFT补零的分析文章

https://zhuanlan.zhihu.com/p/85863024

2020-04-17 17:20:27 511

转载 WSOLA

摘要时域压扩(Time-scale modification简称TSM,又叫变速不变调)是一个能够改变音频的"语速"而不改变其音调的算法,是一个在目前音频信号处理中必不可少的一种重要算法,然而音频信号是多种多样的(包含了各种谐波(基音,泛音)冲击和瞬态分量),因为这种广泛的声学和音频特性,因此,目前没有一种能够通用的TSM算法,你需要依据音频特性来选择合适的TSM方法,本文的目的也就是科普一系...

2020-03-26 20:08:10 2964 3

原创 开源协议

感谢https://zhuanlan.zhihu.com/p/87855729的整理。

2020-03-23 14:31:47 153

转载 直流分量的危害

正常情况下,音频的系统的输入和输出都是交流信号,不存在直流分量。有时系统的输出出现了直流分量。这时便可以认为发生了直流偏置。 使用积分能够反映出一段时间的音频信号是否出现直流偏移,如果积分等于0,就不存在直流偏移,否则就存在直流偏移。如下图红色标注的位置,代表当前信号有直流分量。直流偏移的危害:...

2020-03-12 11:13:11 5658

原创 2020-03-04

catalina

2020-03-04 11:14:52 163

原创 GMM-HMM孤立词识别

之前做过的GMM-HMM孤立词识别,现在整理一下。这里我们把输入的语音当做语音识别中的一个音素来建模,假定建模的HMM状态链是7状态的,因此,孤立词识别就是只用到了声学模型部分,没有涉及语言模型这些。1、将输入的一段语音进行分帧,对每帧计算MFCC特征,得到一组特征向量。比如(99*39 99帧,特征维度为33).2、用无监督方法EM对特帧向量进行训练,得到5个GMM模型的参数(...

2019-09-19 16:45:34 1514 1

转载 ARM的NEON指令优化

本文参考整理了以下文章:http://blog.csdn.net/may0324/article/details/72847800http://blog.csdn.net/chshplp_liaoping/article/details/12752749http://blog.csdn.net/charleslei/article/details/52698220在移动平台上...

2019-08-24 11:56:07 1259

原创 python音频处理相关库

音频处理库—librosa 官网:http://librosa.github.io/librosa/index.html一个免费、跨平台、开源的音频I/O库——PortAudio 官网:http://www.portaudio.com/一个c++写的语音、音乐分析,合成,处理开源库——essentia 官网:https://github.com/MTG/essentia...

2019-06-11 10:41:00 4917

原创 python 多mic录音WASAPI

问题:python在window上录多麦数据报错:python OSError: [Errno -9998] Invalid number of channels ?import pyaudioimport waveCHUNK = 1024FORMAT = pyaudio.paInt16CHANNELS = 6RATE = 16000RECORD_SECONDS = 5WAVE...

2019-06-06 17:29:16 1868 3

转载 分类模型评价指标

在分类型模型评判的指标中,常见的方法有如下三种:混淆矩阵(也称误差矩阵,Confusion Matrix) ROC曲线 AUC面积混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法。一句话解释:混淆矩阵就是分别统计分类模型归错类,归对类的观测值个数,然后把结果放在一个表里展示出来。这个表就是混淆矩阵。ROC是一条线,如果我们选择用...

2019-05-20 14:39:49 9273

转载 Anaconda安装Python与tensorflow

众所周知Python常用的版本有2.x和3.x,常常会引起版本问题。由于我在Linux系统中已经安装有Python3.x和对应的TensorFlow,现在遇到需要跑在Python2.x下的TensorFlow工程时,就很麻烦,因此可以用Anaconda来建立一个独立的小环境来另外安装Python2.x及其对应的TensorFlow来跑这个工程。AnacondaAnaconda(官网)是什么...

2019-05-10 12:02:06 691

转载 LSTM训练经验

开始训练之前先要做些什么?在开始调参之前,需要确定方向,所谓方向就是确定了之后,在调参过程中不再更改1、根据任务需求,结合数据,确定网络结构。例如对于RNN而言,你的数据是变长还是非变长;输入输出对应关系是many2one还是many2many等等,更多结构参考如下非RNN的普通过程,从固定尺寸的输入到固定尺寸的输出(比如图像分类)输出是序列(例如图像标注:输入是一张图像,...

2019-05-07 10:24:58 16367 1

转载 分类模型的评价指标

一、模型评价的意义在完成模型构建之后,必须对模型的效果进行评估,根据评估结果来继续调整模型的参数、特征或者算法,以达到满意的结果。评价一个模型最简单也是最常用的指标就是准确率,但是在没有任何前提下使用准确率作为评价指标,准确率往往不能反映一个模型性能的好坏,例如在不平衡的数据集上,正类样本占总数的95%,负类样本占总数的5%;那么有一个模型把所有样本全部判断为正类,该模型也能达到95%...

2019-05-07 10:17:12 2065

转载 不平衡数据集的处理

一、不平衡数据集的定义所谓的不平衡数据集指的是数据集各个类别的样本量极不均衡。以二分类问题为例,假设正类的样本数量远大于负类的样本数量,通常情况下通常情况下把多数类样本的比例接近100:1这种情况下的数据称为不平衡数据。不平衡数据的学习即需要在分布不均匀的数据集中学习到有用的信息。不平衡数据集的处理方法主要分为两个方面:1、从数据的角度出发,主要方法为采样,分为欠采样和过采样以及对应...

2019-05-07 09:48:09 1775

转载 keras中epoch,batch,loss,val_loss相关概念

1、epochKeras官方文档中给出的解释是:“简单说,epochs指的就是训练过程接中数据将被“轮”多少次”(1)释义:训练过程中当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一个epoch,网络会在每个epoch结束时报告关于模型学习进度的调试信息。(2)为什么要训练多个epoch,即数据要被“轮”多次在神经网络中传递完整的数据集一次是不够的,对于有限的...

2019-04-23 10:56:57 13202 3

Download.zip

一些可以参考的行业文档知识,供学习用EVRC--ns

2019-11-29

Design of circular differential microphone array (1).pdf

Design of circular differential microphone array,

2019-06-12

keras快速入门

快速入门keras,这个是keras官网的中文翻译版本,写得还是比较详细的,适合刚入门的学习

2019-05-07

识别引擎解码1 pass VS 2 pass

识别引擎搜索策略对比,传统2 pass 方法 与 1 pass 方法(WFST)对比

2019-03-27

语音识别基本法

HMM-GMM,HMM-DNN语音识别原理介绍,比较基础,易懂。适合入门者

2019-03-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除