【发布时间】:2023-03-19 22:22:01
【问题描述】:
我正在创建一个音高检测程序,该程序从帧的 FFT 获得的功率谱中提取基频。这是我目前所拥有的:
- 将输入音频信号分成帧。
- 带有汉明窗的乘法帧
- 计算帧 sqrt(real^2 + img^2) 的 FFT 和幅度
- 通过谐波积谱找到基频(峰值)
- 将峰值频率(bin 频率)转换为音符(例如,~440 Hz 是 A4)
现在程序为每一帧生成一个从 0 到 87 的整数。根据我找到的公式here,每个整数对应一个钢琴音符。我现在正试图通过根据计算出的音符合成声音来模仿输入信号中的旋律。我试图简单地生成一个幅度和频率与基频相对应的正弦波,但结果听起来与原始声音完全不同(几乎听起来像随机哔哔声)。
我不是很懂音乐,所以根据我所拥有的,我能否根据从基频获得的信息生成旋律与输入(乐器、人声、乐器+人声)相似的声音?如果没有,我可以使用我目前拥有的代码尝试其他什么想法。
谢谢!
【问题讨论】:
-
您可能有兴趣知道“找到声音的重要部分并忽略您听不到的部分”的基本过程(您将其建模为 FFT+峰值检测)是基础MP3 编码。显然,它对“重要部分”的想法要花哨得多。
标签: signal-processing fft pitch sound-synthesis audio