音频开发
半截木头渡海洋
高出着眼,低处着手
展开
-
音频开发-设备管理模块接口
【代码】音频开发-设备管理模块接口。原创 2022-12-10 20:46:56 · 82 阅读 · 0 评论 -
几个用于录播音频的python库
pyaudiosounddevice原创 2020-06-13 17:24:56 · 214 阅读 · 0 评论 -
windows系统WASAPI录音demo
microsoft官网给出的录音demo//-----------------------------------------------------------// Record an audio stream from the default audio capture// device. The RecordAudioStream function allocates a sha...转载 2019-12-26 15:46:56 · 1604 阅读 · 1 评论 -
仿射投影自适应滤波(APA)算法及matlab实现
算法代码如下clcclear allclose all[x1,fs1]=audioread('handel.wav');[d1,fs2]=audioread('handel_echo.wav');x=x1';d=d1';p=25; % 重用次数n=20; % 滤波器阶数z=max(size(x));wA=zeros(1,n)'; %...原创 2018-06-01 17:39:03 · 6184 阅读 · 4 评论 -
回声消除实验数据的产生与分离
本篇介绍如何使用matlab产生一套回声消除所需要的实验数据,以及验证数据实验数据产生思路:1】首先要有一个原始的哈利路亚语音信号,这个信号用来模拟MIC端讲话人的语音2】建立一个带通滤波器用来模拟SPK到MIC的传输过程,因为带通滤波器是一个是不变系统,所以在后续回声消除的实验中只需要开始时候权值收敛,后续不需要跟踪回声通道的变化3】一个随机的杂波,用来模拟喇叭播放的声音4】喇叭的原声经过带通滤...原创 2018-06-01 21:13:18 · 3860 阅读 · 1 评论 -
webRTC AEC 滤波器的自适应
权值更新就是使用SSE指令集加速完成NLMS算法的频域计算,具体实现细节见代码注释。static void FilterAdaptationSSE2(AecCore* aec, float* fft, float ef[2][PART_LEN1]) { in...原创 2018-07-17 13:56:44 · 1491 阅读 · 0 评论 -
webRTC AEC 远场滤波器
最后几句代码将远场经过滤波之后加到了传入的yf(合成回声信号)中,但是在调用本滤波器之前已经将yf全部设置为0了,因此输出的合成回声信号就是滤波器的输出。static void FilterFarSSE2(AecCore* aec, float yf[2][PART_LEN1]) { int i; // 设置分块数 const int num_partitions = aec-&...原创 2018-07-17 14:04:37 · 850 阅读 · 0 评论 -
webRTC AEC 发散处理与抑制算法
所谓发散问题就是在自适应滤波的过程中出现了权值不收敛的问题,一般是由于参考信号与近场数据时间点没有对齐引起的。当滤波器的权值不收敛的时候,自适应滤波器就不能正常的跟踪参考信号产生正确的的合成回声,以至于无法完成回声消除的功能,甚至自适应滤波器会产生一些乱七八糟的信号,淹没近端信号或产生音爆。综上,回声消除过程中要对回声消除的残差进行监控,如果残差信号的能量超过了近场信号的数据,就说明出现了发散...原创 2018-07-17 14:08:25 · 2183 阅读 · 4 评论 -
webRTC AEC 非线性滤波处理算法
先把代码贴上,有空时候回来注释static void NonLinearProcessing(AecCore* aec, short* output, short* outputH) { float efw[2][PART_LEN1], dfw[2][PART_LEN1], xfw[2][PART_LEN1]; complex_t comfortNoiseHband[PART_LEN...原创 2018-07-17 15:06:27 · 4611 阅读 · 4 评论 -
webRTC AEC 添加舒适噪声算法
webRTC的舒适噪声实际上就是,一个随机噪声经过同一帧消回声输出NLP参数的加权处理产生的噪声。如果是32K信号,则对产生的高频段随机噪声统一加权,加权值是同一帧消回声输出NLP参数的平均值。static void ComfortNoise(AecCore* aec, float efw[2][PART_LEN1], ...原创 2018-07-17 15:48:12 · 2927 阅读 · 1 评论 -
声源数目测定
本文使用协方差矩阵特征值分解的方法求解声音数目,对比两种主特征值数目的判定方法,代码如下clcclearclose allframeLength = 160;audioDataArray = zeros(frameLength,5);audioDataArray2 = zeros(frameLength,5);signalSourceInfo = zeros(4,1);sign...原创 2018-09-14 16:45:14 · 823 阅读 · 0 评论 -
端到端音频信号处理流程
本篇博客主要总结端到端语音信号处理流程,对于单独每一个节点的概述将会在后续的时间里逐步的更新。常规端到端信号处理流程原创 2018-12-23 21:44:04 · 952 阅读 · 1 评论 -
webRTC中回声消除(AEC)模块的编译与测试
整体过程同webRTC降噪(NS)、自动增益控制(AGC)模块的编译与测试一样,只是在aec_rdft.c文件中可能会报错,局部变量ip跟全局变量冲突的问题,可以将局部变量重新命名一下,就可以通过编译了。修改后的代码如下/* * http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html * Copyright Takuya OOURA, 1996-2001...原创 2018-06-08 09:42:12 · 5712 阅读 · 1 评论 -
在linux系统上实现实时AEC功能
我们从今天起,开始做一个实时的回声消除应用。这个应用的工作环境描述如下:1】linux系统中2】系统通过电脑的喇叭播放音乐3】在播放音乐过程中打开录音功能进行录音我们的应用的目标:1】录音要求输出两个基本的音频文件:录音过程中喇叭的音频、MIC拾到的声音(说话声+喇叭回声)2】对MIC的拾到的声音进行回声消除处理,输出回声消除后的音频文件...原创 2018-06-14 16:21:57 · 2202 阅读 · 2 评论 -
webRTC降噪(NS)、自动增益控制(AGC)模块的编译与测试
本博客记录webRTC中降噪(NS)模块的编译与测试过程获取NS功能、测试代码以及测试语音文件,点击链接使用VS2015打开方案文件并生成在VS右侧资源管理器中,右键选择生成在debug文件夹中生成结果文件将“byby_8K_1C_16bit.pcm”、“lhydd_1C_16bit_32K.pcm”复制到和WebRtcAudioTest.exe文件统一个路径下执行WebRtcAudioTest....原创 2018-06-07 15:57:32 · 6563 阅读 · 3 评论 -
安卓系统使用外接USB声卡(XMOS)进行单声道音频数据采集
1】首先将相应的固件(一路输入,一路输出)写入声卡中:写固件时候经常会遇到的几个问题:①xflash -l 找不到设备,现在解决的办法是重启电脑,还找不到的话就再多重启几次,不知道微信会不会跟这个冲突,我开机的时候都是先把微信关掉。总体感觉就是XMOS有病微信吃药。②写固件成功之后,要将XTAG-3拔掉,同时将声卡重新插拔一次,然后才能在电脑上成功识别(可以用audacity进行录音验证)。2】将...原创 2018-05-17 14:32:00 · 8193 阅读 · 0 评论 -
xTIME 启动错误
xTIME 一个星期多没用,再启动时候出现了报错:java was started but returned exit code 13:bla bla bla ~~~在网上查阅了相关网页并在Xcore搜了下没有找到相关解释,关于这些的似乎都是eclipse启动时候的问题。照葫芦画瓢,把一些执行文件删删减减、环境变量改来改去,没有任何作用。按照技术支持的指点到XM原创 2018-01-02 11:15:38 · 347 阅读 · 0 评论 -
安卓系统音频源的设置
/** * Defines the audio source. * An audio source defines both a default physical source of audio signal, and a recording * configuration. These constants are for instance used ...转载 2018-05-18 09:50:36 · 4958 阅读 · 0 评论 -
《基于 ALSA 的 Android 音频系统设计与实现--- ---林东海》节选
ALSA 包括驱动包 alsa-driver,开发包 alsa-libs,开发包插件 alsa-lib plugins,设置管理工具包 alsa-utils,其它声音相关处理小程序包 alsa-tools,特殊音频固件支持包 alsa-firmware,OSS 接口兼容模拟层工具 alsa-oss 共 7 个子项目,其中只有驱动包是必须的。alsa-libs 指用户空间的函数库,提供给应用...转载 2018-04-27 15:58:17 · 558 阅读 · 0 评论 -
查看安卓系统的外接USB声卡
在adb.exe所在文件夹下打开cmd1】进入到shell模式:2】进入到 proc/asound 路径下,查看cards文件:如果连接成功,会有相应的硬件选项显示,这个界面显示连接不成功。...原创 2018-05-16 10:26:20 · 6731 阅读 · 0 评论 -
查看安卓系统的codec配置
执行tinymix命令:对应codec功能模块图:tinymix命令返回内容:root@avl7420:/ # tinymixMixer name: 'ESPRESSO-RT5647'Number of controls: 201ctl type num name value0 BOO...原创 2018-05-22 20:26:38 · 1809 阅读 · 0 评论 -
自适应滤波收敛特性求解
clcclear allclose alln=500;Sspk=zeros(1,n)';e=zeros(1,n); % 用于存放误差e1=zeros(1,n); % 用于存放实际回声与合成回声之间的误差ep=zeros(1,n); % 用于存放五十次运算累积的误差w=randn(1,n)'; % 产生一个随机信号用作参考,然后用x来拟合这个信号,并用前两个点初始化滤波器第...原创 2018-06-03 21:12:15 · 2005 阅读 · 0 评论 -
安卓系统上位机搭配科大讯飞核心板AEC的评估方法
获取原始语音系统图原创 2018-05-23 16:12:31 · 1948 阅读 · 0 评论 -
自适应滤波之最小均方(LMS)算法以及matlab实现
使用LMS算法对进行信号分离clearclose allclca1=-1.6; a2=0.8; [x,fs1]=audioread('handel.wav');[dn,fs2]=audioread('handel_echo.wav');figure;subplot(2,1,1);plot(x);title('spk参考信号');subplot(2,1,2);plo...原创 2018-05-31 14:06:30 · 47510 阅读 · 15 评论 -
ITUT-T recommendations G.168 标准回声模型
相关标准定义见《ITUT-T recommendations G.168 标准》附件D,文件中给出的公式D-3中-2*pi*f*k应修改为-2*pi*f*m1(k)回声模型1的验证代码如下clcclear allclose allf=0:1:4095;i=1:8;m1=[-436 -829 -2797 -4208 -17968 -11215 46150 34480 -10427 904...原创 2018-06-05 14:24:09 · 2433 阅读 · 4 评论 -
alsa录音demo
git stash 使用/*read from the default PCM device and writes to standard output for 5 seconds of data修改声音采集配置时候,出了修改声音通道数量,还应该考虑申请的缓冲区时候足够大 */#define ALSA_PCM_NEW_HW_PARAMS_API#include <alsa/as...原创 2018-05-10 15:14:07 · 3796 阅读 · 1 评论