我们知道,图片,文字,音频都可以转成数据存储在内存中,下面我给大家分享一个音频文件转义成列表内存,然后俩个列表对比相似度,来判断音频文件间的对比。话不多说,代码伺候;

#-*-coding:utf-8-*-
import os
import re
import wave
import numpy as np
import pyaudio#音频比对子体时间小于母体
class Voice()def __init__(self):self.name=[(x,x,x,x).....]    #音频文件转码后def loaddata(self,filepath):if type(filepath)!=str:print('文件的路径不正确')return Falsep1=re.compile('\.wav')if p1.findall(filepath) is None:print('请确保文件的格式属于wav')return Falsetry:f=wave.open(filepath,'rb')parmas=f.getparams()self.nchannels,self.sampwidth,self.framerate,self.nframes=parmas[:4]str_data=f.readframes(self.nframes)self.wave_data=np.fromstring(str_data,dtype=np.short)self.wave_data=self.wave_data.Tf.close()self.name=os.path.basename(filepath) #记录下文件名return True except:print(‘File error!’)def fft(self,frames=40):block=[]fft_block=[]high_point=[]blocks_size=self.framerate/frames  #为每一块的frame数量blocks_num=self.nframes/blocks_size #将音频分块的数量for i in range(0,len(self.wave_data[0]))-int(blocks_size),int(blocks_size):block.append(self.wave_data[0][i:i+int(blocks_size)])fft_blocks.append(np.abs(np.fft.fft(self.wave_data[0][i:i]+int(blocks_size))))high_point.append((np.argmax(fft_blocks[-1][:40]),np.argmax(fft_blocks[-1][40:80])+40,np.argmax(fft_blocks[-1][80:120])+80,np.argmax(fft_blocks[-1][120:180])+120,))return high_pointdef play(self,filepath):chunk=1024wf=wave.open(filepath,'rb')p=pyaudio.PyAudio()#打开声音输出流stream=p.open(format=p.get_format_from_width(wf.getsampwidth()),channels=wf.getnchannels(),rate=wf.getframerate(),output=True)#写声音输出流进行播放while True:data=wf.readframes(chunk)if data=="":breakstream.write(data)stream.close()p.terminate()def fp_compare(self,search_fp,type):'''type决定音频比对类型'''if type=="clock":match_fp=self.clock.......if len(search_fp)>len(match_fp):return 0;max_similar=0search_fp_len=len(search_fp)match_fp_len=len(match_fp)for i in range(match_fp_len-search_fp_len):temp=0for j in range(search_fp_len):flag=0for x in range(4):if match_fp[i+j][x]<=search_fp[j][x]<=match_fp[i+j][x]:flag=flag+1if flag==4:temp+=1if temp>max_similar:max_similar=tempreturn max_similarif __name__='__main__':p=Voice()#加载具体音频路径p.loaddata("D:\\")  #比对音频能量值 大于1为比对成功 等于0为比对失败,代表音频不匹配print(p.fp_compare(p.fft())) is 0)

python 音频文件 转列表 比对相似度相关推荐

  1. python 音频文件重采样8K转16K

    安装相关包: pip install librosa pip install soundfile 运行代码: import librosa import soundfilefilename = r'd ...

  2. python将列表转换为字符串_每日一课 | Python将文件读入列表

    读取日志文件的Python示例,一行一行地进入列表. # With '\n', ['1\n', '2\n', '3'] with open('/www/logs/server.log') as f: ...

  3. Python 音频文件切割

    一直在学的一套美语教程,开头有18秒的音乐,每次都要听一遍,神烦. 索性写个脚本把所有音频开头音乐全部切掉. 参考 http://blog.csdn.net/skywalkerVVV/article/ ...

  4. python遍历文件夹列表 乱序

    问题:利用os.listdir(path)时,若文件名中不仅包含数字,还有其他字符时,会造成乱序读取 解决方法: 用sorted进行排序,即sorted(os.listdir(path)) 然后for ...

  5. python 读入文件列表_Python将文件读入列表

    python 读入文件列表 In this tutorial we are going to see how we can read a file and store the content of t ...

  6. [原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作

    [原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作 转载请注明出处 一.关于为什么用pymediainfo以及pymediainfo的安装 使用python对视频/音频文件进行详 ...

  7. python构建聊天机器人之录制声音保存为音频文件(利用pyaudio进行录音)

    最近心血来潮想利用 python构建一个智能语音聊天机器人,这样就能在我们无聊的时候和我们聊天以此打发时间啦:). 要想最终实现聊天机器人的构建需要经过一系列过程功能的实现,大致思路为程序接受用户的语 ...

  8. Python 爬虫下载喜马拉雅音频文件

    阅读文本大概需要 5 分钟 学习,是一个长期的过程.学习的方式也是有很多种的,在家里时间有空闲时间的话可以选择读书,如今在手机上看电子书也方便.pk哥最近看电子书比较多,感觉自己的视力明显下降了.停下 ...

  9. 《自拍教程69》Python 批量重命名音频文件,AV专家必备!

    本篇主要学习如何Python自定义模块并调用该模块,并重点介绍Python正则表达式的强大的文本处理能力. 案例故事: 任何一款终端产品只要涉及音频输出,就肯定涉及音频的解码, 作为一名专业的AV ( ...

  10. python批量命名教程_《自拍教程69》Python 批量重命名音频文件,AV专家必备!

    本篇主要学习如何Python自定义模块并调用该模块,并重点介绍Python正则表达式的强大的文本处理能力. 案例故事:任何一款终端产品只要涉及音频输出,就肯定涉及音频的解码, 作为一名专业的AV (A ...

最新文章

  1. iOS纯代码工程手动快速适配
  2. c语言位段sizeof,C语言位段的介绍
  3. 不用中间变量交换a和b的值?
  4. C++ Primer 5th笔记(chap 16 模板和泛型编程)包扩展
  5. LeetCode 504. 七进制数(进制转换)
  6. 老男孩python第一天笔记
  7. VS各个版本的密钥及下载地址
  8. ubuntu系统安装TP-Link无线网卡驱动
  9. 彩色照片转化为黑白照片
  10. access denied for user root@localhost using passw
  11. SQL 中的注释语句
  12. 无线传感器网络技术与应用课后习题部分答案
  13. 数据库系统概论---第五章:数据库完整性(实体、参照物、用户定义完整性 + constrain + domain + assert +tigger)
  14. 5.1Kettle数据的清洗与检验——不完全去重
  15. Fragment Transactions Activity State Loss
  16. 云计算的概念、原理和关键技术
  17. 学习下 BlackHat Asia 2021 大会议题
  18. 学习笔记——Day1——Python歌词解析
  19. 模糊聚类作业-鸢尾花分类
  20. 学界丨我这样预测了医疗AI的发展,或许你也可以(附论文链接)

热门文章

  1. 电商项目:高仿小米商城(API文档)
  2. python股票量化分析
  3. 学习java第14天
  4. Navicat15导入DMP数据文件
  5. 1-2 用Python爬取猫眼票房网上的电影票房信息
  6. 个人配置环境和跑代码的一些坑
  7. 英雄联盟 python 刷等级_自从学了python,我再也不缺英雄联盟的皮肤了
  8. oracle 会话数上不去_(一)UDS诊断服务中的诊断会话控制(DiagnosticSessionControl,0x10)...
  9. Golang 之 IED 安装(mac)
  10. lcd调色板工作原理详解