降噪不仅只能从硬件入手,本文为您介绍一种嵌入式Linux中的录音降噪方案。该方案完全依靠软件实现,最大程度上降低投入。
1. 工具下载
SoX(Sound eXchange)是一个开源的音频处理工具,它可以用来读取、转换和处理各种音频文件。SoX的源代码主要由C语言编写,它包含了大量的音频处理算法和功能模块,如音频格式解析、音频效果处理、音频格式转换等。
Sox源码:https://sourceforge.net/projects/sox/files/sox/14.4.2/
libgomp.so.1库安装:
wget http
:
/
/ftp
.debian
.org
/debian
/pool
/main
/g
/gcc
-
10
/libgomp1_10
.
2.1
-
6_armhf
.deb
dpkg
-x libgomp1_10
.
2.1
-
6_armhf
.deb libgomp
2. SOX降噪使用
1. 将libgomp.so.1和libgomp.so.1.0.0拷贝到板卡/usr/lib/目录下。
2. 将sox拷贝到/usr/bin/目录下。
3. 开始录音,执行如下指令。
amixer cset numid
=
36
190
amixer cset numid
=
1
40
arecord
-f cd
-d
10
/tmp
/t
.wav
aplay
/tmp
/t
.wav
4. 进入录音文件目录,生成降噪配置文件并对录音文件进行降噪处理。
cd
/tmp
/
sox t
.wav
-n noiseprof noise
.prof
sox t
.wav
1.wav noisered noise
.prof
0.21
其中t.wav:原录音文件,1.wav为降噪后文件 0.21(更改0.21以调整采样率的灵敏度级别(我发现0.2-0.3通常提供最佳结果))。
通过以上操作,对比播放录音原文件(t.wav)和降噪后的文件(1.wav),发现噪音几乎没有。