Audprc示例
支持的平台
eh-lb525
em-lb525
ec-lb587
概述
本例程中,Audprc配合Audcodec使用,包含:
mic录音。
通过speaker播放录音。
Loopback(边录边播)。
例程的使用
硬件需求
运行该例程前,需要准备:
一块本例程支持的开发板(支持的平台)。
喇叭。
编译和烧录
切换到例程project目录,运行scons命令执行编译:
> scons --board=eh-lb525 -j32
切换到例程project/build_xx
目录,运行uart_download.bat
,按提示选择端口即可进行下载:
$ ./uart_download.bat
Uart Download
please input the serial port num:5
关于编译、下载的详细步骤,请参考快速上手的相关介绍。
例程的预期结果
本例程中通过FINSH命令来操作录音和播放:
用途 |
命令 |
示例 |
备注 |
---|---|---|---|
录音 |
audprc rx [channels:1/2] [采样率] [采样位数] |
|
录音存放到ram buffer(录音满1M后自动停止录音) |
播放录音 |
audprc tx [channels:1/2] [采样率] [采样位数] |
|
播放数据来ram buffer(需要先录音) |
Loopback |
audprc rxtx [rx channels:1/2] [rx采样率] [rx采样位数] [tx channels:1/2] [tx采样率] [tx采样位数] |
|
边录(mic)边播放(speaker)(执行录音、播放命令前,如正在运行Loopback,需先停止。) |
停止Loopback |
audprc txrxstop |
|
停止Loopback |
串口打印如下:
// 输入命令,开始录音
01-23 11:04:27:099 TX:audprc rx 1 16000 16
01-23 11:04:27:105 audprc_rx_entry
01-23 11:04:27:136 codec input parameter:sub_type=4 channels 1, rate 16000, bits 16mic input:rx channel 0, channels 1, rate 16000, bitwidth 16get_mic_volume = 0db
01-23 11:04:27:141 get_mic_volume = 0db
01-23 11:04:27:143 start_rx
01-23 11:04:27:147 [I/drv.audcodec] pll config state:1, samplerate:0
// 录音ram buffer满1M,停止录音
01-23 11:04:59:936 Record finished.
01-23 11:04:59:939 RX finished.
01-23 11:04:59:941 stop_rx
01-23 11:04:59:943 [I/drv.audcodec] bf0_audio_stop 0x401
01-23 11:04:59:954 [I/drv.audcodec] audcodec close adc
01-23 11:04:59:957 [I/drv.audcodec] bf0_audio_stop 0x401 done
01-23 11:04:59:958 [I/drv.audprc] bf0_audio_stop 0x1001
01-23 11:04:59:960 [I/drv.audprc] audprc close adc/dac
01-23 11:04:59:962 [I/drv.audprc] bf0_audio_stop 0x1001 done
// 输入命令,播放录音文件
01-23 11:05:38:083 TX:audprc tx 1 16000 16
01-23 11:05:38:096 audprc_tx_entry
01-23 11:05:38:097 prc_codec : sub_type=1 channel 1, samplerate 16000, bits 16speaker OUTPUTSRC channel=1 in_rate=16000 out_rate=16000speaker select=0x5050 mixer=0x5150tx[0]: sub_type 0, ch 1, samrate 16000, bits 16
01-23 11:05:38:099 init volume=-18[I/drv.audcodec] dac set volume: prc=0 codec=-18
01-23 11:05:38:100 start_tx
01-23 11:05:38:102 [I/drv.audcodec] codec dac mute set:1
01-23 11:05:38:103 [I/drv.audcodec] pll config state:1, samplerate:0
01-23 11:05:38:105 [I/drv.audprc] samplerate = 16000, select voice eq
01-23 11:05:38:106 [I/drv.audprc] -----tx dma size = 320
01-23 11:05:38:108 sifli_aw8155 to do power handle
01-23 11:05:38:110 sifli_aw8155_start,mode:1 10
01-23 11:05:38:126 [I/drv.audcodec] codec dac mute set:0
// 播放完成
01-23 11:06:10:858 Play finished.
01-23 11:06:10:861 Play finished.
01-23 11:06:10:863 stop_tx
01-23 11:06:10:864 [I/drv.audcodec] bf0_audio_stop 0x100
01-23 11:06:10:866 [I/drv.audcodec] audcodec close dac
01-23 11:06:10:867 [I/drv.audcodec] bf0_audio_stop 0x100 done
01-23 11:06:10:869 [I/drv.audprc] bf0_audio_stop 0x100
01-23 11:06:10:870 [I/drv.audprc] audprc close adc/dac
01-23 11:06:10:871 [I/drv.audprc] bf0_audio_stop 0x100 done
01-23 11:06:10:875 sifli_aw8155_stop
// 输入命令,开始loopback
01-23 11:06:14:524 TX:audprc txrx 1 16000 16 1 16000 16
01-23 11:06:14:533 example_audprc_tx_rx
01-23 11:06:14:540 audprc_rx_tx_entry
01-23 11:06:14:569 codec input parameter:sub_type=4 channels 1, rate 16000, bits 16mic input:rx channel 0, channels 1, rate 16000, bitwidth 16get_mic_volume = 0db
01-23 11:06:14:571 get_mic_volume = 0db
01-23 11:06:14:573 prc_codec : sub_type=1 channel 1, samplerate 16000, bits 16speaker OUTPUTSRC channel=1 in_rate=16000 out_rate=16000speaker select=0x5050 mixer=0x5150tx[0]: sub_type 0, ch 1, samrate 16000, bits 16
01-23 11:06:14:575 init volume=-18[I/drv.audcodec] dac set volume: prc=0 codec=-18
01-23 11:06:14:576 start_txrx
01-23 11:06:14:578 [I/drv.audcodec] codec dac mute set:1
01-23 11:06:14:579 [I/drv.audcodec] pll config state:1, samplerate:0
01-23 11:06:14:594 [I/drv.audprc] samplerate = 16000, select voice eq
01-23 11:06:14:596 [I/drv.audprc] -----tx dma size = 320
01-23 11:06:14:598 sifli_aw8155 to do power handle
01-23 11:06:14:598 sifli_aw8155_start,mode:1 10
01-23 11:06:14:623 [I/drv.audcodec] codec dac mute set:0
// 输入命令,停止loopback
01-23 11:06:21:132 TX:audprc txrxstop
01-23 11:06:21:141 example_audprc_tx_rx_stop
01-23 11:06:21:144 [I/drv.audcodec] bf0_audio_stop 0x502
01-23 11:06:21:146 [I/drv.audcodec] audcodec close dac
01-23 11:06:21:147 [I/drv.audcodec] audcodec close adc
01-23 11:06:21:149 [I/drv.audcodec] bf0_audio_stop 0x502 done
01-23 11:06:21:150 [I/drv.audprc] bf0_audio_stop 0x1102
01-23 11:06:21:152 [I/drv.audprc] audprc close adc/dac
01-23 11:06:21:153 [I/drv.audprc] bf0_audio_stop 0x1102 done
01-23 11:06:21:156 sifli_aw8155_stop
异常诊断
参考文档
更新记录
版本 |
日期 |
发布说明 |
---|---|---|
0.0.1 |
12/2024 |
初始版本 |