瑞芯微Rockchip开发者社区
直播中

陈静

7年用户 1290经验值
私信 关注
[问答]

为什么到APP层的录音音量会比到HAL层小很多呢

为什么到APP层的录音音量会比到HAL层小很多呢?是什么原因?怎样去解决呢?

回帖(1)

李飞凤

2022-2-10 09:51:25
Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

现象
录音使用1K正弦波作为数据源做测试,然后比较HAL和APP层dump出来的pcm数据,发现到APP层之后相对HAL层的音量会小很多。

原因
后来发现是因为在HAL层有个叫SPEEX的降噪算法,它会固定的信号有衰减,因此音量变小了。RK文档其实也做了说明了:
使用的是 speex 的开源算法库,录音默认开启降噪算法,可以将部分噪声过滤,但是同时也会把背景声音也会过滤一部分。同时如果输入的信号是固定的信号比如 1K 正弦波信号,因为算法是针对的是语音信号,对固定信号有衰减的作用,因此 1K 正弦波这则比实际增益小很多。

关闭方法
diff --git a/tinyalsa_hal/audio_hw.h b/tinyalsa_hal/audio_hw.h
index b7f1f6e..b43e400 100755
--- a/tinyalsa_hal/audio_hw.h
+++ b/tinyalsa_hal/audio_hw.h
@@ -106,7 +106,7 @@ int PCM_CARD_SPDIF = 2;
#define MAX_SUPPORTED_CHANNEL_MASKS 2

#ifndef RK3368
-#define SPEEX_DENOISE_ENABLE
+//#define SPEEX_DENOISE_ENABLE^M
#endif
举报

更多回帖

发帖
×
20
完善资料,
赚取积分