Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用sox验证fifo的统计数据?_Python_Linux_Python Multithreading_Sox - Fatal编程技术网

Python 如何使用sox验证fifo的统计数据?

Python 如何使用sox验证fifo的统计数据?,python,linux,python-multithreading,sox,Python,Linux,Python Multithreading,Sox,我使用arecord记录wav文件,我将使用arecord将其重定向到fifo arecord-d1-c2-r48000-fs32\u LE>myfifo 但是我怎样才能使用sox获得这些数据呢 sox myfifo-n stat 给予 sox失败格式:无法打开输入文件myfifo:WAVE:RIFF头未找到 看看我是怎么做的 我需要给sox哪些选项来忽略标题。 如果可能的话,我想以命令行的形式提供标题详细信息。应该通知sox该文件是原始类型。 使用sox-t原始数据 现在让我们来解决这个问题

我使用arecord记录wav文件,我将使用arecord将其重定向到fifo

arecord-d1-c2-r48000-fs32\u LE>myfifo

但是我怎样才能使用sox获得这些数据呢

sox myfifo-n stat

给予

sox失败格式:无法打开输入文件myfifo:WAVE:RIFF头未找到

看看我是怎么做的

我需要给sox哪些选项来忽略标题。
如果可能的话,我想以命令行的形式提供标题详细信息。

应该通知sox该文件是原始类型。 使用sox-t原始数据

现在让我们来解决这个问题

使用mkfifo创建一个fifo,然后在其中记录一些内容

mkfifo temp.wav
arecord -c 2 -r 48000 -b 32 > temp.wav
现在在它上面应用sox

sox -t raw -r 48000 -b 32 -c 2 -e signed-integer temp.wav -n stat trim 0 1
由于它是原始的,您需要指定速率、位深度、通道和编码格式

现在它将在不给出任何错误的情况下工作


干杯。

我复制并粘贴了您的命令,它们对我有效。样本读取:96000长度(秒):1.000000按:2147483647.0最大振幅:0.179199最小振幅:-0.157074中线振幅:0.011063平均范数:0.011798平均振幅:-0.000868 RMS振幅:0.016321最大增量:0.155426最小增量:0.000000平均增量:0.010183 RMS增量:0.015230粗略频率:7128音量调整:5.580Hmm。我想你缺少的是一个先进先出的文件,我重定向到先进先出的输出我知道如果有什么我可以做的。目前我无法重现您的问题。嗯,打开两个端子,在一个端子中
mkfifo temp.wav;A记录-c 2-r 48000-f S32_LE>temp.wav
和另一个终端
sox temp.wav-n stat
将产生该问题。