Python3.7 讀取音頻根據(jù)文件名生成腳本的代碼
Warning: 僅適用于文件名即字幕本體,按音頻時常平均拆分來生成字幕,其他情況不適合。
以下為讀取 mp3 文件夾下的音頻,然后按市場,平均來生成字幕,例如文件名 a-pp-le.mp3,字幕也將是 a pp le 三行。
make_srt.py 代碼
import librosaimport osg = os.walk(r'mp3')def calTime(time): sec = int(time) micSec = time - sec timeStr = ’’ if (sec < 10): timeStr += ’0’ + str(sec) else: timeStr += str(sec) if micSec == 0: timeStr += ’,000’ else: timeStr += ’,’ + str(round(micSec * 1000)) return timeStrfor path,dir_list,file_list in g: for file_name in file_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) if count > 1: for inx, val in enumerate(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)if inx == 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(’nn’)
大概效果如下:
100:00:00,000 --> 00:00:01,659a
200:00:01,659 --> 00:00:03,318
broad
在大量音頻文件生成字幕之后,需要校對缺失的字幕,有個快速的手段(以Windows 10為例): 在 mp3 目錄下,按住 Shift 鍵點擊右鍵吊起 Powershell 命令行工具,輸入 ls > mp3.txt 將整個目錄的文件,一行行的輸出到 mp3.txt,直接復制進一個Excel 的 Sheet1 A列中待用,同樣的操作將 srt 文件中的目錄復制到 Sheet2 A列中,然后批量將 .srt 替換為空,然后使用 Excel 提供的 vlookup 方法,在 Sheet1 B列 =IFERROR(VLOOKUP(A1,Sheet2!A:A,1,FALSE),'') ,未找到結果的在B列將填充空,篩選一下就知道哪個文件沒生成字幕文件了。
總結
到此這篇關于Python3.7 讀取音頻根據(jù)文件名生成腳本的代碼的文章就介紹到這了,更多相關Python3.7 讀取音頻文件名字幕腳本內容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!
相關文章:
