autocut
autocut copied to clipboard
md 和 src 句子太长,能否自动断句
转录某个视频生成.srt和.md结果识别差不多是正确的。但我中间停顿比较少,使得字幕连成一片。能否有好的预处理方法,能合适的断句。
00:01:23,000 --> 00:01:51,000 好了,这就是我们创建出来的数据,还有包括它的一条预置线。然后我们拖动这个预置线的时候,就可以看到它对应的数据的位置就发生了,当我们拖动它的时候,就可以看到它的预置的位置,它就给你实时的显示出来了。
7 00:01:51,000 --> 00:02:12,000 好,这个我们怎样去查看这条具体的,在代码中获得具体的这个预置呢?然后我们可以看到我们创建的这个数据邮标对,数据预置对象呢,是叫DRAG9,然后我们也给一个show这样一个方法,就可以是表示它是实时的在图像中显示。
突然发现视频 cut 之后,字幕文件没有 cut
简单的方式可以用标点符号断, 设一个阈值, duration用字数比例做系数就行了, 我之前做项目尝试过, 对中文来说效果还行. vad是有这种小缺陷.
简单的方式可以用标点符号断, 设一个阈值, duration用字数比例做系数就行了, 我之前做项目尝试过, 对中文来说效果还行. vad是有这种小缺陷.
CV 的工具我好能懂一些,语音识别的工具箱我是完全不懂。通过设定阈值,应该是可行,但找不到设定参数的代码位置。
如果辛辛苦苦矫正的 src 文件没法被 cut 同步,后期还得再来一次字幕生成&矫正,也费时。
简单的方式可以用标点符号断, 设一个阈值, duration用字数比例做系数就行了, 我之前做项目尝试过, 对中文来说效果还行. vad是有这种小缺陷.
有兴趣的话欢迎PR这个feature
@chenxinfeng4 你可以试试 --whisper-model medium
甚至 large
不同的模型有不同的长度偏好
@chenxinfeng4 你可以试试
--whisper-model medium
甚至large
不同的模型有不同的长度偏好
我之前展示的是medium的结果,我又试了 large 模型——断句更短,效果很好多。但对于“视频”字幕来说,还是稍微有点长。可能是这些模型并没有专门为了配字幕而fineture吧。
18
00:01:22,760 --> 00:01:34,760
这就是我们创建出来的数据,还有包括它的一条预支线
19
00:01:34,760 --> 00:01:51,760
当我们拖动预支线的时候,就可以看到它对应的数据的位置
20
00:01:51,760 --> 00:01:57,760
我们怎样去查看这条在代码中获得的具体的预支呢?
21
00:01:57,760 --> 00:02:04,760
我们可以看到我们创建的数据预支对象叫drugline
22
00:02:04,760 --> 00:02:11,760
跟一个show这样的方法就可以表示它是实时的在图像中显示
一个办法是先按照标点split,这样前两句就可以变短。
后面的话可以先切词,然后按均匀长度分开就是。例如
import jieba
list(jieba.cut('我们怎样去查看这条在代码中获得的具体的预支呢?'))
输出
['我们',
'怎样',
'去',
'查看',
'这条',
'在',
'代码',
'中',
'获得',
'的',
'具体',
'的',
'预支',
'呢',
'?']
autocut 的识别精度和呈现效果已经不错,对我来说是一个“惊喜”。瑕疵是有的,离专业的字幕调试有很长的路。但对于我们既做AI,又愿意剪片子的人来说,autocut 是一个很有趣有用的方面,也让我去畅享未来AI的应用。
或许 autocut 的后继者能像“copilot” 跨界,引导视频创作产业吧。
代码很优雅,向您看齐。Issue closed。
简单的方式可以用标点符号断, 设一个阈值, duration用字数比例做系数就行了, 我之前做项目尝试过, 对中文来说效果还行. vad是有这种小缺陷.
CV 的工具我好能懂一些,语音识别的工具箱我是完全不懂。通过设定阈值,应该是可行,但找不到设定参数的代码位置。
如果辛辛苦苦矫正的 src 文件没法被 cut 同步,后期还得再来一次字幕生成&矫正,也费时。
- 不好意思, 我没表达清楚让您误会了, 我的意思是在生成srt文件前的逻辑上加一步预处理, 用一个限制大小的滑动窗口简单处理一下. 模型本身似乎没有特定对中文长度的参数.
- P.S. 我其实是做业务开发的, AI相关其实一般只能看得懂API :) 只是早前用paddlepaddle的时候恰巧学习了一点语音模型的知识, 不过我体验下来whisper已经比paddle-speech强太多了, paddle-speech是需要手动做vad的, 输入文件稍微大一点了甚至直接无法工作.
- 我已经将这部分逻辑提交了pr, 等李老师审核过后您可以再尝试一下.
简单的方式可以用标点符号断, 设一个阈值, duration用字数比例做系数就行了, 我之前做项目尝试过, 对中文来说效果还行. vad是有这种小缺陷.
CV 的工具我好能懂一些,语音识别的工具箱我是完全不懂。通过设定阈值,应该是可行,但找不到设定参数的代码位置。 如果辛辛苦苦矫正的 src 文件没法被 cut 同步,后期还得再来一次字幕生成&矫正,也费时。
- 不好意思, 我没表达清楚让您误会了, 我的意思是在生成srt文件前的逻辑上加一步预处理, 用一个限制大小的滑动窗口简单处理一下. 模型本身似乎没有特定对中文长度的参数.
- P.S. 我其实是做业务开发的, AI相关其实一般只能看得懂API :) 只是早前用paddlepaddle的时候恰巧学习了一点语音模型的知识, 不过我体验下来whisper已经比paddle-speech强太多了, paddle-speech是需要手动做vad的, 输入文件稍微大一点了甚至直接无法工作.
- 我已经将这部分逻辑提交了pr, 等李老师审核过后您可以再尝试一下.
试试这个库? https://github.com/dongrixinyu/JioNLP/wiki/Gadget-%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3#%E6%96%87%E6%9C%AC%E5%88%86%E5%8F%A5 这里应该得考虑处理各种标点,只有书名号以及书名号中的标点、间隔号、连接号、具有特殊含义的词语的引号可以出现在字幕中;所以不应该暴力直接分割,得考虑一下书名号等
分句之后音频时间的划分是不是可以 可以在先按字数比例确定大概时间点后;在考虑这个时间点前后一段时间,在整个这一段中找到波谷当做划分点是不是能再减小误差呢?
虽然说15字是一般的字幕字数上限;但是其实每句划分该是要根据内容来不太应该随便断开;我目前想法是分词后对应时间的时候也考虑音频的波峰波谷,文本跟音频的波峰基本能一一对应,这样来找对应划分时间点应该更准确一点。
以及这个issue是不是可以再打开,大家一起看看这个问题有没有更优的做法呢?
简单的方式可以用标点符号断, 设一个阈值, duration用字数比例做系数就行了, 我之前做项目尝试过, 对中文来说效果还行. vad是有这种小缺陷.
CV 的工具我好能懂一些,语音识别的工具箱我是完全不懂。通过设定阈值,应该是可行,但找不到设定参数的代码位置。
如果辛辛苦苦矫正的 src 文件没法被 cut 同步,后期还得再来一次字幕生成&矫正,也费时。
发现确实有这个问题,如果修改md文件的话只会依赖md剪切,srt没动,还得再手动处理;我刚搞了srt转md,等下把srt剪切也顺便搞下,不然确实难受了
简单的方式可以用标点符号断, 设一个阈值, duration用字数比例做系数就行了, 我之前做项目尝试过, 对中文来说效果还行. vad是有这种小缺陷.
CV 的工具我好能懂一些,语音识别的工具箱我是完全不懂。通过设定阈值,应该是可行,但找不到设定参数的代码位置。 如果辛辛苦苦矫正的 src 文件没法被 cut 同步,后期还得再来一次字幕生成&矫正,也费时。
发现确实有这个问题,如果修改md文件的话只会依赖md剪切,srt没动,还得再手动处理;我刚搞了srt转md,等下把srt剪切也顺便搞下,不然确实难受了
https://github.com/mli/autocut/pull/18
剪辑后会生成新的srt
简单的方式可以用标点符号断, 设一个阈值, duration用字数比例做系数就行了, 我之前做项目尝试过, 对中文来说效果还行. vad是有这种小缺陷.
CV 的工具我好能懂一些,语音识别的工具箱我是完全不懂。通过设定阈值,应该是可行,但找不到设定参数的代码位置。 如果辛辛苦苦矫正的 src 文件没法被 cut 同步,后期还得再来一次字幕生成&矫正,也费时。
发现确实有这个问题,如果修改md文件的话只会依赖md剪切,srt没动,还得再手动处理;我刚搞了srt转md,等下把srt剪切也顺便搞下,不然确实难受了
这个挺好的。本来我也是想实现这个。就是在最终的字幕生成上,可以先转成 md 编译,然后再转回去
简单的方式可以用标点符号断, 设一个阈值, duration用字数比例做系数就行了, 我之前做项目尝试过, 对中文来说效果还行. vad是有这种小缺陷.
CV 的工具我好能懂一些,语音识别的工具箱我是完全不懂。通过设定阈值,应该是可行,但找不到设定参数的代码位置。 如果辛辛苦苦矫正的 src 文件没法被 cut 同步,后期还得再来一次字幕生成&矫正,也费时。
发现确实有这个问题,如果修改md文件的话只会依赖md剪切,srt没动,还得再手动处理;我刚搞了srt转md,等下把srt剪切也顺便搞下,不然确实难受了
这个挺好的。本来我也是想实现这个。就是在最终的字幕生成上,可以先转成 md 编译,然后再转回去
md和srt各有优势吧。md编辑内容会好搞点,但是调整对应的时间在srt上好做一些,借助Arctime软件啥的很好调整。支持单个调整,整体偏移等等。 https://arctime.org/
https://arctime.org/
听过说这个,没用过。他的字幕生成好像是收费的吧?几年前用过剪映,能免费生成字幕,但对长视频编辑比较吃力一点。
没用过他的字幕生成,一直都是只用他的打轴和字幕编辑,都是免费的
---原始邮件--- 发件人: "Mu @.> 发送时间: 2022年11月11日(周五) 上午10:29 收件人: @.>; 抄送: "Qianhe @.@.>; 主题: Re: [mli/autocut] md 和 src 句子太长,能否自动断句 (Issue #11)
https://arctime.org/
听过说这个,没用过。他的字幕生成好像是收费的吧?几年前用过剪映,能免费生成字幕,但对长视频编辑比较吃力一点。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
之后有时间的话可以做一个文档,讲下常见录屏、录像,和用编译软件做最后的一些精调。方便没有太多视频编辑经验的同学。
简单的方式可以用标点符号断, 设一个阈值, duration用字数比例做系数就行了, 我之前做项目尝试过, 对中文来说效果还行. vad是有这种小缺陷.
CV 的工具我好能懂一些,语音识别的工具箱我是完全不懂。通过设定阈值,应该是可行,但找不到设定参数的代码位置。 如果辛辛苦苦矫正的 src 文件没法被 cut 同步,后期还得再来一次字幕生成&矫正,也费时。
- 不好意思, 我没表达清楚让您误会了, 我的意思是在生成srt文件前的逻辑上加一步预处理, 用一个限制大小的滑动窗口简单处理一下. 模型本身似乎没有特定对中文长度的参数.
- P.S. 我其实是做业务开发的, AI相关其实一般只能看得懂API :) 只是早前用paddlepaddle的时候恰巧学习了一点语音模型的知识, 不过我体验下来whisper已经比paddle-speech强太多了, paddle-speech是需要手动做vad的, 输入文件稍微大一点了甚至直接无法工作.
- 我已经将这部分逻辑提交了pr, 等李老师审核过后您可以再尝试一下.
试试这个库? https://github.com/dongrixinyu/JioNLP/wiki/Gadget-%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3#%E6%96%87%E6%9C%AC%E5%88%86%E5%8F%A5 这里应该得考虑处理各种标点,只有书名号以及书名号中的标点、间隔号、连接号、具有特殊含义的词语的引号可以出现在字幕中;所以不应该暴力直接分割,得考虑一下书名号等
分句之后音频时间的划分是不是可以 可以在先按字数比例确定大概时间点后;在考虑这个时间点前后一段时间,在整个这一段中找到波谷当做划分点是不是能再减小误差呢?
虽然说15字是一般的字幕字数上限;但是其实每句划分该是要根据内容来不太应该随便断开;我目前想法是分词后对应时间的时候也考虑音频的波峰波谷,文本跟音频的波峰基本能一一对应,这样来找对应划分时间点应该更准确一点。
以及这个issue是不是可以再打开,大家一起看看这个问题有没有更优的做法呢?
- 感谢指点, 已经结合做了改进, AI相关实属门外汉.
- 关于"波峰波谷", VAD本身也利用到了这个来做切割, 再细微的变化捕捉恐怕不容易, 尤其whisper用的silero-vad已经是较为优秀的实现
- 后续我先进一步做分词(长单句)的优化