-
大小: 1.28MB文件類型: .zip金幣: 2下載: 2 次發(fā)布日期: 2023-10-24
- 語言: 其他
- 標簽: AudioCompare??
資源簡介
AudioCompare 音頻相似度比較,匹配上會返回匹配的數(shù)值

代碼片段和文件信息
#?-*-coding:utf8-*-
import?os
import?re
import?subprocess
#?讀取txt文件內(nèi)容,每行分開加入到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):
????#?調(diào)用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(chǎn)‘)
????else:
????????fout?=?open(compareFile?‘w‘)
????????fout.write(‘#?記錄音頻比較結(jié)果的文件\n‘)
????contentList?=?readTxt(compareFile?‘#‘)
????for?index?fileName?in?enumerate(fileNameList):
????????for?compareFileName?in?fileNameList[index?+?1:]:
????????????#?從記錄的文件中取值,如果已經(jīng)比較過就不再比較
????????????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??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])
????#?把重復(fù)的放在一個列表中,返回[[(‘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
評論
共有 條評論