Python3.7 讀取音頻根據(jù)文件名生成腳本的代碼
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),"") ,未找到結(jié)果的在B列將填充空,篩選一下就知道哪個文件沒生成字幕文件了。
總結(jié)
到此這篇關于Python3.7 讀取音頻根據(jù)文件名生成腳本的代碼的文章就介紹到這了,更多相關Python3.7 讀取音頻文件名字幕腳本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python調(diào)用百度通用翻譯API的方法實現(xiàn)
本文主要介紹了python調(diào)用百度通用翻譯API的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-01-01
TensorFlow2.0使用keras訓練模型的實現(xiàn)
這篇文章主要介紹了TensorFlow2.0使用keras訓練模型的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02
python制作一個簡單的gui 數(shù)據(jù)庫查詢界面
這篇文章主要介紹了python制作一個簡單的gui 數(shù)據(jù)庫查詢界面,幫助大家更好的理解和學習python tkinter的使用,感興趣的朋友可以了解下2020-11-11
對DJango視圖(views)和模版(templates)的使用詳解
今天小編就為大家分享一篇對DJango視圖(views)和模版(templates)的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
python中BackgroundScheduler和BlockingScheduler的區(qū)別
這篇文章主要介紹了python中BackgroundScheduler和BlockingScheduler的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-07-07
Python利用keyboard模塊實現(xiàn)鍵盤記錄操作
模擬鍵盤操作執(zhí)行自動化任務,我們常用的有pyautowin等自動化操作模塊。今天介紹的這個模塊叫做keyboard,它是純Python原生開發(fā),編譯時完全不需要依賴C語言模塊。一行命令就能完成安裝,非常方便,需要的可以了解一下2022-10-10

