Python 识别音频的音调
我有一把吉他,我需要我的电脑能够分辨出演奏的音符,识别音调。是否可以用python实现,也可以用pygame实现?能够在pygame中实现这一功能将非常有帮助。您需要使用内置的音频库 分析正在播放的特定音符并不简单,但可以使用这些API来完成Python 识别音频的音调,python,audio,Python,Audio,我有一把吉他,我需要我的电脑能够分辨出演奏的音符,识别音调。是否可以用python实现,也可以用pygame实现?能够在pygame中实现这一功能将非常有帮助。您需要使用内置的音频库 分析正在播放的特定音符并不简单,但可以使用这些API来完成 也可能有用:要识别音频信号的频率,可以使用FFT()算法。据我所知,PyGame没有办法录制音频,也不支持FFT变换 首先,您需要从声卡捕获原始采样数据;这种数据称为PCM(脉冲编码调制)。在Python中捕获音频的最简单方法是使用(Python到Port
也可能有用:要识别音频信号的频率,可以使用FFT()算法。据我所知,PyGame没有办法录制音频,也不支持FFT变换 首先,您需要从声卡捕获原始采样数据;这种数据称为PCM(脉冲编码调制)。在Python中捕获音频的最简单方法是使用(Python到PortAudio的绑定)。如果你也能做到这一点,那对你的目的来说可能是一种过度的杀伤力。以48000 Hz的频率捕获16位样本是非常典型的,可能是普通声卡所能提供的最好的 获得原始PCM音频数据后,可以使用来自的
fftpack
模块通过FFT变换运行采样。这将为您提供分析音频信号的频率分布,即信号在特定频带中的强度。然后,问题是找到信号最强的频率
你可能需要一些额外的过滤来避免我不确定。这显示了有人在VB.NET中进行过滤,但下面的链接中包含了实现目标所需的基本操作
非常相似的问题:
我有一些,但这只是从吉他录音中获取音符所需解决的问题的一部分。您是将计算机直接插入计算机还是依靠计算机麦克风?
audioop
模块只能执行相当原始的分析和压缩技术。这根本不足以满足询问者的目的。wiki链接是一个很长的链接列表,可能会造成比避免的更大的混乱。有没有处理一系列注释的标准方法?我不知道你在问什么,你能详细说明一下吗?如果你对一系列注释进行FFT,你会获得关于主频的信息,但会丢失关于注释时间位置的信息。(或者我错了吗?)我想你可以尝试切碎原始音频,以便将FFT应用于单个音符,但要想知道切碎的位置似乎很难。没错,通常的方法是将输入分解成足够小的块,这样就不会丢失计时上下文。当然,这是定时精度和频率精度之间的折衷。如果你想了解更多关于基音检测的信息,可以使用yin算法。你会再次上传源吗?看起来他们把它取下来了