Page 1 of 2

关于RK1103/1106声卡录音C语言实现的问题

Posted: 2024-05-28 2:19
by shaw...
https://github.com/LuckfoxTECH/luckfox- ... mpi_ai.cpp
这是我在GitHub上找到的代码,好像也是贵公司发布的,想问一下这个该怎么使用呢,需要重新编译一遍系统吗

Re: 关于RK1103/1106声卡录音C语言实现的问题

Posted: 2024-05-28 5:59
by Crocodile
shaw... wrote: 2024-05-28 2:19 https://github.com/LuckfoxTECH/luckfox- ... mpi_ai.cpp
这是我在GitHub上找到的代码,好像也是贵公司发布的,想问一下这个该怎么使用呢,需要重新编译一遍系统吗
您好,这是 Rockchip 提供的SDK中的内容,我们的SDK是基于官方SDK做客制化修改的版本,RKMPI相关内容的核心是由Rockchip 公布的。在Buildroot镜像构建的过程中已经将编译好的可执行文件添加到oem分区并添加进环境变量,在板端可以直接执行rk_mpi_ai_test 命令进行测试。

Re: 关于RK1103/1106声卡录音C语言实现的问题

Posted: 2024-05-29 7:40
by shaw...
您好,我根据手册上使用了rk_mpi_ai_test --sound_card_name=hw:0,0 --device_rate=16000 --device_ch=2 --out_rate=16000 --out_ch=2 --output=/tmp进行测试,请问一下这里面单声道或者双声道采集如何设置呢

Re: 关于RK1103/1106声卡录音C语言实现的问题

Posted: 2024-05-29 8:28
by Crocodile
shaw... wrote: 2024-05-29 7:40 您好,我根据手册上使用了rk_mpi_ai_test --sound_card_name=hw:0,0 --device_rate=16000 --device_ch=2 --out_rate=16000 --out_ch=2 --output=/tmp进行测试,请问一下这里面单声道或者双声道采集如何设置呢
您好,单双通道的设置主要使用 rk_mpi_amix_test 来进行设置,您需要先使用

Code: Select all

rk_mpi_amix_test --list_contents
查看控制器已经可设置的选项
PixPin_2024-05-29_16-20-18.jpg
然后使用

Code: Select all

rk_mpi_amix_test --card 0 --control "ADC Mode" --value "DiffadcLR"
进行设置,这个命令是设置ADC模式为差分左右声道
PixPin_2024-05-29_16-21-12.jpg
请注意如果您使用的是rv1103,声卡部分是被裁剪过的,无法使用DiffadcLR模式。
PixPin_2024-05-29_16-26-21.jpg

Re: 关于RK1103/1106声卡录音C语言实现的问题

Posted: 2024-05-29 8:42
by shaw...
好的,那么我想要改成单声道采集单端输入是要改成SingadcLR吗,然后rk_mpi_ai_test --sound_card_name=hw:0,0 --device_rate=16000 --device_ch=2 --out_rate=16000 --out_ch=2 --output=/tmp这个指令的ch参数需要修改吗

Re: 关于RK1103/1106声卡录音C语言实现的问题

Posted: 2024-05-29 9:24
by Crocodile
shaw... wrote: 2024-05-29 8:42 好的,那么我想要改成单声道采集单端输入是要改成SingadcLR吗,然后rk_mpi_ai_test --sound_card_name=hw:0,0 --device_rate=16000 --device_ch=2 --out_rate=16000 --out_ch=2 --output=/tmp这个指令的ch参数需要修改吗
您好 SingadcLR 是单端输入 左右声道的设置,如果需要单声道采集您需要根据实际电路来设置,单端输入用Sing 差分输入用Diff
如果麦克风接在CODEC_MIC0 是左声道用L 接在CODEC_MIC1为右声道用R
指令的设置目前不支持单独一个声道采集,device_ch必须为2,输出通道的话可以设置为一个声道或两个声道,你可以借助Audacity软件来观察PCM的波形来判断是否采集成功。

Re: 关于RK1103/1106声卡录音C语言实现的问题

Posted: 2024-05-30 2:41
by shaw...
好的,十分感谢,那么RV1103双声道录音要配置成什么模式呢,以及想问一下双通道数据采集存储的cap_out.pcm文件中数据格式是什么样的呢,比方说我设置一个数据帧是1024个字节,那么得到的文件是一个左声道的数据帧(1024byte)接着另外一个声道的数据帧(1024byte)吗

Re: 关于RK1103/1106声卡录音C语言实现的问题

Posted: 2024-05-30 3:14
by Crocodile
shaw... wrote: 2024-05-30 2:41 好的,十分感谢,那么RV1103双声道录音要配置成什么模式呢,以及想问一下双通道数据采集存储的cap_out.pcm文件中数据格式是什么样的呢,比方说我设置一个数据帧是1024个字节,那么得到的文件是一个左声道的数据帧(1024byte)接着另外一个声道的数据帧(1024byte)吗
我查看了RV1103的相关原理图,RV1103仅提供了一个声道输入接口,很遗憾使用常规手段实现不了双通道数据采集
rv1103_codec.jpg
如果是8bit采样,那么PCM文件就是第一个字节放左声道数据,第二个声道放右声道数据,依次类推下去,由于是原始数据,用分析软件也需要设置正确,不然获取到的波形数据就是错误的。

Re: 关于RK1103/1106声卡录音C语言实现的问题

Posted: 2024-05-30 9:26
by shaw...
好的,最后想问一下信号输入端应该连接在luckfox-pico-plus的哪个引脚上呢

Re: 关于RK1103/1106声卡录音C语言实现的问题

Posted: 2024-05-30 10:50
by Crocodile
shaw... wrote: 2024-05-30 9:26 好的,最后想问一下信号输入端应该连接在luckfox-pico-plus的哪个引脚上呢
luckfox-pico-plus没有引出音频的输入引脚,但是有引出测试点,需要自己进行焊接飞线,后续我们也会推出带音频输出的版本。
tp4->LINEOUT tp5->MIC1P tp6->MIC0P tp7->MICBIAS