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进行基础的函数式编程的教程
Mar 31 Python
Python中函数的参数定义和可变参数用法实例分析
Jun 04 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
Dec 14 Python
玩转python爬虫之正则表达式
Feb 17 Python
Python中常用信号signal类型实例
Jan 25 Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 Python
numpy求平均值的维度设定的例子
Aug 24 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
Dec 10 Python
python之生成多层json结构的实现
Feb 27 Python
Jupyter打开图形界面并画出正弦函数图像实例
Apr 24 Python
python批量处理多DNS多域名的nslookup解析实现
Jun 28 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项目的方法
2006/10/09 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
2013/01/29 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
AngularJS实现元素显示和隐藏的几个案例
2015/12/09 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
几种tab切换详解
2017/02/03 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
Django中处理出错页面的方法
2015/07/15 Python
Python常用知识点汇总
2016/05/08 Python
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
python如何编写win程序
2020/06/08 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
党员领导干部承诺书
2014/05/28 职场文书
怎样写离婚协议书
2015/01/26 职场文书
运动员加油词
2015/07/18 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
Python实现生成bmp图像的方法
2021/06/13 Python