当前位置: 首页 > 面试题库 >

识别音频的音调

巫马修然
2023-03-14
问题内容

我有一把吉他,我需要我的电脑能够分辨出正在演奏的音符,并识别出音调。可以在python中做到吗,也可以在pygame中做到吗?能够在pygame中做到这一点将非常有帮助。


问题答案:

要识别音频信号的频率,可以使用FFT(快速傅立叶变换)算法。据我所知,PyGame无法记录音频,也不支持FFT转换。

首先,您需要从声卡捕获原始采样数据。这种数据称为PCM(脉冲编码调制)。在Python中捕获音频的最简单方法是使用PyAudio库(Python与PortAudio的绑定)。GStreamer也可以做到这一点,对您而言,这可能是一个过大的杀伤力。以48000
Hz的频率捕获16位样本是非常典型的,并且可能是普通声卡所能提供的最佳选择。

获得原始PCM音频数据后,就可以使用html" target="_blank">scipy库中的fftpack模块通过FFT转换运行样本。这将为您提供所分析音频信号的
频率分布 ,即信号在某些频带中的强度。然后,要找到具有最强信号的频率。 __

可能 需要一些其他滤波来避免不确定的谐波频率。



 类似资料:
  • 我想开发一个模块,它将使用Android中的语音到文本支持。我发现了许多与RecogenerIntent等相关的文档和演示。但我发现所有这些演示都只是在10秒左右的时间里播放声音。但我想让我的演示运行5-10分钟以上。如果不是离线运行,我不会有任何问题,因为我的应用程序总是在线运行。 我也看过Android上的Pocketsphinx,但效果不太好。此外,它只支持Android Studio,而不

  • 我已经搜索了Google的所有可用文档,但我找不到Python音频流上的流式语音识别示例。 目前,我正在Django中使用Python语音识别从用户那里获取音频,然后收听音频。然后,我可以保存文件并运行google语音识别,或者直接从创建的音频实例中运行。 有人能指导我如何对音频流执行流式语音识别吗?

  • 我正在开发一个语音识别应用程序,用户会在其中说一句话或任何东西,然后将其转换为文本......(语音到文本的转换通过谷歌进行) 我的问题是,,,当这个人说话时,保存或记录他的声音(语音)的文件/缓冲区在哪里?(在谷歌收购并转换之前) 并且是否可以持有此文件或缓冲区?

  • 我想保存/录制Google识别服务用于语音转文本操作的音频(使用识别意图或语音识别器)。 我经历了很多想法: > 使用了媒体录制器:不工作。这破坏了语音识别。mic只允许一次操作 在执行语音到文本API复制临时音频文件之前,尝试查找识别服务在何处保存该文件,但未成功 我几乎绝望了,但我只是注意到Google Keep应用程序正在做我需要做的事情!我使用logcat调试了一点keep应用程序,该应用

  • 我在设计一个可以同时录制语音和将语音转换为文本的应用程序时遇到了这个bug。我使用Google API进行语音识别部分,并使用audioRecorder对象进行录音。它没有成功,因此我转而使用onBufferReceived()来检索过程中的字节(当用户说话时)。Google API代码现在是我代码的onResults()部分,它可以在没有UI的情况下进行语音识别。 这是代码

  • 由于连接到不同的API,我目前正在开发一个工具,允许我阅读所有的通知。 它工作得很好,但现在我想用一些声音命令来做一些动作。 就像当软件说“一封来自Bob的邮件”时,我想说“阅读”或“存档”。 我的软件是通过一个节点服务器运行的,目前我没有任何浏览器实现,但它可以是一个计划。 在NodeJS中,启用语音到文本的最佳方式是什么? 我在它上面看到了很多线程,但主要是使用浏览器,如果可能的话,我希望在一