Python 如何在scipy中获得音调的长度?

Python 如何在scipy中获得音调的长度?,python,numpy,scipy,signal-processing,audio-processing,Python,Numpy,Scipy,Signal Processing,Audio Processing,我有一个有几个音调的信号,我想知道一个给定的音调从哪里开始,在哪里结束 首先,我应用一个带通滤波器并变换信号(fft),以便知道录音是否有音调 现在,我得到时域中的滤波信号(图)。它被设定为从0毫秒到276毫秒(红线)。请记住,此音调可能会在时间上发生变化(从150到426ms) 如何使用scipy检测音调的开始和结束位置?确定“音调”的形式(运行fft、定义频率响应、执行信号合成)并运行互相关函数。您将能够检测到“音调”的出现,因为在“音调”开始后,互相关函数将有一个更高的值(由于信号是周期

我有一个有几个音调的信号,我想知道一个给定的音调从哪里开始,在哪里结束

首先,我应用一个带通滤波器并变换信号(fft),以便知道录音是否有音调

现在,我得到时域中的滤波信号(图)。它被设定为从0毫秒到276毫秒(红线)。请记住,此音调可能会在时间上发生变化(从150到426ms)


如何使用scipy检测音调的开始和结束位置?

确定“音调”的形式(运行fft、定义频率响应、执行信号合成)并运行互相关函数。您将能够检测到“音调”的出现,因为在“音调”开始后,互相关函数将有一个更高的值(由于信号是周期性的,所以会上下波动)。

我认为这不是编程问题。事实上,我认为这个问题没有客观的答案,因为音调是频率分量的叠加,每个频率分量都会一直延伸。因此,它没有精确的起点或终点。从绘制光谱图开始。(我投票决定结束这个问题,因为提出这个问题时,更多的是关于信号处理而不是编程。)这个问题很可能在dsp上得到更好的答案。stackexchange: