我使用 arecord 录制一个 wav 文件,然后使用 将其重定向到 fifo
arecord -d 1 -c 2 -r 48000 -f S32_LE > myfifo
但是我怎样才能使用 sox 获取它的统计信息呢?
sox myfifo -n stat
给予
sox FAIL 格式:无法打开输入文件 myfifo:WAVE:未找到 RIFF header
参见 this Question关于我是怎么做到的。
我需要给 sox 什么选项来忽略标题。 如果可能的话,我想提供标题详细信息作为命令行。
最佳答案
sox 应该被告知该文件是原始类型。
使用 sox -t raw
现在让我们来解决这个问题。
使用 mkfifo 创建一个 fifo,然后向其中记录一些内容
mkfifo temp.wav
arecord -c 2 -r 48000 -b 32 > temp.wav
现在在上面涂上 socks 。
sox -t raw -r 48000 -b 32 -c 2 -e signed-integer temp.wav -n stat trim 0 1
因为它是原始的,您需要指定速率、位深度、 channel 和编码格式。
现在它可以正常工作而不会出现任何错误。
干杯。
关于python - 如何使用 sox 验证 fifo 的统计信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45030418/