使用带有选项的 SoX 录制声音时出现问题 - 无法编码 0 位未知或不适用

使用带有选项的 SoX 录制声音时出现问题 - 无法编码 0 位未知或不适用

我最近尝试使用运行在 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

虽然测试.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/) 和维基百科有关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

关于如何解决这个问题有什么建议吗?

答案1

经过进一步调查后,以下方法解决了我的问题:

  1. 安装 libsox-fmt-all:$ sudo apt-get install libsox-fmt-all
  2. 重新排序 sox 命令调用中的选项:$ sox -c 2 -r 192k -b 32 -e signed-integer -L -d -t wav test.wav trim 0 2

现在我不再有错误

sox 警告 alsa: 无法编码 0 位未知或不适用

并且这些选项都按照我的意愿被考虑进去了。

/etc/asound.conf我相信按照我的问题所述创建配置文件对于设置选项 -d 所需的默认录音设备也是必要的。

相关内容