Python3.7 读取音频根据文件名生成脚本的代码


Posted in Python onApril 07, 2020

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
a

2
00: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 读取音频根据文件名生成脚本的代码的文章就介绍到这了,更多相关Python3.7 读取音频文件名字幕脚本内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Django的URLconf中进行函数导入的方法
Jul 18 Python
python函数的5种参数详解
Feb 24 Python
Python使用当前时间、随机数产生一个唯一数字的方法
Sep 18 Python
python topN 取最大的N个数或最小的N个数方法
Jun 04 Python
numpy返回array中元素的index方法
Jun 27 Python
python得到qq句柄,并显示在前台的方法
Oct 14 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
Python爬虫之urllib基础用法教程
Oct 12 Python
Django中使用MySQL5.5的教程
Dec 18 Python
Python获取指定网段正在使用的IP
Dec 14 Python
用Python爬虫破解滑动验证码的案例解析
May 06 Python
Python爬虫之自动爬取某车之家各车销售数据
Jun 02 Python
Django中从mysql数据库中获取数据传到echarts方式
Apr 07 #Python
PyCharm 在Windows的有用快捷键详解
Apr 07 #Python
python实现控制台输出彩色字体
Apr 05 #Python
python学生管理系统的实现
Apr 05 #Python
python实现一个猜拳游戏
Apr 05 #Python
python实现对变位词的判断方法
Apr 05 #Python
python如何判断IP地址合法性
Apr 05 #Python
You might like
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
php检测网页是否被百度收录的函数代码
2013/10/09 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
2015/09/09 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
JS功能代码集锦
2016/05/04 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
React Form组件的实现封装杂谈
2018/05/07 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
[58:23]LGD vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python数据类型详解(一)字符串
2016/05/08 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
Mankind美国/加拿大:英国领先的男士美容护发用品公司
2018/12/05 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
我的求职计划书
2014/01/10 职场文书
人力资源专员岗位职责
2014/01/30 职场文书
超市开学活动方案
2014/03/01 职场文书
中职生求职信
2014/07/01 职场文书
大学生创业事迹材料
2014/12/30 职场文书
旅游项目合作意向书
2015/05/08 职场文书
党支部季度考核意见
2015/06/02 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers