Qualcomm 机器人 RB5 开发套件用户指南(5)

150 篇文章 14 订阅
5 篇文章 0 订阅
本文详细介绍了如何在Qualcomm机器人RB5开发套件中通过不同的音频处理技术(ALSA、tinyALSA、HAL和GStreamer)进行音频的录制和播放,包括Linux嵌入式系统的设置步骤和命令实例。
摘要由CSDN通过智能技术生成

Qualcomm 机器人 RB5 开发套件用户指南(5)


4.6 设置音频

确保板上的数字麦克风接口 (DMIC) 已打开。将 DIP2 开关板上的 PIN2 打开,如下图所示。在测试录音和音频播放之前,将扬声器连接到RB5板,如下图所示:

在这里插入图片描述
ALSA录制和回放

笔记
Linux 嵌入式系统不支持。

要通过高级 Linux 声音架构 (ALSA) 捕获音频录音,请执行以下操作:

  1. 运行以下命令:

    adb shell
    
    amixer cset  name='TX DEC2 MUX' 'MSM_DMIC'
    
    amixer cset  name='TX DMIC MUX2' 'DMIC2'
    
    amixer cset  name='TX_CDC_DMA_TX_3 Channels' 'One'
    
    amixer cset  name='TX_CDC_DMA_TX_3 SampleRate' 'KHZ_48'
    
    amixer cset  name='TX_CDC_DMA_TX_3 Format' 'S16_LE'
    
    amixer cset  name='TX_AIF1_CAP Mixer DEC2' 1
    
    amixer cset  name='TX_DEC2 Volume' 84
    
    amixer cset  name='MultiMedia1 Mixer TX_CDC_DMA_TX_3' 1
    
    arecord /data/dmic0.wav -f dat
    
  2. 录制完语音后,按CTRL + C停止录制。录制完成后,将输出剪辑从 /data/RB5设备的位置拉出。

    adb pull /data/dmic0.wav
    
    

    在这里插入图片描述

通过 ALSA 播放音频

笔记
Linux 嵌入式系统不支持。

要通过 ALSA 播放音频,请运行以下命令:

adb push dmic0.wav /data/
adb shell
amixer cset  name='WSA_CDC_DMA_RX_0 Channels' 'Two'
amixer cset  name='WSA RX0 MUX' 'AIF1_PB'
amixer cset  name='WSA RX1 MUX' 'AIF1_PB'
amixer cset  name='WSA_RX0 INP0' 'RX0'
amixer cset  name='WSA_RX1 INP0' 'RX1'
amixer cset  name='WSA_COMP1 Switch' 1
amixer cset  name='WSA_COMP2 Switch' 1
amixer cset  name='SpkrLeft COMP Switch' 1
amixer cset  name='SpkrLeft BOOST Switch' 1
amixer cset  name='SpkrLeft VISENSE Switch' 1
amixer cset  name='SpkrLeft SWR DAC_Port Switch' 1
amixer cset  name='SpkrRight COMP Switch' 1
amixer cset  name='SpkrRight BOOST Switch' 1
amixer cset  name='SpkrRight VISENSE Switch' 1
amixer cset  name='SpkrRight SWR DAC_Port Switch' 1
amixer cset  name='WSA_RX0 Digital Volume' 68
amixer cset  name='WSA_RX1 Digital Volume' 68
amixer cset  name='WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1' 1
aplay /data/dmic0.wav

在这里插入图片描述
tinyALSA 录制和回放

要通过tinyALSA捕获音频录音,请执行以下操作:

  1. 运行以下命令:

    adb root
    
    adb remount
    
    adb shell mount -o rw,remount /
    
    adb shell
    
    tinymix set 'TX DMIC MUX2' 'DMIC3'
    
    tinymix set 'TX_CDC_DMA_TX_3 Channels' 'One'
    
    tinymix set 'TX_AIF1_CAP Mixer DEC2' 1
    
    tinymix set 'MultiMedia1 Mixer TX_CDC_DMA_TX_3' 1
    
    tinycap /data/dmic2.wav -c 1 -r 48000 -b 16
    
  2. 录制完语音后,按CTRL + C停止录制。录制完成后,将输出剪辑从 /data/设备所在位置拉出。

    adb pull /data/dmic2.wav
    

    在这里插入图片描述

通过tinyALSA进行音频播放

要通过tinyALSA播放音频,请运行以下命令:

adb push dmic0.wav /data/
adb shell
tinymix set 'WSA_CDC_DMA_RX_0 Channels' 'Two'
tinymix set 'WSA RX0 MUX' 'AIF1_PB'
tinymix set 'WSA RX1 MUX' 'AIF1_PB'
tinymix set 'WSA_RX0 INP0' 'RX0'
tinymix set 'WSA_RX1 INP0' 'RX1'
tinymix set 'WSA_COMP1 Switch' 1
tinymix set 'WSA_COMP2 Switch' 1
tinymix set 'SpkrLeft COMP Switch' 1
tinymix set 'SpkrLeft BOOST Switch' 1
tinymix set 'SpkrLeft VISENSE Switch' 1
tinymix set 'SpkrLeft SWR DAC_Port Switch' 1
tinymix set 'SpkrRight COMP Switch' 1
tinymix set 'SpkrRight BOOST Switch' 1
tinymix set 'SpkrRight VISENSE Switch' 1
tinymix set 'SpkrRight SWR DAC_Port Switch' 1
tinymix set 'WSA_RX0 Digital Volume' 68
tinymix set 'WSA_RX1 Digital Volume' 68
tinymix set 'WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1' 1
tinyplay /data/dmic0.wav

在这里插入图片描述

音频硬件抽象层(HAL)录制和播放

要通过 捕获录音hal_rec_test_64bit,请执行以下操作:

  1. 运行以下命令:

    adb shell hal_rec_test_64bit -c [number of channels] -r [sample rate] -t [record time]
    

    命令示例:

    adb shell hal_rec_test_64bit -r 48000 -t 30 -c 1
    ->sample rate 48000Hz
    ->channels 1[AUDIO_CHANNEL_IN_MONO]
    ->record data for 30 secs
    
  2. 录制完成后, /data/audio 通过运行以下命令从设备中的位置拉出输出剪辑:

    adb pull /data/audio/rec1.wav
    
    

    在这里插入图片描述

通过hal_playback_test_64bit进行音频播放

对于通过 hal_playback_test_64bit 进行音频播放,请运行以下命令:

adb shell hal_play_test_64bit -f [wave file] -t [file type, required for non WAV formats] -r [sample rate] -v [volume 0 - 1]

例如:

相变存储器:

adb push test.wav /data/
adb shell hal_play_test_64bit -f /data/test.wav -v 0.5
->file location /data/test.wav
          ->playback volume 0.5

MP3:

adb push test.mp3 /data/
adb shell hal_play_test_64bit -f /data/test.mp3 -t 2 -r 44100 -v 0.4
->file location /data/test.mp3
->file type MP3 [1:WAV 2:MP3]
->sample rate 44100Hz
->playback volume 0.4

在这里插入图片描述

GStreamer 录制和回放

要通过 GStreamer 捕获音频录制和播放,请执行以下操作:

  1. 运行以下命令进行录制:
    相变存储器:

    adb shell
    
    gst-launch-1.0 -e -v pulsesrc ! audioconvert ! wavenc ! filesink location="/data/track.wav"
    

    AAC:软件编码

    adb shell
    	gst-launch-1.0 -e -v pulsesrc ! audio/x-raw,format=S16LE,rate=48000,channels=1 ! audioconvert ! avenc_aac ! aacparse ! mpegtsmux ! queue ! filesink location="/data/Audio_AAC.ts"
    
  2. 录制完语音后,按CTRL + C或使用adbshellkill -2 `pidof gst-launch-1.0停止录制。录制完成后,将输出剪辑从/data/设备所在位置拉出。

    在这里插入图片描述

通过 GStreamer 播放音频

对于通过 GStreamer 播放音频,请运行以下命令:

相变存储器:

adb push audio_test.wav /data/
adb shell
gst-launch-1.0 filesrc location="/data/audio_test.wav" ! wavparse ! audioconvert ! pulsesink

AAC:软件解码

adb push test.aac /data/
adb shell
gst-launch-1.0 filesrc location="/data/test.aac" ! aacparse ! avdec_aac ! audioconvert ! pulsesink

MP3:软件解码

adb push test.mp3 /data/
adb shell
gst-launch-1.0 filesrc location="/data/test.mp3" ! mpegaudioparse ! mpg123audiodec ! pulsesink
  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值