3.5mm 耳机接口
1. 简介
RK3506B 通过 I2S 和 I2C 接口连接外部音频编解码器 ES8311,实现音频录音与播放功能,支持麦克风输入和耳机输出,满足高质量音频处理需求。
2. 声音配置
查看声卡设备
root@luckfox:~# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: rockchipes8311s [rockchip,es8311-sound], device 0: ff310000.sai-ES8311 HiFi ES8311 HiFi-0 [ff310000.sai-ES8311 HiFi ES8311 HiFi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
root@luckfox:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: rockchipes8311s [rockchip,es8311-sound], device 0: ff310000.sai-ES8311 HiFi ES8311 HiFi-0 [ff310000.sai-ES8311 HiFi ES8311 HiFi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0card0:ES8311 音频编码器
声卡的驱动目录
root@luckfox:~# ls /dev/snd/
by-path controlC0 pcmC0D0c pcmC0D0p timer- controlC0:用于声卡控制,C0 表示声卡0,对应上文的 es8311 的声音输出。 pcmC0D0c:用于录音的 pcm 设备,最后面的“c”是 capture 的缩写,表示录音
- pcmC0D0p:用于播放的 pcm 设备,最后面的“p”是 playback 的缩写,表示放音。
- by-path: 保存着设备的对应关系
root@luckfox:~# ls -l /dev/snd/by-path/
total 0
lrwxrwxrwx 1 root root 12 Jan 1 00:00 platform-es8311-sound -> ../controlC0
3. 录制
使用采样率16kHz/2ch/16bit的 WAV 格式录音
arecord -D hw:0,0 -t wav -d 10 -f S16_LE test.wav-f S16_LE:指定PCM格式为16位小端(16-bit Little Endian),常见采样大小有 8 BIT、16BIT、32BIT(FLTP)-r 16000:指定采样率为 16 kHz-D hw:0:指定音频设备为 card0,device0-d 30:指定录制时间为10秒test.wav:指定输出文件名为test.wav
如果没有指定采样率参数,arecord 将使用默认的采样率。通常,arecord 的默认采样率是44100 Hz(44.1 kHz),这是 CD 音频标准的采样率。
arecord -f cd -Dhw:0 -d 30 test.wav
4. 播放
播放 WAV 格式的音频。
aplay test.wav
5. 音量调整
调节耳机音量(推荐)
amixer -c 0 sset 'DAC VOLUME' 50%- 建议调节范围40%~70%
amixer -c 0 cset name='DAC VOLUME' 150- 建议调节范围100~180
使用 sox 调节音量
#查看音量可以最大调整值倍数——Volume adjustment
# sox anheqiao.wav -n stat
Samples read: 22058820
Length (seconds): 250.100000
Scaled by: 2147483647.0
Maximum amplitude: 0.891235
Minimum amplitude: -0.891266
Midline amplitude: -0.000015
Mean norm: 0.153542
Mean amplitude: -0.000068
RMS amplitude: 0.206771
Maximum delta: 1.232666
Minimum delta: 0.000000
Mean delta: 0.060496
RMS delta: 0.092891
Rough frequency: 3153
Volume adjustment: 1.122
#设置音量因子,生成另一个文件
sox -v 0.2 anheqiao.wav output.wav- SoX是一个强大的音频处理工具,但是它的某些功能,比如MP3编码,可能需要特定的编译选项和依赖库才能支持。