我使用 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
无法做到这一点,但可能有其他音频分割程序可以。