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')
音频消息输出是不必要的,并且需要 TTS 库,因此只需坚持打印即可。您只需大声朗读结果即可。告诉我是否有效。现在我在移动设备上,所以我无法测试它,但它应该可以工作。你也可以省去自己说一些话,然后使用以下命令在 python 中运行它:
import os
os.system('prerecorded message.wav')
确保您的音频是波形文件。
我希望我能有所帮助。在科学博览会上玩得开心!
如果您希望音频文件相似,则必须获取每个帧并设置它们可以分开的频率范围,然后从文件中的所有点开始进行比较。然后,您必须创建一个递归 for 循环,当不在范围内时该循环会中断并从文件中的下一个点开始。这将是一项艰巨的项目,祝你好运!您还可以为背景噪声创建一个降噪算法,这将是一些复杂的数学运算。如果你想看看他们是否
an exact匹配,使用上面的代码。至于流式传输音频,实际上没有办法消除背景噪音,因此您可能需要研究一些模块......此外,保存的音频文件和录制的音频文件的数量少于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.