使用 sox 分割音频流并使用脚本处理块

使用 sox 分割音频流并使用脚本处理块

我使用 sox 来分割音频流,如下所示

stream | sox -t raw -r 16k -e signed -b 16 -c 1 - ./chunks/output.wav  silence 1 0.3 0.1% 1 0.3 0.1% trim 0 55 : newfile : restart

现在 sox 将块写入 chunks 文件夹。我可以将它们通过管道传输到脚本进行处理而不写入磁盘吗?

像这样的东西

stream | sox | node script.js

答案1

Unix 管道总是传递字节流。然而,拆分的重点是您获得多个字节流,并且不可能通过单个管道传递多个字节流(除非您将它们再次连接成单个字节流,这违背了拆分它们的目的)。

bash您可以使用通常的for 循环、 或parallel或任何您喜欢的方式在块文件夹中的每个块文件上调用脚本。

您还可以使用允许您在每个分割块上调用外部程序的程序。 AFAIKsox无法做到这一点,但可能有其他音频分割程序可以。

相关内容