首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每隔几毫秒获取mp3文件的间距

每隔几毫秒获取mp3文件的间距
EN

Stack Overflow用户
提问于 2021-06-01 12:01:39
回答 1查看 249关注 0票数 0

因此,我尝试使用javascript或python (或任何其他可以做到的东西)来每隔几毫秒获取mp3文件的内容和音量。任何帮助都将不胜感激,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-01 12:53:04

音高与信号变化的速度有关,因此需要在一段时间内计算,而不是在瞬间计算。

我建议将您的mp3解码为一个波形(有一些Python库会将其放入一个numpy数组中),然后一次取一个部分并执行以下操作:

  1. 在块上运行FFT (搜索numpy FFT)以查找频率内容。通常,特定音高的声音将有基频,也会有谐波含量,即基频整数倍的频率。此外,你可能有一个以上的贡献声音,因此将有多个基频,每个都有自己的谐波。FFT将计算出那里的频率,假设他阻止,然后永远重复。不幸的是,信号的起始和结束幅度在块的开始和结束时都不匹配,所以这个假设就像是一个突然的幅度跃升。这将导致FFT结果中的工件,因此如果这是应用程序中的一个问题,您需要在运行FFT之前查看窗口。这削弱了你的块在开始和结束,所以他们排在零。
  2. 识别哪个FFT峰值与你想要记录的音高有关。例如,这可能是最高的峰值。这个峰值的频率是这个块的基音。
  3. 取该块的根均方(RMS) (来自原始阵列,而不是FFT),并将其用作体积的度量。

然后,您可以移动到下一个块并重复,因此,如果您的块大小为440个样本(以44 the采样率为10 is ),则将第一个块从0到439,然后从440到879等。

如果你想要的话,你也可以做滑动块,例如,每次提前44个样本块,这样第一个块是0到439,下一个是44到483。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67788534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档