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编程-将Python程序转化为可执行程序[整理]
Apr 09 Python
Python时间模块datetime、time、calendar的使用方法
Jan 13 Python
Python的for和break循环结构中使用else语句的技巧
May 24 Python
利用Python为iOS10生成图标和截屏
Sep 24 Python
python timestamp和datetime之间转换详解
Dec 11 Python
详解Python with/as使用说明
Dec 13 Python
python 发送和接收ActiveMQ消息的实例
Jan 30 Python
Python实战购物车项目的实现参考
Feb 20 Python
python安装requests库的实例代码
Jun 25 Python
Pytorch生成随机数Tensor的方法汇总
Sep 09 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 Python
Python如何使用循环结构和分支结构
Apr 13 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
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
建立良好体验度的Web注册系统ajax
2007/07/09 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
vuejs如何配置less
2017/04/25 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
2020/09/09 Javascript
Python 创建子进程模块subprocess详解
2015/04/08 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
Python matplotlib可视化实例解析
2020/06/01 Python
python怎么自定义捕获错误
2020/06/29 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
台湾最大网路书店:博客来
2018/03/18 全球购物
关于人生的感言
2014/01/17 职场文书
黄金搭档广告词
2014/03/21 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
入伍通知书
2015/04/23 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python
pandas中关于apply+lambda的应用
2022/02/28 Python