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简单实现安全开关文件的两种方式
Sep 19 Python
django从请求到响应的过程深入讲解
Aug 01 Python
Python延时操作实现方法示例
Aug 14 Python
Python中collections模块的基本使用教程
Dec 07 Python
Python基于百度云文字识别API
Dec 13 Python
python截取两个单词之间的内容方法
Dec 25 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
May 24 Python
Python闭包及装饰器运行原理解析
Jun 17 Python
Python datetime 如何处理时区信息
Sep 02 Python
PyCharm2020.3.2安装超详细教程
Feb 08 Python
Python使用tkinter制作在线翻译软件
Feb 22 Python
详解Django中的FBV和CBV对比分析
Mar 01 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
当海贼王变成JOJO风
2020/03/02 日漫
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
简单的移动设备检测PHP脚本代码
2011/02/19 PHP
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
2014/05/29 PHP
PHP获取文件行数的方法
2015/06/10 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
JScript的条件编译
2007/05/29 Javascript
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
2014/04/21 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
Python Tkinter简单布局实例教程
2014/09/03 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
通信工程专业女生个人求职信
2013/09/21 职场文书
保护环境的建议书
2014/03/12 职场文书
青岛导游词
2015/02/12 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技