【问题标题】:Recording from multiple channels through sox通过 sox 从多个频道录制
【发布时间】:2018-01-11 16:38:43
【问题描述】:

我正在尝试通过 Sox 为我的一个应用程序录制 2 个不同的麦克风。我目前只是在 Mac 终端上测试录音。但是,我只能通过一个麦克风获取音频。

我使用的 sox 命令是:

sox -b 32 -e unsigned-integer -r 96k -c 2 -d --clobber --buffer $((96000*2*10)) /tmp/soxrecording.wav trim 0 10

这给了我一个很好的 .wav 文件。

我有两个不同的 USB 麦克风,它们在声音/系统偏好设置中显示为 2 通道 I/p。我尝试使用 sox 命令从两个麦克风录制 -c 4

sox -b 32 -e unsigned-integer -r 96k -c 4 -d --clobber --buffer $((96000*2*10)) /tmp/soxrecording.wav trim 0 10

但是,我收到警告说; sox WARN formats: can't set 4 channels; using 2

我只能从一个 USB 麦克风获取音频。我一直在尝试弄清问题所在,但任何提示都会非常有帮助。

【问题讨论】:

  • 我认为仅仅因为你有两个设备并不意味着你有双倍的频道。您需要使用hw:1,0,0 格式指定两个输入文件。所以基本上你有两个输入文件。有关更多详细信息,请参阅此线程sox.10957.n7.nabble.com/Multiple-inputs-with-SOX-td5061.html。 AUDIODEV 是控制设备的环境变量。但我不确定您是否可以在其中指定两个设备。但是在输入中将它们指定为多个文件应该可以。命令格式为sox <fileoptions> file <fileoptions> file <outputoptions> outputfile
  • @TarunLalwani 我不确定这意味着什么。我没有输入文件。我有输入设备。所以运行AUDIODEV=hw:1,0,0 sox -b 32 -e unsigned-integer -r 44100 -c 2 ~/Desktop/tempRecord1.wav ~/Desktop/tempRecording2.wav给我sox FAIL formats: can't open input file /Users/blah/Desktop/tempRecord1.wav': No such file or directory`
  • @TarunLalwani 另外,不确定如何在 Mac 上获取那些 hw 设备编号。我无法运行aplay -laplay -L
  • @TarunLalwani : 另外,在 Mac 上使用sox -r 44100 hw:1,0 -t .ogg ch1_.ogg silence 1 0.1 5% 1 1.0 5% : newfile : restart 作为默认麦克风会给我sox FAIL formats: can't open input file hw:1,0': 没有这样的文件或目录`

标签: node.js macos wav microphone sox


【解决方案1】:

您需要指定您使用的是ALSA,然后运行两个不同的 SOX 命令,并且必须为每个命令指定您使用的硬件。

请参考soc, play, rec man page,基本上你可以在启动命令时使用-d, --default-device参数来指定你要使用的设备。

类似(简化):

sox -r 44100 -c 2 -e s -t alsa hw:4,0 -d 
sox -r 44100 -c 2 -e s -t alsa hw:3,0 -d 

pagepage 也可能对您有所帮助。

【讨论】:

  • 我在 Mac OS 上运行你的命令给了我sox FAIL formats: no handler for given file type alsa`
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-08
  • 2014-12-26
  • 2022-01-22
  • 2011-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多