Audio之音量大小的调节

本文介绍了rk809和es7202的音量调节方法,包括修改dts文件、调整寄存器和创建asound.conf文件。对于rk809,可通过修改spk-volume和使用rk817_playback_path_put函数控制音量。在es7202中,若录音声音小,可通过主控增加增益控制。此外,音量大小还与硬件设计、MIC规格等因素有关,低信噪比可能表明存在硬件问题。
摘要由CSDN通过智能技术生成

        本文分别以rk809以及数字麦es7202 为例子,针对音量调节的问题展开介绍,希望对各位同学有一定帮助。

        rk809音量的调节;1 首先最直接的就是修改dts里面的spk-volume这个数值,其值不能小于3,3为音量的最大值,值越大,音量就越小;spk-volume会在rk809的codec驱动中去解析,并写入相关的音量寄存器中,所以才会生效;

2.rk817_playback_path_put
该函数里面就是可以实现音量的控制,主要通过修改寄存器
snd_soc_component_write(component, RK817_CODEC_DDAC_VOLL,
					rk817->spk_volume);
snd_soc_component_write(component, RK817_CODEC_DDAC_VOLR,
					rk817->spk_volume);

        当你修改dts后,音量控制不生效,那么就使用第二种方式,创建一个etc/asound.conf文件,添加如下内容, 也就是会在amixer下面新增加一个kcontrol,名字为soft_vol;

pcm.rk809_sound {   #rk809_sound这个就是和你dts上的名称一致
type softvol
slave.pcm "hw:0,0" #此处改成hw:0,0指声卡0的设备0,要修改成你们实际的声卡号以及设备号
control {
name "soft_vol"
card 0 #此处需要修改成你们实际的声卡号
}
}

        上面步骤弄好后,执行/etc/init.d/alsa-utils restart,如果没有这个文件,那就直接重启设备;然后运行aplay -Dplug:rk809_sound /data/001.wav,Dplug这个就是挂载,也就是这条指令运行完成后,使用amixer -c 0 contents就会找到我们刚新添加的“soft_vol”控件,这样就可以调节音量了。
        音量调节指令amixer -c 0 sset 'soft_vol',0 80%,80% unmute  这边0%-100% 代表着声音逐渐的变大,一般设置80%。
        设置完音量后,运行aplay -Dplug:rk809_sound /data/001.wav;看音量调节是否成功。

        关于es7202音量控制;驱动中通过dump寄存器可以看到增益已经调节到最大了,但录音时声音还是很小声;这时可以通过在主控增加对增益的控制,代码修改如下/external/tinyalsa/pcm.c ;也就是在读取到的音源buffer,对buffer里面的每一个元素乘上一个系数,根据你们原始数据的格式(16位就是2字节,32位的就是4字节),若是32位的,那系数就是*4.

 

        此外,音量大小还跟很多因素有关,硬件设计,MIC头的规格与要求,MIC头孔是否被堵住了等等,检查下硬件,量下电压,多换几个MIC头试下;也可以找mic头厂商帮忙看看,外围硬件设计是否符合要求等。如果硬件有问题,那么以上增加数字增益也是治标不治本的。即使增加了数字增益(数字麦DMIC),信噪比依旧会很不好。  

        信噪比数值越高,噪音越小,用db表示;我们可以在消音室里录一段静音数据,看麦克风的底噪,一般来说-50db是很好的了;噪声很低的话,信噪比会相应的好。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值