音频识别和比较[关闭]

2023-11-30

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

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

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

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


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.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

音频识别和比较[关闭] 的相关文章

  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • Flask 和 uWSGI - 无法加载应用程序 0 (mountpoint='')(找不到可调用或导入错误)

    当我尝试使用 uWSGI 启动 Flask 时 出现以下错误 我是这样开始的 gt cd gt root localhost uwsgi socket 127 0 0 1 6000 file path to folder run py ca
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • 在循环中每次迭代开始时将变量重新分配给原始值(在循环之前定义)

    在Python中 你使用 在每次迭代开始时将变量重新分配给原始值 在循环之前定义 时 也就是说 original 1D o o o for i in range 0 3 new original 1D revert back to orig
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • 如何使用 Apple Symbols 字体中的字形?

    我想在我的应用程序中使用 Apple Symbols 字体中的一种字形 我在CharactersPallete 来自Snow Leopard 中打开这个字体 这个字形的 锁符号 id GID 是5003 它不是字形的unicode编号 如何
  • ShellExecuteEx 在 Excel VBA 中崩溃

    由于 Windows 更新发生 API 调用ShellExecuteEx sExecuteInfo 崩溃 说 0x75F7A529 处未处理的异常 shell32 dll 访问冲突 读取位置0x68686903 我不知道这里出了什么问题 你
  • 与 Tkinter 跟踪相关的回调函数有哪些限制?

    我试图弄清楚如何实现一个回调函数 它可以做一些比打印输出更有意义的事情 我相当缺乏经验 所以我不确定回调函数应该或可以如何在Python 或任何其他语言 中实现 考虑以下 Python 代码 from Tkinter import def
  • 前台本地通知

    在警报中 通知在后台工作正常 如下所示 UILocalNotification notification1 UILocalNotification alloc init notification1 fireDate alramtime no
  • Wordpress 管理面板上的 jQuery 错误(tinyMCE 未定义)

    将 Wordpress 从 3 2 升级到 3 5 后 我在管理端收到 jQuery 错误 下面是错误 Error ReferenceError tinyMCE is not defined Source File http domainn
  • WPF 虚拟树视图中的滚动错误

    我在 WPF 中使用虚拟化树视图来显示具有大量子节点 5000 的 3 级深度层次结构
  • R - 使用查找表替换数据框中的值

    最近 我在尝试使用查找表替换数据框或矩阵中的特定值时遇到了一些麻烦 所以这代表要修改的original data V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 1 255 255 255 25
  • 在 Java 中关闭流

    为什么我们需要关闭 FileInputStream 以及一般的流 任何状况之下在我们离开该计划之前 否则会发生什么 如果程序在程序中显式关闭输入流之前停止 那么该流不是也会自动关闭吗 文件句柄是稀缺的 有限的资源 如果不正确清理它们 您可能
  • Azure Function cosmosDB 触发器托管标识不起作用

    我为 cosmosDB 触发器创建了一个独立的 Azure 函数 我正在使用 Microsoft Azure Functions Worker Extensions CosmosDB version 4 0 0 preview2 来使用托管
  • 更改图像大小 - PHP

    我最近创建了一个上传功能 但我不知道如何将宽度和高度更改为 75px 我尝试了通过 Google 找到的一个代码 但我刚刚收到此错误 Fatal error Class Imagick not found in C wamp www Leg
  • Java字段隐藏

    在以下场景中 class Person public int ID class Student extends Person public int ID 学生 隐藏人的ID字段 如果我们想在内存中表示以下内容 Student john ne
  • 使用 Jquery AJAX 提交 HTML 表单

    我正在尝试使用 AJAX 提交 HTML 表单这个例子 我的 HTML 代码
  • 在 Informix 中将 DATETIME 转换为 Unix 纪元

    我有一个日期时间列 SELECT mytime FROM mytable mytime 1 6 2013 10 41 41 PM 我想编写一条 SQL 语句 以 Unix 时间格式返回时间 自 Unix 纪元 01 01 1970 00 0
  • Masm汇编8086在数据字相加之间携带标志

    所以我有这个问题 我应该解决 我花了几个小时试图找出最好的方法来做到这一点 谷歌并没有多大帮助 问题是创建一个子例程 给定一个单词列表 然后将其添加到另一个成为输出的列表中 它基本上是一种处理大量数据的方法 我的代码适用于进位标志withi
  • ToLower函数在C中的实现

    我正在用 C 编写自己的 ToLower char str 实现 但是我在函数中遇到分段错误 我写的函数是 void ToLower char str while str 0 if str gt 65 str lt 90 It fails
  • 在 Objective-C++ 的 .h 文件中添加指向定义的 Objective-C 类的指针

    可以在 Objective C 中创建一个类 该类的字段是一个指向 Objective C 接口的指针 在 h文件 为了澄清一点 我创建了一个 Objective C 接口 Our platform independent class in
  • 此环境中不提供编译器。当执行 mvn clean package 时

    你好 当我在 cmd 上运行命令时 mvn清理包 我收到编译器错误 此环境中未提供编译器 也许您正在 JRE 而不是 JDK 上运行 But I checked out my PATH JAVA HOME and HOME M2 I als
  • 从 ARM 源代码交叉编译 Qt 4.7 时出现问题

    我正在尝试从源代码交叉编译 Qt 4 7 1 以下是我的设置的一些注释 我的预期输出是运行 Qt 应用程序所需的共享对象库 我的目标平台是 TI AM335x 处理器 采用 ARM Cortex A8 架构 我的开发平台是x86 64位Ub
  • 将电子表格导出到 mySQL 的 Google Apps 脚本在多个文件上执行

    Ahoy 我如何将所有 Google 电子表格的数据导出到 MySQL 我有导出脚本的基础知识 但是我所有的电子表格都有 1 500 多行 其中有 41 行 接下来我的问题是我可以在所有电子表格上执行这些脚本吗 一次电子表格文件 也许在一个
  • 音频识别和比较[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在做一个小组项目 我们正在开发一个程序 可以接收音频并将其与保存的音频文件进行比较 如果输入和保存的文件匹配则输出音频消息 我们想用某种 python 方法来比较音频文件 但