全志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_usedpa_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 指令,查看支持的接口,然后对指定接口进行设置

posted @ 2023-05-06 22:48  Jimmy_Nie  阅读(149)  评论(0编辑  收藏  举报