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中元类用法实例
Oct 10 Python
Python中分数的相关使用教程
Mar 30 Python
python中list常用操作实例详解
Jun 03 Python
详解Python迭代和迭代器
Mar 28 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
python 删除指定时间间隔之前的文件实例
Apr 24 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
Feb 05 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 Python
手把手教你安装Windows版本的Tensorflow
Mar 26 Python
Python获取浏览器窗口句柄过程解析
Jul 25 Python
用 Django 开发一个 Python Web API的方法步骤
Dec 03 Python
如何用 Python 制作一个迷宫游戏
Feb 25 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/06/19 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
详解php协程知识点
2018/09/21 PHP
laravel框架的安装与路由实例分析
2019/10/11 PHP
读jQuery之八 包装事件对象
2011/06/21 Javascript
JS实现拖动示例代码
2013/11/01 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
Python不规范的日期字符串处理类
2014/06/10 Python
跟老齐学Python之有点简约的元组
2014/09/24 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
python实现转圈打印矩阵
2019/03/02 Python
详解Python中is和==的区别
2019/03/21 Python
Python字符串及文本模式方法详解
2020/09/10 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
运动会稿件200字
2014/02/07 职场文书
银行开户授权委托书格式
2014/10/10 职场文书
2015年元旦标语大全
2014/12/09 职场文书