python 音频文件 转列表 比对相似度
我们知道,图片,文字,音频都可以转成数据存储在内存中,下面我给大家分享一个音频文件转义成列表内存,然后俩个列表对比相似度,来判断音频文件间的对比。话不多说,代码伺候;
#-*-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 音频文件 转列表 比对相似度相关推荐
- python 音频文件重采样8K转16K
安装相关包: pip install librosa pip install soundfile 运行代码: import librosa import soundfilefilename = r'd ...
- python将列表转换为字符串_每日一课 | Python将文件读入列表
读取日志文件的Python示例,一行一行地进入列表. # With '\n', ['1\n', '2\n', '3'] with open('/www/logs/server.log') as f: ...
- Python 音频文件切割
一直在学的一套美语教程,开头有18秒的音乐,每次都要听一遍,神烦. 索性写个脚本把所有音频开头音乐全部切掉. 参考 http://blog.csdn.net/skywalkerVVV/article/ ...
- python遍历文件夹列表 乱序
问题:利用os.listdir(path)时,若文件名中不仅包含数字,还有其他字符时,会造成乱序读取 解决方法: 用sorted进行排序,即sorted(os.listdir(path)) 然后for ...
- python 读入文件列表_Python将文件读入列表
python 读入文件列表 In this tutorial we are going to see how we can read a file and store the content of t ...
- [原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作
[原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作 转载请注明出处 一.关于为什么用pymediainfo以及pymediainfo的安装 使用python对视频/音频文件进行详 ...
- python构建聊天机器人之录制声音保存为音频文件(利用pyaudio进行录音)
最近心血来潮想利用 python构建一个智能语音聊天机器人,这样就能在我们无聊的时候和我们聊天以此打发时间啦:). 要想最终实现聊天机器人的构建需要经过一系列过程功能的实现,大致思路为程序接受用户的语 ...
- Python 爬虫下载喜马拉雅音频文件
阅读文本大概需要 5 分钟 学习,是一个长期的过程.学习的方式也是有很多种的,在家里时间有空闲时间的话可以选择读书,如今在手机上看电子书也方便.pk哥最近看电子书比较多,感觉自己的视力明显下降了.停下 ...
- 《自拍教程69》Python 批量重命名音频文件,AV专家必备!
本篇主要学习如何Python自定义模块并调用该模块,并重点介绍Python正则表达式的强大的文本处理能力. 案例故事: 任何一款终端产品只要涉及音频输出,就肯定涉及音频的解码, 作为一名专业的AV ( ...
- python批量命名教程_《自拍教程69》Python 批量重命名音频文件,AV专家必备!
本篇主要学习如何Python自定义模块并调用该模块,并重点介绍Python正则表达式的强大的文本处理能力. 案例故事:任何一款终端产品只要涉及音频输出,就肯定涉及音频的解码, 作为一名专业的AV (A ...
最新文章
- iOS纯代码工程手动快速适配
- c语言位段sizeof,C语言位段的介绍
- 不用中间变量交换a和b的值?
- C++ Primer 5th笔记(chap 16 模板和泛型编程)包扩展
- LeetCode 504. 七进制数(进制转换)
- 老男孩python第一天笔记
- VS各个版本的密钥及下载地址
- ubuntu系统安装TP-Link无线网卡驱动
- 彩色照片转化为黑白照片
- access denied for user root@localhost using passw
- SQL 中的注释语句
- 无线传感器网络技术与应用课后习题部分答案
- 数据库系统概论---第五章:数据库完整性(实体、参照物、用户定义完整性 + constrain + domain + assert +tigger)
- 5.1Kettle数据的清洗与检验——不完全去重
- Fragment Transactions Activity State Loss
- 云计算的概念、原理和关键技术
- 学习下 BlackHat Asia 2021 大会议题
- 学习笔记——Day1——Python歌词解析
- 模糊聚类作业-鸢尾花分类
- 学界丨我这样预测了医疗AI的发展,或许你也可以(附论文链接)