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 相关文章推荐
python sys.argv[]用法实例详解
May 25 Python
centos7之Python3.74安装教程
Aug 15 Python
python生成requirements.txt的两种方法
Sep 18 Python
Python+OpenCV实现旋转文本校正方式
Jan 09 Python
python获取栅格点和面值的实现
Mar 10 Python
Django REST framwork的权限验证实例
Apr 02 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
Apr 12 Python
python构造IP报文实例
May 05 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
python 下载文件的几种方式分享
Apr 07 Python
使用Pytorch训练two-head网络的操作
May 28 Python
python中对列表的删除和添加方法详解
Feb 24 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
php缓冲输出实例分析
2015/01/05 PHP
PHP可变函数学习小结
2015/11/29 PHP
PHP处理数组和XML之间的互相转换
2016/06/02 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
php利用header函数下载各种文件
2016/08/24 PHP
php微信开发自定义菜单
2016/08/27 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
2016/07/01 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
vue从一个页面跳转到另一个页面并携带参数的解决方法
2019/08/12 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
windows下添加Python环境变量的方法汇总
2018/05/14 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
法学院方阵解说词
2014/01/29 职场文书
经典广告词大全
2014/03/14 职场文书
诚实守信主题班会
2015/08/13 职场文书
医学会议开幕词
2016/03/03 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫