音调检测结果错误
Pitch detection results wrong
我正在使用 here (I haven't changed the code). My input is an audio file 的 freq_from_crossings
和原声吉他 E2 音符,没有别的(因为我的麦克风很糟糕,声音不是很清晰)。
这是波形:
这是我得到的频谱图:
从频谱图中可以很清楚地看出,最响亮的泛音对应于 E2 音符。但是,freq_from_crossings
returns 415.461966359 根本就没有上场。哪些组件可能出了问题?
谢谢
不是单个纯正弦波的波形在每个音调周期中的零交叉可能多于一次。在一个周期内,它可以包含许多过零的 "wiggles"。吉他音符频谱图的谐波含量表明总波形远非单一的纯正弦波。它也在随着时间而改变。
因此,从零交叉点估计音高频率不适用于这些类型的吉他声音。
根据我的经验,过零和自相关是尝试音高检测的糟糕方法——即使是在单声道信号上也是如此。考虑使用采用 FFT 或 DFT 变换的方法来获取初始频率 activity。
https://en.wikipedia.org/wiki/Transcription_(music)#Pitch_detection
我正在使用 here (I haven't changed the code). My input is an audio file 的 freq_from_crossings
和原声吉他 E2 音符,没有别的(因为我的麦克风很糟糕,声音不是很清晰)。
这是波形:
从频谱图中可以很清楚地看出,最响亮的泛音对应于 E2 音符。但是,freq_from_crossings
returns 415.461966359 根本就没有上场。哪些组件可能出了问题?
谢谢
不是单个纯正弦波的波形在每个音调周期中的零交叉可能多于一次。在一个周期内,它可以包含许多过零的 "wiggles"。吉他音符频谱图的谐波含量表明总波形远非单一的纯正弦波。它也在随着时间而改变。
因此,从零交叉点估计音高频率不适用于这些类型的吉他声音。
根据我的经验,过零和自相关是尝试音高检测的糟糕方法——即使是在单声道信号上也是如此。考虑使用采用 FFT 或 DFT 变换的方法来获取初始频率 activity。
https://en.wikipedia.org/wiki/Transcription_(music)#Pitch_detection