-
大小: 1.28MB文件类型: .zip金币: 2下载: 1 次发布日期: 2023-10-24
- 语言: 其他
- 标签: AudioCompare
资源简介
AudioCompare 音频相似度比较,匹配上会返回匹配的数值
代码片段和文件信息
# -*-coding:utf8-*-
import os
import re
import subprocess
# 读取txt文件内容,每行分开加入到list中
def readTxt(path ignore):
contentList = list()
for line in open(path “r“):
line = re.sub(r‘\n‘ ‘‘ line)
if line.find(ignore) == -1:
contentList.append(line)
return contentList
def compareAudio(fileNameList compareFile):
# 调用AudioCompare库方法比较两个文件
fileName = compareFile.split(‘/‘)[-1]
filePath = compareFile[:-len(fileName)]
if not os.path.exists(filePath):
os.mkdir(filePath)
if os.path.exists(compareFile): # 已存在
fout = open(compareFile ‘a‘)
else:
fout = open(compareFile ‘w‘)
fout.write(‘# 记录音频比较结果的文件\n‘)
contentList = readTxt(compareFile ‘#‘)
for index fileName in enumerate(fileNameList):
for compareFileName in fileNameList[index + 1:]:
# 从记录的文件中取值,如果已经比较过就不再比较
needCompareFlag = True
for content in contentList:
if fileName in content.split(‘|‘) and compareFileName in content.split(‘|‘):
needCompareFlag = False
print ‘已存在:‘ + fileName + ‘|‘ + compareFileName
if needCompareFlag:
command = ‘ AudioCompare-master/main.py -f ‘ + fileName + ‘ -f ‘ + compareFileName
p = subprocess.Popen(‘python‘ + command stdout=subprocess.PIPE shell=True)
stdoutput = p.stdout.readlines()
fout.write(stdoutput[0])
# 获取文件大小
def getFileSize(fileName):
try:
return os.path.getsize(fileName)
except Exception as err:
print(err)
# 得到文件大小相似的集合,返回[[(‘xx.wav‘3715364L)][(‘xx.wav‘3715364L)(‘xx.wav‘3715364L)(‘xx.wav‘3715364L)]]
def sortedNearFile(fileNamesList level):
# 得到每个文件的大小
fileSizeDict = dict()
for fileName in fileNamesList:
fileSizeDict.setdefault(fileName getFileSize(fileName))
# 先按照文件的大小排序
sortedFileSizeList = sorted(fileSizeDict.iteritems() key=lambda item: item[1])
# 逐个比较相邻的文件大小,小于阈值,提取出来
nearFileList = list()
for index in range(0 len(sortedFileSizeList)):
if index + 1 < len(sortedFileSizeList) and index > 0:
# 和左边的比
preVal = abs(sortedFileSizeList[index][1] - sortedFileSizeList[index - 1][1])
# 和右边比
nextVal = abs(sortedFileSizeList[index][1] - sortedFileSizeList[index + 1][1])
# 得出与左边或右边音频大小小于阀值的音频
if preVal <= level or nextVal <= level:
nearFileList.append(sortedFileSizeList[index])
# 把重复的放在一个列表中,返回[[(‘xx.wav‘3715364L)][(‘xx.wav‘3715364L)(‘xx.wav‘3715364L)(‘xx.wav‘3715364L)]]
sortedNearFileList = list()
i = 0
for index in range(0 len(nearFileList)):
# 如果nearFileList[index] - sortedNearFileList[i][0] <= level 就添加,否则添加到sortedNearFileList[i+1]中
if len(sortedNearFileList) == 0:
sortedNearFileList.append([nearFileL
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-05-25 10:35 AudioCompare-master\
文件 26 2015-06-17 22:13 AudioCompare-master\.gitignore
文件 55 2015-06-17 22:13 AudioCompare-master\audiomatch
文件 471 2015-06-17 22:13 AudioCompare-master\common.py
文件 1397 2017-05-18 13:41 AudioCompare-master\common.pyc
文件 162 2015-06-17 22:13 AudioCompare-master\error.py
文件 676 2017-05-18 13:41 AudioCompare-master\error.pyc
文件 3372 2015-06-17 22:13 AudioCompare-master\FFT.py
文件 4108 2017-05-18 13:41 AudioCompare-master\FFT.pyc
文件 6015 2015-06-17 22:13 AudioCompare-master\InputFile.py
文件 7546 2017-05-18 13:41 AudioCompare-master\InputFile.pyc
文件 362913 2015-06-17 22:13 AudioCompare-master\lame
文件 2413 2015-06-17 22:13 AudioCompare-master\LICENSE.matplotlib
文件 1353 2015-06-17 22:13 AudioCompare-master\main.py
文件 14594 2015-06-17 22:13 AudioCompare-master\Matcher.py
文件 11916 2017-05-18 13:41 AudioCompare-master\Matcher.pyc
文件 1962 2015-06-17 22:13 AudioCompare-master\README.md
文件 2938 2015-06-17 22:13 AudioCompare-master\TECHNICAL_OVERVIEW
目录 0 2017-05-18 13:37 AudioCompare-master\test\
文件 1081 2015-06-17 22:13 AudioCompare-master\test\A5Test.py
文件 43237 2015-06-17 22:13 AudioCompare-master\test\BlackBox.py
文件 744 2015-06-17 22:13 AudioCompare-master\test\InputFileTest.py
文件 15062 2015-06-17 22:13 AudioCompare-master\test\ProfTest.py
文件 7195 2015-06-17 22:13 AudioCompare-master\test\scores.py
文件 1764 2015-06-17 22:13 AudioCompare-master\test\similaritywav.py
文件 9941 2015-06-17 22:13 AudioCompare-master\test\TestCommon.py
文件 2520 2015-06-17 22:13 AudioCompare-master\test\visualizer.py
文件 701474 2017-05-25 10:12 init30_1.wav
文件 766618 2017-05-25 10:10 init30_1_copy.wav
文件 4504 2017-05-25 10:39 testCompareAudio.py
评论
共有 条评论