play stat -freq输出是什么意思?

时间:2017-11-23 10:12:54

标签: bash audio terminal fft sox

play $file stat -freq的输出是什么意思?

我最近运行了命令,这是输出的示例:

$ play 44100Hz/3660/6517/3660-6517-0024.flac stat -freq

44100Hz/3660/6517/3660-6517-0024.flac:

 File Size: 214k      Bit Rate: 325k
  Encoding: FLAC          Info: Processed by SoX
  Channels: 1 @ 16-bit
Samplerate: 44100Hz
Replaygain: off
  Duration: 00:00:05.28

In:0.00% 00:00:00.00 [00:00:05.28] Out:0     [      |      ]        Clip:0    0.000000  0.412632
10.766602  0.430416
21.533203  0.750785
32.299805  0.839694
43.066406  0.989763
53.833008  0.435572
64.599609  0.404773
75.366211  0.048392
86.132812  0.025195
96.899414  0.011314
...
In:3.52% 00:00:00.19 [00:00:05.09] Out:4.10k [      |      ]        Clip:0    0.000000  0.889006
10.766602  0.092675
21.533203  0.785106
32.299805  1.693663
43.066406  0.990839
53.833008  0.044969
64.599609  0.096066
75.366211  0.121797
86.132812  0.256809
96.899414  0.122486
107.666016  0.019195
...

我是怎么理解这个的?

我希望这是一些傅立叶变换,上面的输出表示像

这样的表
Frequency | Level

但是我不知道这是不是真的如此,或者说案件的水平是多少。

In:%开头的行是什么意思?以Clip:0 ...结尾。

请有人向我解释这个命令的输出。

2 个答案:

答案 0 :(得分:1)

来自手册页here

  

-freq选项计算输入的功率谱(4096点DFT),而不是上面列出的统计数据。这应该只用于   使用单通道音频文件。

正如你所说,它是一个频率/等级表。 因此,最后一个频率或多或少是采样率的一半。 我用纯音(用大胆度生成)尝试了它并且效果很好。

注意,如果文件长度超过每个通道4096个字节,那么你会看到几组DFT,因为每个DFT窗口的长度是4096.如果是这样,那么你会看到几个表连接在一起。

我没有任何'%'。您是否按照文档中的说明转换了音频文件?

答案 1 :(得分:-1)

来自手册页here

  

stat [-s scale] [-rms] [-freq] [-v] [-d]   显示有关音频的时域和频域统计信息。音频通过SoX处理链未经修改地传递。   信息输出到'标准错误'(stderr)流并计算,其中n是样本中音频的持续时间,c是音频通道的数量,r是音频采样率,xk代表PCM值(默认情况下,在-1到+1的范围内)音频中的每个连续样本,如下所示:

     

...

     

-freq选项计算输入的功率谱(4096点DFT),而不是上面列出的统计数据。

     

...