【发布时间】:2023-03-09 17:45:02
【问题描述】:
我目前正在使用低音库进行音频分析,它可以计算 FFT 并将其作为数组返回,libmfcc 使用此数据来计算我需要的 MFCC 系数的值。 (信息:MFCC 就像一个音频频谱,但它更适合人类听力和频率缩放的工作方式) Bass 库返回从 0 到 1 的值作为 FFT 值。
现在我遇到了几个问题和疑问:
- 他们的 FFT 示例数据似乎具有不同的格式,值非常高,并且 8192 个 FFT 值的总和为 10739.24,这怎么可能?[/li]
- 在他们的example Application 中,他们像下面这样调用函数。如果他们只加载了 8192 个值,为什么他们使用 128 作为 FFT 数组大小?
- 使用我复制和编辑的他们的 MFCC 类以匹配 C# 语法/函数我得到一些系数的负值,我认为不应该是这种情况。
谁能帮我弄清楚为什么它返回负值或我做错了什么?
我做了一个简单的示例 Ready to Try Program,它完成了上述操作,对调试很有用。
链接:http://www.xup.in/dl,17603935/MFCC_Test.rar/
我的 C# 应用程序的输出(很可能不正确)
系数 16 = 0,017919318626506 系数 17 = -0,155580763009355 系数 18 = -0,76072865841987 系数 19 = 0,108961510335727 系数 20 = 0,819025783804398 系数 21 = -0,660508603974514 系数 22 = -0,951623924906163 系数 23 = 0,424922129906254 系数 24 = 0,0129727009313168 系数 25 = -0,388796833267654 系数 26 = 0,270839393161931 系数 27 = -0,138515788828431 系数 28 = -0,454837674981149 系数 29 = -0,448629344922371 系数 30 = -0,11908663618393 系数 31 = 0,237500036702818 系数 32 = 0,114874386870208 系数 343 = -0,324838 0,144242143551012 系数 35 = 0,209338502838453 系数 36 = 0,247588420953066 系数 37 = -0,451654204112441 系数 38 = 0,0346927542067229 系数 39 = 0,180816031061584
他们的示例 FFT 数据(不同格式?)
14.524506 38.176063 10.673860 3.705076 2.102398 1.461585 1.145616 0.974108 0.878079 0.825304 0.798959 0.789067 0.789914 0.797102 0.808576 0.822048 0.836592 0.851101 0.864869 0.877625 0.888780 0.897852 0.905033 0.910054 0.912214 0.912414 0.909593 0.904497
【问题讨论】:
标签: c# signal-processing fft spectrum mfcc