您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python3.7 如何讀取音頻的文件名生成腳本”,在日常操作中,相信很多人在Python3.7 如何讀取音頻的文件名生成腳本問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python3.7 如何讀取音頻的文件名生成腳本”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Python是一種編程語言,內置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領域中都有廣泛的應用,例如最熱門的大數據分析,人工智能,Web開發等。
Warning: 僅適用于文件名即字幕本體,按音頻時常平均拆分來生成字幕,其他情況不適合。
以下為讀取 mp3 文件夾下的音頻,然后按市場,平均來生成字幕,例如文件名 a-pp-le.mp3
,字幕也將是 a pp le 三行。
make_srt.py 代碼
import librosa import os g = 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 timeStr for 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('\n\n')
大概效果如下:
1
00:00:00,000 --> 00:00:01,659
a2
00:00:01,659 --> 00:00:03,318broad
在大量音頻文件生成字幕之后,需要校對缺失的字幕,有個快速的手段(以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 如何讀取音頻的文件名生成腳本”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。