大家好,我是Feng,欢迎和我一起探索使用AI相关技术。
在之前的一篇文章 AI探索实践1- 使用大模型情感分析,我们一起了解通过编写合适的prompt的,可以利用大模型的情感分析的能力,来为我们提供客户关系管理、客户服务自动化等实际的业务帮助。
本篇文章,是介绍我如何利用AI的可提示性和语言翻译能力,来快速为一个视频文件增加字幕(单/双语)的方法。
一、遇到的问题
今天早些时候,我在将一个视频文件分享到社区时遇到了一个问题。这个视频讲解的是Google发布的Gemini1.5的介绍视频。视频有这样的特点:
- 没有字幕
- 英语解说
问题来了:
- 我听不懂视频的英语!
- 我很想了解这个视频到底在讲解什么!!
- 我想给这个视频增加中文字幕,但我一是翻译不好,二是根本不会视频的编辑!!!
二、解决过程
前段时间曾经看到过小红书上的视频,讲通过手机App来快速视频编辑,但当时没有在意看过就过了。现在到用时,才有点懊恼自己为什么没有收藏起来。
2.1 找资料
于是 Google了一些资料,其中就有和曾看到的视频很相似的方法。大概有这么几种方法:
-
剪映 + 网易见外工作台
实现原理是:
- 通过剪映客户端,提取出视频文件的原语的字幕文件
- 然后通过网易见外工作台提供的翻译功能来翻译字幕内容。
- 将翻译好的字幕内容,存入新的字幕文件中(.srt)
- 通过剪映客户端,将这个新的字幕文件附加到视频
-
pyTranscriber + 翻译软件 实现原理和上面的类似,只不过使用的是开源软件来提取音轨为原语的字幕文件。
-
剪映 + 翻译软件
-
剪映 + ChatGPT。ChatGPT提供翻译只能。
2.2 总结核心逻辑
总结一下,为视频增加字幕的核心逻辑是:
- 通过工具提取视频文件的音轨内容生成字幕并导出原生语言的字幕文件
- 通过工具将原生语言字幕文件内容,翻译为目标语言
- 将翻译后的新字幕文件内容,附加到视频,导出为新的视频
2.3 技术选型
既然明白了核心逻辑,那么下一步就是做技术选型。
首先,去除了老牌的翻译产品比如金山、网易等。这里产品翻译单词还行,但是整句的话,我信心不足。
其次,使用开源软件提取音轨的方式也被放弃。产品体验和成熟度来说,我更相信字节出的剪映。事实证明,我在安装了pyTranscirber和剪映2款软件,并使用体验后。也验证了我的想法。剪映免费版就已经很好的满足我的需求,开源的pyTranscirber无论是界面,还是功能都差的远。
最重要的,我想使用AI来解决问题。 但是ChatGPT需要魔法,所以必须使用国内的模型。 我经常使用国内的模型有:kimi(月之暗面出品)、百川、文心一言。随手就用文心一言开始尝试,结果让我又气又笑,视频1分多钟长度,字幕文件大概200行左右,文心一言居然:
- 上下文长度有限,你必须重复给出提示语才能继续翻译
- 翻译的中后段,开始了"正儿八经的胡说八道",翻译后的内容不知道在说什么
结合我之前的经历,我最后的选型就是:剪映 + kimi。
kimi支持的上下文足够长,确保一次能够翻译到位。这其中给kimi的prompt其实有个技巧,利用给大模型示例的方法,可以让大模型能够更好的按你的想法反馈内容。
我的prompt是:
rust
请帮我把这段英文字幕文件,改为中英文字幕文件。保留英文,中文另起一行,格式例如如下:
1 00:00:00,633 --> 00:00:03,500
英文
中文
以下是我提供的英文字幕文件:
1 00:00:00,633 --> 00:00:03,500
this is a demo of long context understanding
2 00:00:03,500 --> 00:00:06,033
an experimental feature in our newest model
3 00:00:06,033 --> 00:00:08,033
Gemini 15 Pro
4 00:00:08,866 --> 00:00:09,500
we'll walk through
5 00:00:09,500 --> 00:00:11,833
a screen recording of example prompts
6 00:00:11,866 --> 00:00:14,500
using a 44 minute Buster Keaton film
7 00:00:14,500 --> 00:00:17,700
which comes out to over 600 thousand tokens
... (更多就省略了)
这个prompt的技巧是,给大模型一个格式的提示。也就是:
lua
1 00:00:00,633 --> 00:00:03,500
英文
中文
大模型会根据这个格式的提醒,在"英文"处,保留原有的字符。在"中文"处进行翻译并增加内容。当然,你也可以把格式改成你需要的,比如只保留中文。
得到了包含中英文内容的字幕文件,再通过剪映增加进去,最后得出了我希望的视频:
欢迎订阅微信公众号"全栈技术探索",和我一起探索AI世界。