如何检测录制的声音样本的音高

Posted

技术标签:

【中文标题】如何检测录制的声音样本的音高【英文标题】:how to detect the pitch of recorded sound sample 【发布时间】:2014-12-25 16:02:51 【问题描述】:

我想分析一段录制的声音样本并找出它的属性,如音高等。 我试图分析缓冲区的记录字节但没有成功。 怎么做?

【问题讨论】:

参见 Richard G. Lyons 的了解数字信号处理 【参考方案1】:

您必须查看FFM。

然后做一些类似这个伪代码指示的事情:

Complex in[1024];
Complex out[1024];
Copy your signal into in
FFT(in, out)
for every member of out compute sqrt(a^2+b^2)
To find frequency with highest power scan for the maximum value in the first 512 points in out

还请查看好友here 的原始帖子,因为它可能是重复的。

【讨论】:

【参考方案2】:

使用快速傅立叶变换。大多数语言都有可用的库。字节不好,可以mp3编码或者wav/pcm..你需要决定然后分析。

危险

【讨论】:

以上是关于如何检测录制的声音样本的音高的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C 中进行声音合成?

iPhone AVAudioRecorder,AudioQueueServices,检测到声音时如何自动录制音频

在 Java 中使用声音计将声音从麦克风录制到文件

如何在Java声音中连续改变音高?

如何在 Android 中以更好的质量录制声音并降低噪音

生成具有音高和持续时间的声音