ASFG - 开发中的字幕文件自动生成系统

这是最新的更新消息,由于个人能力和时间的问题,几次更新后项目的发展和效果仍不能达到预期,请不要对最终效果抱有太大期望并且谨慎尝试源码,一段时间后我会修改该文章的公开状态直到项目再次迎来了有显著提升的大更新:

在使用更大的数据集完成模型的更新后,预测结果在大多数情况下仍然只能在秒单位基础上完成句子的分割,这样一来这个项目就缺乏实际运用所需要的精度。为此我需要重新检查更新神经网络或者使用一套崭新的神经网络来构建模型从而实现毫秒级的预测,这会花费我大量的时间。因此我想说这个项目没有被放弃但是由于技术原因停滞了。

当我能发现一套能够成功实现任务预期目标的完整方法体系时,我会尝试尽快更新项目。 - 2021.7


ASFG (auto-subtitle-file-generation) 是一款基于深度学习的字幕自动生成系统,基于Sound Event Detection技术,用于实现输入音视频 --> 输出对应字幕的功能,ASFG当前支持主流的音视频格式和asssrt字幕格式,当前项目的关键是能够自动识别视频中人类语音出现的位置,实现自动打时间线,已初步实现离线音频识别,尚不包括翻译功能

项目完全开放,只要你对项目感兴趣或者对深度学习感兴趣,都可以联系作者,个人资源精力有限,欢迎各位的参与!

开发日志

2021.2

发布仅能够识别人类对话,自动打时间线的预览版本。

2021.4:

  • 实现了音频转文字功能,生成的时间线包含对话文字了。功能实现稳定接入,识别效果不甚理想,仍需要优化表现和完善整合。 接下来:

    1. 重新回到SED部分。在应用语音转文字时,发现离线的语言转文字模型无法帮助SED进行优化,表现都不好,其无法进行准确的语句分割和识别,也根本不能完善和替代SED的功能;同时,Sound Event Detection(用来打时间线的,识别人说话的时间点)模块暴露出了问题,需要优化完善。以下改进可能帮助提高表现:数据集单个音频片段过长(原始3s,计划2s或者1s),数据集样本较少(原始19000条数据,计划40000~50000条数据,越多越好),数据集采样频率过高(这个无关乎模型表现,主要是为了节省训练成本,根据论文,16khz和32khz表现差不多,也可能减轻过拟合),采用mixup进行音频预处理(对训练设备要求高,根据训练时间考虑加入)以及其它的模型表现的提升手段,包括修改Loss方程,改进模型结构等等;另外,发现可能造成预测不准的重大问题:acc、dts等语音格式会产生几秒乃至几十秒的音频延迟和冗余,之前只验证的能否支持这些格式的音频训练,没有仔细检验音频解码与原视频/音频的总时间能否对的上,可能会造成严重漏洞,今后所有的数据集全部都要基于无损的wav格式进行训练!!!综上,重新搞个数据集,重新开始一遍遍地跑模型,这可能是个很漫长的过程,下次大更可能要晚一点了。。。
    2. 实行预测和语音识别的并行支持,加快程序运行速度。
    3. 优化语音转文字的离线效果,考虑加入语音增强,待定。

开发背景

在介绍项目的正文内容之前,我想写一写项目开发的背景和长期考虑,以便各位读者更好地理解项目的结构和在功能上做出选择的原因,跳过此部分不会影响读者对项目的使用。

在完成考研的寒假期间,我在之前知识储备的基础上,动手开始实现整个项目。从技术含量上来说,项目开发的难度不在人工智能技术本身,而在于从输入到实现产出整个流程的工程化,重点包括:

  • 人工智能技术在项目识别中的工程化,如项目输入 -> 人工智能输入 -> 人工智能输出 -> 项目输出的无缝衔接。
  • 字幕文件的编码和产出,音视频解码、转换和切片。
  • 生成人工智能技术所需数据集的算法设计和程序设计。

我没有选择在神经网络结构上的大动干戈,原因有二:其一,在时间紧凑的情况下,设计和实现项目整体结构的稳定,保证能够实现各项功能的整合和应用产出是最重要的需求;其二,基于先前的研究,当前采用的PANNs model已经是SED领域表现最佳的深度学习模型,应该足够胜任该项任务。

综合以上考虑,我首先实现了稳定产出带时间线的字幕文件的功能,因为能否准确地识别人类语言在音视频中出现的前后位置,是该项目与众多现场式字幕生成系统的根本区别,现场式的字幕生成系统能够自动生成字幕,但是满足不了对时间线的吻合度要求很高的资源 - 如影视剧等 - 的需求。

也正是由于除了自动打时间线之外的功能在首阶段的开发都没能实现,功能如此不完善,实在惭愧。在将代码开源的同时,也开放了整个深度学习模型训练和应用的模型,希望感兴趣的读者,无论是像我一样的rookie,还是大佬,都能更容易地参与到项目的功能开发当中。

感谢!

2021.3

直接上手

当前ASFG还处于裸奔阶段,尚未打包为可以独立运行的程序,因此需要python环境的支持(括号部分为构建程序运行环境所需要的步骤)。

  1. (安装python)
  2. 下载项目文件夹至本地
  3. 进入本地ASFG根文件夹,在项目根文件夹下打开命令行
  4. (命令行输入运行python install -r requirements.txt,pytorch若安装失败,则需要依照官网安装)
  5. 命令行输入运行python run.py,输入资源路径 + 选择输出文件名即可。
  6. 在项目文件夹的result文件夹中收获生成的字幕文件(支持ass和srt格式)

ASFG的流程及工作原理

ASFG整体的工作流程包括三个方面:

音视频输入 --> ASFG处理 --> 字幕输出

使用者流程

对于使用者来说,当你选择好你希望生成字幕的相关音频或视频后,ASFG会做这些事:

前处理音视频输入 --> 使用训练好的深度学习模型进行预测 --> 语义分割算法后处理 --> 字幕编码及格式优化 --> 生成本地的字幕文件

使用者需要做的只是声明音视频文件路径,然后运行脚本即可。

深度学习流程

深度学习是ASFG实现功能的核心组件,在提供面向使用者的python脚本代码的同时,项目中深度学习的整个流程同样是开放的,包含数据集的生成一直到最终模型过程的整个流程。ASFG已经帮你处理好了数据集生成的算法和各个环节的数据衔接,因此,任何感兴趣的人都可以基于ASFG创建自己的数据集,亲自调试参数,然后训练自己的模型,这个过程也会变得简单得多。

具体来说,想亲自来一把深度学习,关注以下几个流程即可:

收集原始数据材料 --> 生成数据集 --> 引用深度学习代码库在数据集上训练模型

原始材料指的是任何你可以收集到本地的音频/视频 + 对应字幕文件;深度学习的代码库指的是模型优化和训练流程中需要使用的各项组件(详见csrc文件夹);至于生成数据集,只需要告知python对应的原始材料文件路径(一般放在src文件夹下),然后运行脚本即可(需要事先创建好存放数据集的文件夹。

深度学习需要很多调试,我主要将调试任务在本地8GB 2070super上运行,性能限制下一些想法成本太高没有实现,开放整个流程也是希望能够有人能作出效果更好的模型,分享出来也能让字幕译制的大大们更好受益。

总结当前,展望未来

项目当下在时间线方面主要问题是:

  • 一些对话的时间轴会出现整个延迟或者提前的情况。
  • 在人物急促对话,语句间间隔很小的情况下不能实现准确分割。

项目预期实现的功能:

  • 音频识别(音频转文字),包括每个切割出来片段分别识别和整个音视频文件整个识别两种情况。
  • 能够接收输入的翻译内容(人工精译或机器识别皆可),对应并填入系统自动生成的时间线。

以上是两种生成带语音文字和翻译内容的方案,当前还在画饼,慢慢争取实现。

附:初发布版本数据集和模型详细

在最先push到github的程序中,训练最终模型使用的数据集为:

  • 两杆大烟枪 - Lock, Stock and Two Smoking Barrels 及其字幕文件
  • 美国丽人 - American Beauty 及其字幕文件
  • 达拉斯买家俱乐部 - The Dallas Buyers Club 及其字幕文件
  • 碟中谍4 - Mission: Impossible – Ghost Protocol 及其字幕文件
  • 蝙蝠侠 黑暗骑士崛起 - The Dark Knight Rises 及其字幕文件
  • 国王的演讲 - The King’s Speech 及其字幕文件
  • 天国王朝 - Kingdom of Heaven 及其字幕文件

共七部电影全部时长构建总计19034个片段,每个片段时长三秒(这个参数也是几经调试最终选择的),由ASFG自动生成,其中包括包含对话片段10964个,不包含对话片段8070个。

选择电影是因为:

  • 资源易得
  • 对话形式丰富,内容多样
  • 带有强干扰的背景音和各种各样干扰项
  • 边看电影边调试评估模型表现相当有意思

使用此数据集也带来了一些明显的不足:

  • 只包含了英语资源,对其它语言可能不友好(加入其它语言的影视音频资源)
  • 不包加工后语音,对变声处理的音视频可能不友好(加入变声处理的音视频资源)
  • 只包含了电影,未必就能在其它音频和视频环境下表现好(加入其它类型的音视频资源)

预训练模型来自:PANNs: Large-Scale Pretrained Audio Neural Networks for Audio Pattern Recognition (Pretrained Models)

知乎版本,欢迎移步这里。

ASFG - AI可以帮你自动生成字幕文件相关推荐

  1. python视频处理字幕_Python-autosub为任意视频自动生成字幕文件的命令行工具-其它代码类资源...

    关闭 致敬爱的网友及本站会员的一封信 敬爱的小伙伴们大家好! 作为码农集市(coder100)平台的站长,我不得已采取这样的方式来和各位来到我们平台逛逛的小伙们做一次推心置腹的畅谈.真诚的希望您能够抽 ...

  2. ai自动生成字幕_使用AI对您的会议进行现场字幕

    ai自动生成字幕 Many people rely on captions every day. Unfortunately, not everything has captions; this of ...

  3. [tool] AI视频翻译 解决英文视频字幕问题(类似youtube自动生成字幕)

    [tool] AI视频翻译 解决英文视频字幕问题(类似youtube自动生成字幕) 参考文章: (1)[tool] AI视频翻译 解决英文视频字幕问题(类似youtube自动生成字幕) (2)http ...

  4. AI技术实践|用腾讯云录音文件识别让无字幕视频自动生成字幕

    试想一下,当我们在观看一段视频时,如果遇上字幕缺失,观感是不是会大打折扣? 近些年,短视频.直播等线上娱乐方式快速发展,直接拉动了旅游.电商.影视创作等行业新风潮:而要呈现出一段好的视频效果,不仅仅考 ...

  5. python自动生成字幕_自动生成字幕软件?

    其实把视频上传到 Youtube 就好了,前提是视频的声音清晰,它会自动生成字幕,然后再用 Downsub 之类的网站就可以把这个字幕抓下来: 还有一个网站, gosubtitle ,我只试过一次,给 ...

  6. 一键自动生成字幕、制作双语字幕,懒人必备

    随着现在短视频越来越火,剪辑视频.打轴听字幕越发成为一件费时费力的繁重工作. 多亏了语音识别等技术的快速进步,现在可以比较准确的通过智能设备自动将视频中的语音识别提取出来. 推荐一款在线制作字幕的工具 ...

  7. 为音视频自动生成字幕的python工具

    目录 为音视频自动生成字幕的 python 工具 autosub autosub3 安装 使用 为音视频自动生成字幕的 python 工具 autosub 是一个能自动为音视频生成字幕的 pytho ...

  8. 语音视频自动生成字幕在线工具介绍

    随着现在短视频越来越火,剪辑视频.打轴听字幕越发成为一件费时费力的繁重工作. 多亏了语音识别等技术的快速进步,现在可以比较准确的通过智能设备自动将视频中的语音识别提取出来. 推荐一款在线制作字幕的工具 ...

  9. [附下载]功能最强、高效易用的AI自动标注软件免费用了,兼容LabelImg格式xml,支持各种yolo、ssd、rcnn已训练模型以及OCR、形状匹配、轮廓匹配等各种定位方式来自动生成标注文件

    你将收获 掌握自动标注软件在Windows下系统配置方法 掌握利用灵活搜索来自动生成标注文件的方法 掌握利用训练好的网络模型来自动生成标注文件的方法 掌握利用OCR文字识别来自动生成标注文件的方法 适 ...

最新文章

  1. 聊聊EIGRP的自动汇总与手工汇总
  2. python网络爬虫权威指南 百度云-Python网络爬虫权威指南(第2版)
  3. 适合做公安网的php,gonganbeian.php
  4. mysql解释的type_mysql explain 的type解释
  5. SAP Spartacus internationalization(i18n) 的实现 - 关于多语言,翻译支持的实现
  6. java gui 连接mysql数据库
  7. 8. 字符串转换整数 (atoi)(正则表达式)
  8. html的动画效果实现无限轮播,利用 CSS3 实现的无缝轮播功能代码
  9. java中的i++和++i
  10. 教孩子学编程python语言pdf_教孩子学编程 PYTHON语言版 PDF
  11. 问题:宇视摄像机如何对接第三方录像机
  12. 填空什么的月牙_部编一年级上册语文第四单元知识梳理填空,附答案
  13. pytest web自动化 从百草园到三味书屋....
  14. XiaoZi's CrackMe
  15. 星际航行游戏流程(Unity 初学者)
  16. Jetson Nano、TX2等 conda 虚拟环境中使用TensorRT、gi等
  17. (斯坦福机器学习笔记)之经验风险最小化
  18. 剑指Offer对答如流系列 - 矩阵中的路径
  19. CISCO ASA 5520 snmp 协议启用
  20. 电子邮件乱码产生的主要原因及几种解决方法

热门文章

  1. Spark 实践——基于 Spark MLlib 和 YFCC 100M 数据集的景点推荐系统
  2. human3.6数据集
  3. mysql 变量 数据类型_MySQL(MySQL的数据类型)
  4. 古琴销售怎么做阳php学,古琴到底能否自学?如何才能学好古琴?
  5. 关于大学生如何轻松找到高薪工作
  6. 35岁大数据行业从业者,如何培养大数据核心竞争力
  7. 计算机专业教师资格证教学设计,教师资格证教案
  8. ip netns命令详解
  9. 3通道高清视频编码电路 转接IC GM7123:TTL转VGA芯片
  10. 多目视觉三维重建研究综述