我尝试将 Linphone 与麦克风配合使用,但声音非常不连贯。经过一番尝试后arecord
,我发现虽然我的sysdefault
设备上的声音不连贯,但使用 录音front:CARD=Generic
效果更好,噪音更小。
但是,front
显然只能在 2 个通道处于活动状态时进行录制。Linphone 强制输入单声道(理论上可以使用立体声,但似乎没有办法在配置中设置),因此它会给出 alsa 错误,因为它无法正确设置通道。
arecord
如果我强制使用 1 个通道到设备,也会发生同样的事情:
$ arecord -f cd -d front:CARD=Generic,DEV=0 -c 1 -V stereo /tmp/file
Recording WAVE '/tmp/file' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
arecord: set_params:1247: Channels count non available
因此,我试图在 ALSA 中创建一个设备,该设备应该将麦克风的采样率降低到单个通道,但我似乎无法做到这一点(我是 ALSA 新手)。我尝试使用这个答案,但它不起作用:
pcm.front cards.pcm.front
pcm.makemono {
type plug
slave.pcm {
type route
slave.pcm "pcm.front"
slave.channels 2
ttable {
0.0 1
1.0 1
}
}
}
...
$ arecord -f cd -d makemono -c1 -V stereo /tmp/file
Recording WAVE '/tmp/file' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
arecord: set_params:1247: Channels count non available
我怎样才能做到这一点?
答案1
您需要一个软件通道和两个硬件通道,因此您必须按相反方向进行映射:
...
ttable {
0.0 1
0.1 1
}
并且您应该使用正确的选项来指定设备:
$ arecord --help | grep -i -- ^-d -D, --device=NAME 通过名称选择 PCM -d, --duration=# # 秒后中断