音频识别和比较

Ton*_*ler 5 python audio audio-recording

我正在做一个小组项目。我们正在开发一个程序,可以接收音频并将其与保存的音频文件进行比较,如果输入和保存的文件匹配,则输出音频消息。

我们想用某种 python 方法比较音频文件,但我们找不到任何方法来做到这一点。我们正在寻找某种类型的库,以便能够从每个文件中获取数据并查看它们是否相似。

不知道如何开始。如果有人可以帮助我们开始或为我们指明正确的方向,我认为我们可以从那里开始。

我们已经看了几十个教程,在网上搜索过,但仍然需要一些主要的帮助。有人可以向我们解释如何开始吗?

Cod*_*Boy 4

Python 有很多方法可以做到这一点。我认为您可以在没有广泛的音频库的情况下比较文件。我可能是错的。否则,请查看 struct 模块将波形文件转换为可读整数。试试这个看看是否有效。

import wave
w_one = wave.open('file_one', 'r')
w_two = wave.open('file_two', 'r')

if w_one.readframes() == w_two.readframes():
    print('exactly the same')
else:
    print('not a match')
Run Code Online (Sandbox Code Playgroud)

音频消息输出是不必要的,并且需要 TTS 库,因此只需坚持打印即可。您只需大声朗读结果即可。告诉我是否有效。现在我在移动设备上,所以我无法测试它,但它应该可以工作。你也可以省去自己说一些话,然后使用以下命令在 python 中运行它:

import os
os.system('prerecorded message.wav')
Run Code Online (Sandbox Code Playgroud)

确保您的音频是波形文件。我希望我能有所帮助。在科学博览会上玩得开心!

如果您希望音频文件相似,则必须获取每个帧并设置它们可以分开的频率范围,然后从文件中的所有点开始进行比较。然后,您必须创建一个递归 for 循环,当不在范围内时该循环会中断并从文件中的下一个点开始。这将是一项艰巨的项目,祝你好运!您还可以为背景噪声创建一个降噪算法,这将是一些复杂的数学运算。如果你想看看他们是否

精确匹配,使用上面的代码。至于流式传输音频,实际上没有办法消除背景噪音,因此您可能需要研究一些模块......此外,保存的音频文件和录制的音频文件的数量少于1/44000^s(s 是以秒为单位的音频时间)完全相同的机会。您可能只需要使用 Alexa 服务器

使用 Python 可能很难,但是一旦你突破了理解的障碍,你就可以做一些非常酷的事情。我最近刚刚为 python 的海龟制作了一个图形包装器,我将其编程为以 3D 形式显示飞行的火箭飞船!这对你来说可能听起来像希腊语,或者听起来不太像,但看到你做的东西如此出色,真是太酷了。

import wave
w_one = wave.open('file_one', 'r')
w_two = wave.open('file_two', 'r')

if w_one.readframes() == w_two.readframes():
    print('exactly the same')
else:
    print('not a match')
Run Code Online (Sandbox Code Playgroud)