Создать устройство ALSA с 1 каналом из 2
Я пытаюсь использовать 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=# прерывание через # секунд