我最近尝试使用在 Ubuntu 22.04 上运行的 Dell Precision 3571 的板载麦克风,使用 sox 命令和一组精确的选项(默认声卡、2 通道、192 kHz 帧速率、32 位有符号整数小端)来录制声音,wav 文件,持续 2 秒)
$ sox -d -c 2 -r 192k -b 32 -e signed-integer -L -t wav test.wav trim 0 2
虽然创建了test.wav,但我收到以下错误,并且未使用我正在寻找的选项:
sox WARN alsa: can't encode 0-bit Unknown or not applicable
Input File : 'default' (alsa)
Channels : 2
Sample Rate : 48000
Precision : 16-bit
Sample Encoding: 16-bit Signed Integer PCM
In:0.00% 00:00:02.05 [00:00:00.00] Out:384k [ | ] Clip:0
Done.
然后我在各个论坛(例如https://support.system76.com/articles/audio/)和wiki上检查了该sox WARN alsa...
错误,这导致我重新安装 ALSA,检查命令的输出$ sudo alsa-info
,并确保ALSA 的默认声卡配置/etc/asound.conf
如下:
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
鉴于$ arecord -l
给出:
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC3204 Analog [ALC3204 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
尽管如此,我的问题仍然是一样的,我无法按预期录制声音。郑重声明,即使在编写配置文件后,仍然$ sudo rec test.wav
会出现简单的情况,尽管我可以在视频会议应用程序中完美地使用我的板载麦克风。rec FAIL sox: Sorry, there is no default audio device configured
关于如何解决这个问题有什么建议吗?
经过更多调查后,以下解决了我的问题:
$ sudo apt-get install libsox-fmt-all
$ sox -c 2 -r 192k -b 32 -e signed-integer -L -d -t wav test.wav trim 0 2
现在我不再有错误了
并按照我的意愿考虑了这些选项。
我相信,按照我的问题中的解释创建配置文件
/etc/asound.conf
对于设置选项 -d 所需的默认记录设备也是必要的。