Firefly开源社区

标题: 请问我如何让rk3308b的板子接入两个mic [打印本页]

作者: 中国移动,我不    时间: 2021-1-26 16:11
标题: 请问我如何让rk3308b的板子接入两个mic
本帖最后由 中国移动,我不 于 2021-1-26 18:36 编辑

请问这个耳机接入MICP3,有声音,我自己在MICP8上接入mic,用如下命令录音:
arecord -r 48000 -c 2 -f S16_LE /tmp/record.wav
然后如下命令播放:
aplay  /tmp/record.wav
结果耳机的左声道有声音,右声道没有声音,而且MICP8的mic没有声音录进来,请问这个没录进来是什么原因?是我设备树没修改正确吗?

作者: zyk    时间: 2021-1-26 22:13
听到只有一个声道应该是你只用一个mic去录音,mic8录音的的话可以尝试用下面3 0 1 2的配置试一试
作者: 中国移动,我不    时间: 2021-1-27 08:28
zyk 发表于 2021-1-26 22:13
听到只有一个声道应该是你只用一个mic去录音,mic8录音的的话可以尝试用下面3 0 1 2的配置试一试

我想让两个mic都录音的话,怎么设置?原理请问是什么?
作者: zyk    时间: 2021-1-27 08:50
如果不是接同一组mic可以尝试指定8通道录音,原理的话可以看一下SDK下的文档Rockchip_RK3308_Introduction_Linux_Audio_Codec_CN
作者: 中国移动,我不    时间: 2021-7-24 14:58
zyk 发表于 2021-1-27 08:50
如果不是接同一组mic可以尝试指定8通道录音,原理的话可以看一下SDK下的文档Rockchip_RK3308_Introduction_ ...

请问我想mic3 mic4 mic7 mic8都有声音的话是个什么原理?我现在配置的<3 1 0 2>adc3组对应的mic7 mic8有声音但是mic3 mic4对应的adc1组没有声音,请问3308只能路2个mic的吗?
作者: 中国移动,我不    时间: 2021-7-24 15:01
zyk 发表于 2021-1-27 08:50
如果不是接同一组mic可以尝试指定8通道录音,原理的话可以看一下SDK下的文档Rockchip_RK3308_Introduction_ ...

我用的是内置codec外接的驻极体
作者: zyk    时间: 2021-7-24 17:40
指定8通道录音的文件用Audacity软件看一下
作者: 中国移动,我不    时间: 2021-7-26 09:05
zyk 发表于 2021-7-24 17:40
指定8通道录音的文件用Audacity软件看一下

试了一样的
作者: 中国移动,我不    时间: 2021-7-26 09:08
zyk 发表于 2021-7-24 17:40
指定8通道录音的文件用Audacity软件看一下

我现在的现象很奇怪<3 1 0 2>内部acodec ADC3连接的的mic7 mi8都有声音(其他没有声音)但是若是<1 3 0 2>内部acodec ADC1连接的的mic3 mic4有声音其他的mic没有声音,就是只要把0-3中的数字写到最左边对应的mic就有声音,请问这个是什么原因?
作者: zyk    时间: 2021-7-26 10:38
中国移动,我不 发表于 2021-7-26 09:08
我现在的现象很奇怪内部acodec ADC3连接的的mic7 mi8都有声音(其他没有声音)但是若是内部acodec ADC1连接 ...

使用的命令是否一直都是指定两个通道-c 2
  1. arecord -r 48000 -c 2 -f S16_LE /tmp/record.wav
复制代码


mic具体的接法可以发一下
作者: 中国移动,我不    时间: 2021-7-26 10:50
本帖最后由 中国移动,我不 于 2021-7-26 10:57 编辑

-c 4
作者: 中国移动,我不    时间: 2021-7-26 10:56
本帖最后由 中国移动,我不 于 2021-7-26 10:59 编辑
zyk 发表于 2021-7-26 10:38
使用的命令是否一直都是指定两个通道-c 2

命令-c 4也一样,接法:



作者: zyk    时间: 2021-7-26 14:05
中国移动,我不 发表于 2021-7-26 10:56
命令-c 4也一样,接法:

mic7/8/4没有使用?不是很理解你意思,用的是Core-3308Y核心板,自己设计的底板是吗
作者: 中国移动,我不    时间: 2021-7-26 15:50
zyk 发表于 2021-7-26 14:05
mic7/8/4没有使用?不是很理解你意思,用的是Core-3308Y核心板,自己设计的底板是吗

就是这个板子的端口没有使用,问题解决,原因是:


我是>48K要设置缓冲区和中断周期,我没设置,导致只录音了mic7 mic8 的,mic3的没录进来,加了就可以了,不知道之后还会遇到什么问题

作者: zyk    时间: 2021-7-26 16:03

作者: 中国移动,我不    时间: 2021-7-28 16:02
zyk 发表于 2021-7-26 16:03

不太对,不是这个问题,还是有问题
作者: 中国移动,我不    时间: 2021-7-28 16:06
zyk 发表于 2021-7-26 14:05
mic7/8/4没有使用?不是很理解你意思,用的是Core-3308Y核心板,自己设计的底板是吗

我现在用arecord -c 2通道录音,发现录音只有mic 3mic4的声音mic7 mic8的没有,但是-c修改为4的话(-c 4)就有mic7的声音了,请问这个有遇到过吗,这个和通道有什么联系?为什么从声卡获取声音不是所有mic的声音都采集的吗?
作者: zyk    时间: 2021-7-28 17:03
中国移动,我不 发表于 2021-7-28 16:06
我现在用arecord -c 2通道录音,发现录音只有mic 3mic4的声音mic7 mic8的没有,但是-c修改为4的话(-c 4 ...

一个mic代表一个通道,一个通道代表一个声道
作者: 中国移动,我不    时间: 2021-7-30 14:06
zyk 发表于 2021-7-28 17:03
一个mic代表一个通道,一个通道代表一个声道

这次我是真的解决了,要修改asound.conf,要用哪个type dmix的插件具体如下:
pcm.fake_record_lrmix {
    type route        
    slave {      
        pcm "hw:0,0"                                         
        channels 4      
    }         
    ttable {                                                
        0.0 0.5                                             
        0.1 0.5         
        0.2 0.5         
        0.3 0.5      
        1.0 0.5         
        1.1 0.5         
        1.2 0.5         
        1.3 0.5
        2.0 0.5     
        2.1 0.5   
        2.2 0.5        
        2.3 0.5
        3.0 0.5
        3.1 0.5        
        3.2 0.5        
        3.3 0.5
    }               
}
用这个虚拟的声卡就可以听到4个mic在左右耳机都有是个声音了
作者: 中国移动,我不    时间: 2021-7-30 14:14
zyk 发表于 2021-7-28 17:03
一个mic代表一个通道,一个通道代表一个声道

我还有个问题想请教一下,我看了rk3308的文档《Rockchip-Developer-Guide-Linux4.4-USB-Gadget-UAC-CN.pdf》,我用里面的UAC1的USB,但是每次不点开下面图的界面usb就没有声音:


具体问题就是我不侦听这个设备,当我点击“录音”的时候usb有声音,但是当我点击到“声音,播放,通信”或者关闭这个窗口的时候,导致我程序的mic的声卡hw:0,0直接overrun了?所以我想问下的是,为什么这个usb的声卡会影响到我mic的声卡?我换成这个文档里面说的“Audio Source Usage
”这个声卡也一样,请问这是为什么怎么解决?

作者: zyk    时间: 2021-8-2 09:13
具体是使用uac1还是uac2?cat一下看看
  1. cat /etc/init.d/.usb_config
复制代码

作者: 中国移动,我不    时间: 2021-8-2 10:38
zyk 发表于 2021-8-2 09:13
具体是使用uac1还是uac2?cat一下看看

用的uac1
作者: 中国移动,我不    时间: 2021-8-2 10:40
zyk 发表于 2021-7-28 17:03
一个mic代表一个通道,一个通道代表一个声道

现在的问题是为什么mic的声卡会被usb的声卡所影响,只要我电脑不录音,mic的声卡就不会采集出现overrun
作者: zyk    时间: 2021-8-2 11:08
pc端录音时,板子具体的命令发一下
作者: 中国移动,我不    时间: 2021-8-2 13:40
zyk 发表于 2021-8-2 11:08
pc端录音时,板子具体的命令发一下

arecord -N -Dhw:0,0 -r 48000 -c 2 -f S16_LE --period-size=128 --buffer-size=1024 | aplay -N -Dhw:1,0 -c 2 -r 48000 -f S16_LE --period-size=2048 --buffer-size=4096
作者: zyk    时间: 2021-8-2 21:54
可以尝试把buffer-size调大一点
作者: 中国移动,我不    时间: 2021-8-4 09:19
zyk 发表于 2021-8-2 21:54
可以尝试把buffer-size调大一点

我换了一个叫audio source然后结果是我的sub的声卡overrun了,感觉好奇怪,能否顺便问一下


这个bindings是什么意思我看官方有这个一句话:“This plugin provides direct mixing of multiple streams. The resolution for 32-bit mixing is only 24-bit. The low significant byte is filled with zeros. The extra 8 bits are used for the saturation.
请问一下这个插件怎么体现除了"mixing of multiple streams"(我不太懂这句话什么意思,我的理解是混合多个流),请问怎么体现了混合多个流,我不太明白





欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1