alsa 声卡顺序求教

95 views
Skip to first unread message

Marco

unread,
Jul 29, 2014, 5:24:57 AM7/29/14
to shlug
我机器里有三块声卡…

* 一个是变态的摄像头, usb的, snd-usb-audio, 下文别名 F (VID:0x058f, PID:0x0362)
* 一个是外置声卡, usb的, snd-usb-audio,        下文别名 A (VID:0x0d8c, PID:0x000c)
* 一个是主板板载声卡, pch的, snd-hda-intel       下文别名 B

我希望的声卡顺序是 A-->F-->B或者 (A-->B-->F也可以)

因为插口的问题, usb现在是先枚举了 F, 再枚举A(当然我可以换插口, 但是这样不太可靠, usb插来插去的), 所以用默认的配置, 默认声卡顺序是 B --> F --> A

于是我修改 /etc/modprobe.d/alsa-base.conf
去掉组织usb成为默认的那句, 然后加入下面两句:

    options snd_usb_audio vid=0x0d8c,0x058f pid=0x000c,0x0362 index=0,1                              
    options snd_hda_intel index=2

这样可以实现我的目的, 但是现在的问题是, 我以后有可能换成其它的摄像头, 这样VID/PID就不对了, 我于是这样写:
    options snd_usb_audio vid=0x0d8c pid=0x000c index=0, 即只写外置声卡的VID/PID, 重启后。。。发现只有两个声卡被识别, 一个是 F, 一个是B, 指定PID/VID的反而消失了。。。


请教大家, 该如何搞定这个问题? 
谢谢!
   







--
LinuX
Violin
Canon EOS

Marco

unread,
Jul 29, 2014, 6:39:44 AM7/29/14
to shlug
试了一些 ~/.asoundrc, 把默认声卡指定一下, 大部分程序倒是可以工作了, 但是有小部分程序大概不是很标准, 还是直接从第一个底层设备读取了。。不行

Ben Luo

unread,
Jul 29, 2014, 6:39:44 AM7/29/14
to shlug

无限崇拜中。三个声卡都能使用。很好奇你那个外置usb声卡是什么型号

--
-- You received this message because you are subscribed to the Google Groups Shanghai Linux User Group group. To post to this group, send email to sh...@googlegroups.com. To unsubscribe from this group, send email to shlug+un...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/shlug?hl=zh-CN
---
您收到此邮件是因为您订阅了Google网上论坛中的“Shanghai Linux User Group”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到shlug+un...@googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout

Marco

unread,
Jul 29, 2014, 6:47:25 AM7/29/14
to shlug
。。。。C-Media的, 不是啥高级货。。。。
继续求教

none_nobody

unread,
Jul 29, 2014, 10:02:21 AM7/29/14
to sh...@googlegroups.com
赶脚这个事与udev有关系,没有三块声卡,没法试。甚至就根本没有声卡。




On Tuesday, July 29, 2014 6:47:25 PM UTC+8, marco wrote:
。。。。C-Media的, 不是啥高级货。。。。
继续求教


Yiling Cao

unread,
Jul 29, 2014, 12:47:15 PM7/29/14
to sh...@googlegroups.com
好奇你用3块声卡做microphone array 还是什么?


none_nobody

unread,
Jul 30, 2014, 1:05:02 AM7/30/14
to sh...@googlegroups.com
可以做的事情很多啊,

音源定位
噪音消除
语音提取

什么也不做,纯玩算法。
好奇你用3块声卡做microphone array 还是什么?


要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到shlug+unsubscribe@googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout

Chaos Eternal

unread,
Jul 30, 2014, 9:40:07 AM7/30/14
to sh...@googlegroups.com
同步怎么做?
>>> 要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到shlug+un...@googlegroups.com
>>> 要查看更多选项,请访问https://groups.google.com/d/optout
>>
>>
> --
> -- You received this message because you are subscribed to the Google Groups
> Shanghai Linux User Group group. To post to this group, send email to
> sh...@googlegroups.com. To unsubscribe from this group, send email to
> shlug+un...@googlegroups.com. For more options, visit this group at
> https://groups.google.com/d/forum/shlug?hl=zh-CN
> ---
> 您收到此邮件是因为您订阅了Google网上论坛中的“Shanghai Linux User Group”论坛。
> 要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到shlug+un...@googlegroups.com
> 要查看更多选项,请访问https://groups.google.com/d/optout

liyaoshi

unread,
Jul 30, 2014, 8:36:47 PM7/30/14
to sh...@googlegroups.com
一个aux in 接另外一个 line in ?


您收到此邮件是因为您订阅了 Google 网上论坛的“Shanghai Linux User Group”论坛。

liyaoshi

unread,
Jul 30, 2014, 8:37:32 PM7/30/14
to sh...@googlegroups.com
擦,手滑了 
应该是
aux in 接 line out 

Yiling Cao

unread,
Jul 30, 2014, 9:05:27 PM7/30/14
to sh...@googlegroups.com
同步可能需要矫正下。。。不清楚,除非有特殊硬件。

none_nobody

unread,
Jul 30, 2014, 9:25:28 PM7/30/14
to sh...@googlegroups.com
声卡采样频率44.1k, 声速340m/s (15摄氏度),随便采样个非噪音尖峰就可以校准。

现场校准,然后用这个校准值代入。

On Thursday, July 31, 2014 9:05:27 AM UTC+8, c2h2 wrote:
同步可能需要矫正下。。。不清楚,除非有特殊硬件。


none_nobody

unread,
Jul 30, 2014, 10:06:35 PM7/30/14
to sh...@googlegroups.com
好像哪里不对。再想想看。

Chaos Eternal

unread,
Aug 1, 2014, 2:23:47 AM8/1/14
to sh...@googlegroups.com
你得知道这个音源在哪里呀。。。

我以前的想法是弄个信号源,接到每一路mic上,信号源在固定的时间发一个固定频率的声音,比如6000Hz的,然后用这个信号来同步。

现在觉得高大上的办法是用dtmf发两个数字,用数字间那个点来同步。

更高大上一点就是发伪随机序列,还抗干扰,哈哈哈哈。

再高大上一点,系统启动的时候同步一下时间,然后找到环境中的音源,确定位置后用这个音源做校准。

liyaoshi

unread,
Aug 1, 2014, 2:41:26 AM8/1/14
to sh...@googlegroups.com
额,dtmf 就是 16组 双频而已,数字只是对应电话键盘 ,跟6000hz 本质没差别。

我假装听懂了你们说的同步是啥,不过能具体点再说说么?



您收到此邮件是因为您订阅了 Google 网上论坛的“Shanghai Linux User Group”论坛。

none_nobody

unread,
Aug 1, 2014, 6:03:48 AM8/1/14
to sh...@googlegroups.com
设想:有(至少需要)三个被动雷达(音频话筒而已),通过接受信号确定信号源位置。我以为此处的同步是指,首先这几个雷达需要同步一下,确定彼此的相对位置。

如果用主动雷达,可以发射两股不同频率的且有时间差的脉冲信号,古代雷达大概就是这么做的;

现在改用被动雷达,不能主动发出波束(无源),所以需要多个接受器【要是很多很多个接收电子波的,就是无缘相控阵雷达,通过接收电子波的相位来判断接近物体的空间和速度信息】

伟大的SHLUG里高人多,也许有学这个专业的,无线电测量什么的;



===================== 可耻地分割 ,继续晃点线 ============================

还是回到前面,在民用一般场所,会出现无混杂音源的短暂时刻(不过也难说),
或者物理固定接收话筒安装位置;
体育场这种空旷不设限地方,可以预先用激光测距一类先把接收话筒的相对位置测出来。
这都不是事儿;

增大难度,设定在无混杂音源的短暂时刻,且不测量时,是否有办法能确定几个话筒的相对位置;

我认为是可能的,但是话筒就不能少于四个,它们需要布置在一个平面上,且不能在任意直线上多于2个;

渣渣脑汁不够要想想

Chaos Eternal

unread,
Aug 1, 2014, 6:20:18 AM8/1/14
to sh...@googlegroups.com
你我要解决的问题不一样。你只是要解决话筒位置的问题。如果是专业的比如8声道录音卡,各个声道之间的同步是没有问题的,只要知道话筒的位置,接下来随便怎么完。

但是这种声卡很贵的啊。。。


穷人只能用usb hub接上一堆usb声卡来玩阵列,这些声卡之间的信号同步本身就是有很大问题的。每个卡的晶振都不一样,误差妥妥的,然后进usb
hub再到pci, 延迟也不一样,误差又是妥妥的,有个20ms的误差,换成定位,就是好米的误差啊。所以才考虑在时间轴上用频率差分来做同步。

Yu Changyuan

unread,
Aug 1, 2014, 9:15:46 AM8/1/14
to shlug
2014-08-01 18:20 GMT+08:00 Chaos Eternal <chaose...@shlug.org>:
你我要解决的问题不一样。你只是要解决话筒位置的问题。如果是专业的比如8声道录音卡,各个声道之间的同步是没有问题的,只要知道话筒的位置,接下来随便怎么完。

但是这种声卡很贵的啊。。。


穷人只能用usb hub接上一堆usb声卡来玩阵列,这些声卡之间的信号同步本身就是有很大问题的。每个卡的晶振都不一样,误差妥妥的,然后进usb
hub再到pci, 延迟也不一样,误差又是妥妥的,有个20ms的误差,换成定位,就是好米的误差啊。所以才考虑在时间轴上用频率差分来做同步。

 
我觉得可以用四个已知位置的音源,算出话筒的位置,然后根据各话筒的位置,以及接收到的信号,算出各话筒的相对延迟。
 
您收到此邮件是因为您订阅了 Google 网上论坛的“Shanghai Linux User Group”论坛。

要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到shlug+un...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/d/optout



--
Best regards,
Changyuan

none_nobody

unread,
Aug 2, 2014, 3:42:12 AM8/2/14
to sh...@googlegroups.com
我读书少,你别骗我; 20ms 的误差还是吓到我了,还有hub 里面晶振不是几十k频率么? 这也能累积出误差来?

kernel 1000hz tick ,我总觉得有个1-2ms的误差存在是可能的。

或者换几块pci 的声卡,声卡我有,就是缺块多PCI槽的主板,i7 CPU,CUDA显卡,内存,机箱电源了。


Chaos Eternal

unread,
Aug 3, 2014, 7:43:17 AM8/3/14
to sh...@googlegroups.com
要不你试试看
用usb 网卡ping 一下来回?

liyaoshi

unread,
Aug 3, 2014, 8:52:51 PM8/3/14
to sh...@googlegroups.com
这个跟ping 又不一样,ip栈的缓存大小多会有影响吧,我估计你这个ping的话,每次多是小于1ms的

usb 2.0 high speed 125us一个 中断

hub 里面的 晶振不可能是khz 一般 4M/6M/12M/24M 就是为了凑480M 整数倍频

毫秒级别的 误差,我理解当中肯定有的。

我也想知道高级货怎么玩?


您收到此邮件是因为您订阅了 Google 网上论坛的“Shanghai Linux User Group”论坛。

Marco

unread,
Aug 4, 2014, 11:54:47 PM8/4/14
to shlug
你们想多了。。。我就是想确定一下声卡顺序。。。。

音场定位什么的, 必须是DSP/FPGA/MCU自己去采啊。。。。。。。。。。我也说多了。。。。
LinuX
Violin
Canon EOS
Reply all
Reply to author
Forward
0 new messages