sunsili 发表于 2022-3-5 17:35:20

【平头哥Sipeed LicheeRV 86开发板试用】音频播放测试体验aplay...

本帖最后由 sunsili 于 2022-3-5 17:57 编辑

【平头哥Sipeed LicheeRV 86开发板试用】音频播放测试体验aplay alsamixer arecord命令


使用scp或sftp传音频文件到开发板, 
推荐此工具
MobaXterm
全带了还有ssh
详情参阅:【分享】MobaXterm 一款远程计算的终极工具箱 ...

注传到/tmp目录, /root目录 快满了
如传/root目录,可以会出错误
df命令查看便知:
df
Filesystem         1K-blocks      Used Available Use% Mounted on
/dev/root                99884   82196   1052089% /
devtmpfs                247644         8    247636   0% /dev
tmpfs                   251840   59576    19226424% /tmp
/dev/mmcblk0p1            8151       677      7474   8% /mnt/SDCARD




查看相关用法aplay
<div>aplay -h
Usage: aplay ... ...

-h, --help            help
    --version         print current version
-l, --list-devices      list all soundcards and digital audio devices
-L, --list-pcms         list device names
-D, --device=NAME       select PCM by name
-q, --quiet             quiet mode
-t, --file-type TYPE    file type (voc, wav, raw or au)
-c, --channels=#      channels
-f, --format=FORMAT   sample format (case insensitive)
-r, --rate=#            sample rate
-d, --duration=#      interrupt after # seconds
-M, --mmap            mmap stream
-N, --nonblock          nonblocking mode
-F, --period-time=#   distance between interrupts is # microseconds
-B, --buffer-time=#   buffer duration is # microseconds
    --period-size=#   distance between interrupts is # frames
    --buffer-size=#   buffer duration is # frames
-A, --avail-min=#       min available space for wakeup is # microseconds
-R, --start-delay=#   delay for automatic PCM start is # microseconds
                        (relative to buffer size if <= 0)
-T, --stop-delay=#      delay for automatic PCM stop is # microseconds from xrun
-v, --verbose         show PCM structure and setup (accumulative)
-V, --vumeter=TYPE      enable VU meter (TYPE: mono or stereo)
-I, --separate-channels one file for each channel
-i, --interactive       allow interactive operation from stdin
-m, --chmap=ch1,ch2,..Give the channel map to override or follow
    --disable-resampledisable automatic rate resample
    --disable-channelsdisable automatic channel conversions
    --disable-format    disable automatic format conversions
    --disable-softvol   disable software volume control (softvol)
    --test-position   test ring buffer position
    --test-coef=#       test coefficient for ring buffer position (default 8)
                        expression for validation is: coef * (buffer_size / 2)
    --test-nowait       do not wait for ring buffer - eats whole CPU
    --max-file-time=#   start another output file when the old file has recorded
                        for this many seconds
    --process-id-file   write the process ID here
    --use-strftime      apply the strftime facility to the output file name
    --dump-hw-params    dump hw_params of the device
    --fatal-errors      treat all errors as fatal
Recognized sample formats are: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE IEC958_SUBFRAME_LE IEC958_SUBFRAME_BE MU_LAW A_LAW IMA_ADPCM MPEG GSM SPECIAL S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE U18_3BE G723_24 G723_24_1B G723_40 G723_40_1B DSD_U8 DSD_U16_LE DSD_U32_LE DSD_U16_BE DSD_U32_BE
Some of these may not be available on selected hardware
The available format shortcuts are:
-f cd (16 bit little endian, 44100, stereo)
-f cdr (16 bit big endian, 44100, stereo)
-f dat (16 bit little endian, 48000, stereo)
</div>
播放设备查看

root@MaixLinux:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec , device 0: SUNXI-CODEC 2030000.codec-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
card 2: sndhdmi , device 0: 2034000.daudio-audiohdmi-dai 20340a4.hdmiaudio-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0

播放所有wav
aplay *wav
Playing WAVE 'CS2_AutoplayMusic.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
Playing WAVE 'Call.wav' : Signed 16 bit Little Endian, Rate 11025 Hz, Stereo
Playing WAVE 'CallThePolice.wav' : Signed 16 bit Little Endian, Rate 11025 Hz, Stereo
Playing WAVE 'CheckOut.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Stereo
Playing WAVE 'Clear.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
Warning: format is changed to U8
Playing WAVE 'Explosion.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono
Playing WAVE 'music.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Playing WAVE 'music_4mb.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Playing WAVE 'music_long.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo注:播放wav可以不加参数


播放raw文件

aplay -t raw -c 1 -f S16_LE -r 8000 *.raw 注:
-t: type raw表示是PCM
-c: channel 1
-f S16_LE: Signed 16bit-width Little-Endian
-r: sample rate 8000

PCM是最raw的音频数据,没有任何头信息。WAV文件就是PCM+头信息,头信息就是上述的声道数,sample rate这些。所以WAV文件可以直接播放,而PCM需要手动指定这些信息之后才能播放。

*****注意:aplay是不能解码mp3, 所以播放不了mp3, 播出来是杂声

录放音测试:

查看arecord用法
arecord -h
Usage: arecord ... ...

-h, --help            help
    --version         print current version
-l, --list-devices      list all soundcards and digital audio devices
-L, --list-pcms         list device names
-D, --device=NAME       select PCM by name
-q, --quiet             quiet mode
-t, --file-type TYPE    file type (voc, wav, raw or au)
-c, --channels=#      channels
-f, --format=FORMAT   sample format (case insensitive)
-r, --rate=#            sample rate
-d, --duration=#      interrupt after # seconds
-M, --mmap            mmap stream
-N, --nonblock          nonblocking mode
-F, --period-time=#   distance between interrupts is # microseconds
-B, --buffer-time=#   buffer duration is # microseconds
    --period-size=#   distance between interrupts is # frames
    --buffer-size=#   buffer duration is # frames
-A, --avail-min=#       min available space for wakeup is # microseconds
-R, --start-delay=#   delay for automatic PCM start is # microseconds
                        (relative to buffer size if <= 0)
-T, --stop-delay=#      delay for automatic PCM stop is # microseconds from xrun
-v, --verbose         show PCM structure and setup (accumulative)
-V, --vumeter=TYPE      enable VU meter (TYPE: mono or stereo)
-I, --separate-channels one file for each channel
-i, --interactive       allow interactive operation from stdin
-m, --chmap=ch1,ch2,..Give the channel map to override or follow
    --disable-resampledisable automatic rate resample
    --disable-channelsdisable automatic channel conversions
    --disable-format    disable automatic format conversions
    --disable-softvol   disable software volume control (softvol)
    --test-position   test ring buffer position
    --test-coef=#       test coefficient for ring buffer position (default 8)
                        expression for validation is: coef * (buffer_size / 2)
    --test-nowait       do not wait for ring buffer - eats whole CPU
    --max-file-time=#   start another output file when the old file has recorded
                        for this many seconds
    --process-id-file   write the process ID here
    --use-strftime      apply the strftime facility to the output file name
    --dump-hw-params    dump hw_params of the device
    --fatal-errors      treat all errors as fatal



录音设备查看

root@MaixLinux:~# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: audiocodec , device 0: SUNXI-CODEC 2030000.codec-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
card 1: snddmic , device 0: 2031000.dmic-dmic-hifi dmic-hifi-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
card 2: sndhdmi , device 0: 2034000.daudio-audiohdmi-dai 20340a4.hdmiaudio-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
录音命令
    arecord -D hw:1,0 -f S16_LE -t wav -d 10 test_record.wav
注:
-D hw:1,0 录音设备
-f S16_LE 16位数据格式
-t wav 保存为wav 格式
-d 10 录音时长10s
test_record.wav 保存录音文件名



播放录音:
aplay -D hw:0,0 test_record.wav


用alsamixer 进行音量调整

输入alsamixer命令
alsamixer


总结

本篇测试了Sipeed LicheeRV 86 Panel开发板使用aplay alsamixer arecord命令音频播放测试, 解码能力还是加强, 播放时CPU100%


音质还要加强, 我还换喇叭了


页: [1]
查看完整版本: 【平头哥Sipeed LicheeRV 86开发板试用】音频播放测试体验aplay...