默认系统将声音输出到HDMI,需要修改 /etc/asound.conf 文件,改成这样
1 2 3 4 5 6 7 8 9 10 | pcm.!default { type hw card 1 device 0 } ctl.!default { type hw card 1 } |
或者
1 2 3 4 5 6 7 8 9 10 | pcm.!default { type hw card 0 device 0 } ctl.!default { type hw card 0 } |
这样,才能在 Head Phone & Speaker (正面的音频插口) 输出声音,可以用 speaker-test -twav -c2 命令测试是否有输出。
然后是另一个音源输入的配置,这里有原理图 http://dl.cubieboard.org/hardware/cubieboard_schematic_2012-08-08.pdf 。可以看到音源输入使用了左声道、右声道和地线3根线,在实际电路上可以看到插头一边有三个焊点,一边有两个焊点。在三个焊点旁边有两个贴片电容,那两个电容连接到插头三个焊点靠里面的那两个焊点,这两个焊点就是左声道和右声道输入,剩下的那一个就是地线。需要注意一件事,这个插头是音源输入,而不是麦克风输入,不能直接接麦克风,只能接机顶盒、vcd等设备的音源输出。我这里是直接接到监控用的拾音器上面的。
然后下一步是开启音源输入的静音,输入 $ alsamixer 命令,选到 LineL 和 LineR 分别按一下 M 键,使得上面的 Off 消失。实际测试发现 Mic Inpu 、 MicL 、 MicR 、Master 或者 ADC Inpu 的音量也会影响音源输入,需要用方向键加到最大。下次测试一下到底是哪个对音源输入有影响。实测发现和这些都没有关系,只要确保主声道和输入正常就行,出现几次没有声音的情况是 cubieboard 板子音频插头的问题。。。
然后就可以用
1 | $ arecord -f CD --device=plug:hw:0 -d 10 test.wav |
来录一下音,看看是不是正常了。录下来就可以用
1 | aplay -f CD --device=plug:hw:0 test.wav |
或
1 | aplay -f CD --device=plug:hw:1 test.wav |
命令来播放一下,看看录音是不是正常,不过由于 cubieboard 的设计问题,弄的音源输入和输出挨得太紧了,很难同时插上,所以我是直接在 windows 下播放 的test.wav 文件的。
目前碰到了一个烦人的问题,gst-alsasrc 录音是独占模式,有些坑人了。测试过 ssh ubuntu i386 ,没有发现这个问题,同时开两个语音识别没有问题(必须登登陆图形界面,不然录不到音,可以先启动后登陆)。
现在看看是在gst里面分成两路还是解决这个独占的问题。
附板子的记录:
1 2 3 4 5 | linaro@cubieboard:~$ lsof | grep pcmC0D0c python 1115 linaro 8u CHR 116,24 0t0 34076 /dev/snd/pcmC0D0c task0 1115 1124 linaro 8u CHR 116,24 0t0 34076 /dev/snd/pcmC0D0c audiosrc- 1115 1125 linaro 8u CHR 116,24 0t0 34076 /dev/snd/pcmC0D0c alsasrc0: 1115 1126 linaro 8u CHR 116,24 0t0 34076 /dev/snd/pcmC0D0c |
i386的记录
1 2 3 4 5 6 7 8 9 10 11 12 | 未登录 gamexg@ubuntu:~/yysb$ lsof | grep pcmC0D0c lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/111/gvfs Output information may be incomplete. 已登录 gamexg@ubuntu:~/yysb$ lsof | grep pcmC0D0c pulseaudi 2293 gamexg mem CHR 116,5 9312 /dev/snd/pcmC0D0c pulseaudi 2293 gamexg 37u CHR 116,5 0t0 9312 /dev/snd/pcmC0D0c alsa-sink 2293 2351 gamexg mem CHR 116,5 9312 /dev/snd/pcmC0D0c alsa-sink 2293 2351 gamexg 37u CHR 116,5 0t0 9312 /dev/snd/pcmC0D0c alsa-sour 2293 2353 gamexg mem CHR 116,5 9312 /dev/snd/pcmC0D0c alsa-sour 2293 2353 gamexg 37u CHR 116,5 0t0 9312 /dev/snd/pcmC0D0c |