全志SDK - 5. 语音支持
语音支持包括两个部分:
语音输入:麦克风
语音输出:喇叭
由于博主只调试了输出播放部分,因此本章节暂以调试喇叭
为主。
详细信息可参考: Tina_V2.5_音频模块使用文档.pdf
1. 硬件配置
硬件配置的目的:为了让CPU的控制引脚正确的连接麦克风/喇叭的PA,使得CPU可以有效驱动喇叭进行声音播放!
R328进行Pin脚配置主要是采用sys_config文件,而非dts,以R328举例如下:
1. 编辑文件
tina-linux/device/config/chips/mr112/configs/robots/sys_config.fex
2. 设置gpio-spk
的引脚
让引脚和板子pin对的上,如下图所示:
3. 增加声音
若声音较小,可以将 headphone_direct_used
和 pa_double_used
打开,瞬间声音增大很多,如下图:
2. kernel_menuconfig
系统驱动支持
make kernel_menuconfig
[*] Device Drivers
[*] Sound card support
[*] Advanced Linux Sound Architecture
[*] ALSA for SoC audio support
[*] Allwinner SoC Audio support
[*] Allwinner SoC Audio support
3. menuconfig
选上:alsa-utils,否则没有amixer和aplay这些工具!
- amixer: 系统语音、音量设置指令
- aplay: ALSA架构下的语音播放工具,注意:只能播放wav格式
- ****: 可以播放mp3格式
4. 开发板中配置:
进入板子,需要输入如下的指令:
amixer -D hw:audiocodec cset name='External Speaker' 1 # 使能Lineout & PA
amixer -D hw:audiocodec cset name='Right LINEOUT Mux' 1 # Right LINEOUT Mux为DACL
amixer -D hw:audiocodec cset name='Left LINEOUT Mux' 1 # Lift LINEOUT Mux为DACL
amixer -D hw:audiocodec cset name='digital volume' 63 # 数字端音量:0-63
amixer -D hw:audiocodec cset name='LINEOUT volume' 30 # Lineout音量:0-31
播放语音,需要指定声卡(按照自己的板子来,如果只有一个声卡则不需要制定声卡):
aplay -Dhw:audiocodec xxx.wav
可以使用 amixer scontrols
指令,查看支持的接口,然后对指定接口进行设置