lua中哪种方法可以最有效地获取.wav文件中某个位置的赫兹频率?

所以我想使用lua将.wav文件转换为一个json表,其中可能包括{time="0:39.34",hz=440}之类的内容。我已经有了所有的json库,但我需要一种方法来将.wav文件转换成我可以用它来转换成json的东西。如果已经有一个可以做到这一点的库,我需要该库的源代码,以便将其实现到我的单文件程序中。

点赞
用户5675002
用户5675002

在WAV文件的每个时间点,您将拥有完整的频谱,而不仅仅是“赫兹频率”。您需要对数据进行傅立叶变换,并从频谱中选择您感兴趣的许多峰值——无论是基频还是主频等。

存在可用于快速傅立叶变换的库,例如LuaFFT,但您最好从WAV中获得更清晰的需求场景。如果您只是尝试读取DTMF信号,则不需要进行全面的频谱分析。

在WAV文件的每个时间点,您将拥有完整的频谱,而不仅仅是“赫兹频率”。您需要对数据进行傅立叶变换,并从频谱中选择您感兴趣的许多峰值——无论是基频还是主频等。

存在可用于快速傅立叶变换的库,例如[LuaFFT](https://luarocks.org/modules/h4rm/luafft),但您最好从WAV中获得更清晰的需求场景。如果您只是尝试读取[DTMF](https://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling)信号,则不需要进行全面的频谱分析。
2019-11-05 08:08:00