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实现在每个独立进程中运行一个函数的方法
Apr 23 Python
Python中subprocess模块用法实例详解
May 20 Python
python批量添加zabbix Screens的两个脚本分享
Jan 16 Python
Django如何实现内容缓存示例详解
Sep 24 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
May 13 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
Jun 14 Python
python3.7简单的爬虫实例详解
Jul 08 Python
python实现加密的方式总结
Jan 19 Python
opencv中图像叠加/图像融合/按位操作的实现
Apr 01 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
Apr 22 Python
python利用appium实现手机APP自动化的示例
Jan 26 Python
Python 制作自动化翻译工具
Apr 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 curl_init函数用法
2014/01/31 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
javascript定义变量时加var与不加var的区别
2014/12/22 Javascript
js实现简单计算器
2015/11/22 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
小程序实现锚点滑动效果
2019/09/23 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
大学生职业生涯规划范文
2014/01/08 职场文书
激励员工的口号
2014/06/16 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
学会感恩主题班会
2015/08/12 职场文书
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL