我正在开展一个小组项目。我们正在寻找一个可以接收音频的程序,并将其与保存的音频文件进行比较,并在输入和保存的文件匹配时输出音频消息。
我们想用某种python方法比较音频文件,但我们无法找到任何方法来做到这一点。我们正在寻找某种类型的库,以便能够从每个文件中获取数据并查看它们是否相似。
无法弄清楚如何开始。如果有人可以帮助我们开始或指出我们正确的方向,我想我们可以从那里开始。
我们已经观看了几十个教程,在网上搜索并仍然需要一些重要的帮助。 有人可以向我们解释如何开始使用吗?
答案 0 :(得分:1)
Python有很多方法可以做到这一点。我想你可以比较没有广泛音频库的文件。我错了。否则,请查看struct模块以将wave文件转换为可读的整数。试试看它是否有效。
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')
音频信息输出是不必要的,将采用TTS库,所以只需坚持打印。你可以大声朗读结果。告诉我它是否有效。现在我正在移动,所以我无法测试它,但它应该工作。您也可以保存自己说些什么,然后使用以下命令在python中运行:
import os
os.system('prerecorded message.wav')
确保您的音频是wave文件。 我希望我有所帮助。在科学博览会上玩得开心!
如果你想要它是相似的音频文件,你必须采取每一帧并设置一个它们可以分开的频率范围,然后从文件中的所有点开始比较。然后你将不得不做一个递归for循环,当它不在范围内并从文件中的下一个点开始时会中断。那将是一个项目,祝你好运!您还可以为背景噪声创建降噪算法,这将是一些复杂的数学运算。如果你想看看他们是否
完全匹配,使用上面的代码。至于流式传输音频,实际上并没有办法摆脱背景噪音,所以你可能想要查看一些模块......还有一个保存的音频文件和录制的音频文件少于一个1/44000 ^ s(s是音频的秒数)几率完全相同。您可能只需使用Alexa服务器
使用python可能很难实现,但是一旦你超越理解的障碍,你就可以做一些非常酷的事情。我刚刚为python的乌龟制作了一个图形包装器,我编程用3D显示飞行火箭飞船!这可能听起来像希腊语,或听起来不是很多,但看到你做得很好的东西真的很酷。
#Comparing them may be easier than I thought
from scipy.io.wavfile import read as wavread
[samplerate, y] = wavread('Comparison.wav')
[samplerate, z] = wavread('Recording.wav')
for x in range(0,samplerate,4): #Slight compression for the program to run faster.
y1,y2 = [y[x][0], y[x][1]] #y1,y2 are numbers for your in Comparison.wav. Use these to compare to file 2.
z1,z2 = [z[x][0], z[x][1]] #z1,z2 are numbers for you to compare.
#Install scipy by holding down the window's Button & R. Then type in
#pip install scipy
#You may have to press enter a few times to get it to work, but overall, be patient. You should be able to figure out how to compare the files from here.