Python3.7 读取音频根据文件名生成脚本的代码
Warning:仅适用于文件名即字幕本体,按音频时常平均拆分来生成字幕,其他情况不适合。
以下为读取mp3文件夹下的音频,然后按市场,平均来生成字幕,例如文件名a-pp-le.mp3,字幕也将是apple三行。
make_srt.py代码
importlibrosa
importos
g=os.walk(r"mp3")
defcalTime(time):
sec=int(time)
micSec=time-sec
timeStr=''
if(sec<10):
timeStr+='0'+str(sec)
else:
timeStr+=str(sec)
ifmicSec==0:
timeStr+=',000'
else:
timeStr+=','+str(round(micSec*1000))
returntimeStr
forpath,dir_list,file_listing:
forfile_nameinfile_list:
filename=str('mp3/')+file_name
time=librosa.get_duration(filename='mp3/'+file_name)
split=file_name.strip('.mp3').split('-')
count=file_name.count('-')+1
average=time/count
#y,sr=librosa.audioread('phonics_demo/'+file_name,sr=None)
#print(sr)
ifcount>1:
forinx,valinenumerate(split):
#print(time)
f=open("srt/"+file_name+".srt",'a')
f.write(str(inx+1))
f.write('\n')
start=calTime((inx+1)*average)
end=calTime((inx+2)*average)
ifinx==0:
f.write("00:00:00,000"+"-->"+"00:00:"+start)
else:
f.write("00:00:"+start+"-->"+"00:00:"+end)
f.write('\n')
f.write(val)
f.write('\n\n')
大概效果如下:
1
00:00:00,000-->00:00:01,659
a2
00:00:01,659-->00:00:03,318broad
在大量音频文件生成字幕之后,需要校对缺失的字幕,有个快速的手段(以Windows10为例):在mp3目录下,按住Shift键点击右键吊起Powershell命令行工具,输入ls>mp3.txt将整个目录的文件,一行行的输出到mp3.txt,直接复制进一个Excel的Sheet1A列中待用,同样的操作将srt文件中的目录复制到Sheet2A列中,然后批量将.srt替换为空,然后使用Excel提供的vlookup方法,在Sheet1B列=IFERROR(VLOOKUP(A1,Sheet2!A:A,1,FALSE),""),未找到结果的在B列将填充空,筛选一下就知道哪个文件没生成字幕文件了。
总结
到此这篇关于Python3.7读取音频根据文件名生成脚本的代码的文章就介绍到这了,更多相关Python3.7读取音频文件名字幕脚本内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!