Python3.7 讀取音頻根據(jù)文件名生成腳本的代碼
Warning: 僅適用于文件名即字幕本體,按音頻時(shí)常平均拆分來生成字幕,其他情況不適合。
以下為讀取 mp3 文件夾下的音頻,然后按市場(chǎng),平均來生成字幕,例如文件名 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
在大量音頻文件生成字幕之后,需要校對(duì)缺失的字幕,有個(gè)快速的手段(以Windows 10為例): 在 mp3 目錄下,按住 Shift 鍵點(diǎn)擊右鍵吊起 Powershell 命令行工具,輸入 ls > mp3.txt 將整個(gè)目錄的文件,一行行的輸出到 mp3.txt,直接復(fù)制進(jìn)一個(gè)Excel 的 Sheet1 A列中待用,同樣的操作將 srt 文件中的目錄復(fù)制到 Sheet2 A列中,然后批量將 .srt 替換為空,然后使用 Excel 提供的 vlookup 方法,在 Sheet1 B列 =IFERROR(VLOOKUP(A1,Sheet2!A:A,1,FALSE),"") ,未找到結(jié)果的在B列將填充空,篩選一下就知道哪個(gè)文件沒生成字幕文件了。
總結(jié)
到此這篇關(guān)于Python3.7 讀取音頻根據(jù)文件名生成腳本的代碼的文章就介紹到這了,更多相關(guān)Python3.7 讀取音頻文件名字幕腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python算法思想集結(jié)深入理解動(dòng)態(tài)規(guī)劃
這篇文章主要為大家介紹了Python算法思想集結(jié)深入理解動(dòng)態(tài)規(guī)劃詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
python 如何將浮點(diǎn)數(shù)尾部無效0去掉和無效的‘.’號(hào)
這篇文章主要介紹了python 如何將浮點(diǎn)數(shù)尾部無效0去掉和無效的‘.’號(hào),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python動(dòng)態(tài)創(chuàng)建類實(shí)例詳解
這篇文章主要為大家介紹了Python動(dòng)態(tài)創(chuàng)建類實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
11個(gè)Python Pandas小技巧讓你的工作更高效(附代碼實(shí)例)
這篇文章主要介紹了11個(gè)Python Pandas小技巧讓你的工作更高效(附代碼實(shí)例),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-04-04
Python自動(dòng)化辦公之定時(shí)發(fā)送郵件的實(shí)現(xiàn)
解決django框架model中外鍵不落實(shí)到數(shù)據(jù)庫問題

