一个文科生如何利用ChatGPT,将工作效率提高5倍
今天真是太兴奋了,通过让ChatGPT帮我写Python代码,把工作效率提高了5倍。
我是一个专业是俄语的文科生,Python编程小白。
知道编程能够提高工作效率,但是对编程还是心怀恐惧,觉得太难了。心里想着要学会Python,但是一直拖拉着,以没时间为借口,没有学。
最近有一个小项目是:把俄语视频,翻译成中文,并在视频上添加中文、俄文字幕。
通过引导ChatGPT,让它用Python写出了我需要的代码,实现了我需要的功能:把mp4的视频,直接转换成中文、俄文srt字幕文件。 节省了很多的时间。
最后的结果是:以前可能需要半小时的工作,用ChatGPT写的Python脚本,20秒就能完成。
文章目录
工作中的2个难点
在这项工作中,翻译其实是最简单的部分:有好多翻译软件,用机器翻译后,再修改一下,一般一个视频5分钟就能搞定翻译。
比较麻烦的是其它2部分工作:
1. 把俄语语音转化成文字。
我俄语的听力水平一般,很多俚语、陌生词汇,听不清。开始用的笨办法:在电脑上播放俄语,用手机的谷歌翻译,把语音转写为俄语文本。
后来找到了小语种俄语语音转文字的软件:realspeaker和云猫转码,可以直接把俄语语音转为文字。效率有了一定的提高。
2. 上字幕:重复工作
中文、英文,可以直接用剪映自动生成字幕,非常方便。 自动生成后,不对的地方,修改修改,就可以了。不用一切重头做起。
但是小语种就没有这么幸运了:无法识别。只能自己手动添加字幕。
添加字幕很简单,没有什么难度:视频中每说一句话,就添加一个字幕块,说话开始时,字幕显示;说话结束时,字幕也消失。
但是添加字幕非常麻烦,很耗时。
(图中的红圈就是字幕块,需要添加很多这样的字幕块)
折腾过程
我实在油兔布上,听一个叫tinyfool的博主,了解到openai有一个叫“whisper”的功能,能够识别绝大多数的语言。
第一次尝试:失败
我先是让它调用openai的api,用Python写一段代码,把一段俄语转化成文字。
它给我的回复是:openai现在没有这个功能。你要想用这个功能的话,需要安装一大堆的东西。
可怜我一个文科生,根本不知道它在说什么。
直觉是:哪里出了问题,如果一个东西这么麻烦,鬼才去用它。
第二次尝试:找到原因,成功
忽然想到,ChatGPT 的数据截止2021年9月,会不会是ChatGPT不知道:已经可以使用语音转文本了?
我就去跑到官网去看说明书(任何一个产品,都会配有详细的说明书)
我把语音转文本的说明书,还有那一段示例代码(虽然看不懂它是啥意思),粘贴到ChatGPT,让它学习。
然后,又用同样的要求:调用openai的api,用Python写一段代码,把一段俄语转化成文字。
怀着试一试的心态,把它写出来的代码,我放到vscode里运行了一下,竟然能行!!!真把俄语语音转换成了文字。
第三次尝试:优化—把mp4转化为mp3
因为考虑到mp4文件太大了,上传到ChatGPT,可能会慢。
所以我是手动用格式工厂,把MP4转化为mp3,再用上一步写的Python代码,把mp3转换为文字。
这样比较麻烦。我就尝试了一下,让ChatGPT生成Python代码,自动把mp4转换成mp3。
按照它的要求,先安装了一个叫moivepy的东西,然后在vscode运行了一下代码,竟然成了。
我的提示词是:
“你是一个Python程序员。我要求你写一段程序,把文件夹里的MP4视频文件,这个MP4文件夹地址:D:\oneDrive\1.douyin\trans
转换为MP3文件,保存到相同的文件夹里。”
第四次尝试:合并2个功能
第一步把mp3转换成了俄语文本;第二步把mp4转换成mp3。
我让ChatGPT把这2个功能合并在一起,实现自动转换mp3,自动转换为srt字幕功能
我的提示词是:
现在我要求你把这2段代码结合在一起,要求是:
- 检查本地文件夹:
D:\oneDrive\1.douyin\trans
- 把里面的MP4文件,转换完成MP3文件
- 把MP3文件,用openai的”whisper-1″模型处理,并输出带有时间戳的SRT格式,并保存到本地文件
D:\oneDrive\1.douyin\trans
里
这段代码,也运行成功了:mp4文件,就一下子变成srt字幕格式了
第五次尝试:俄语srt字幕自动翻译为汉语
srt字幕是俄语的,我想让ChatGPT把字幕翻译成汉语,这样就可以直接把俄语字幕、中文字幕,导入到剪映里编辑了。 又能节省一行一行翻译的时间。
我先是尝试了一下:看看它能不能翻译srt文件。
测试的结果是:ChatGPT能够直接翻译srt文件。
然后,我让ChatGPT把上面的几段代码,合成一段代码。又重新描述了一下我的所有要求。
最后,它生成了代码(源码在文末)。
运行了一下,竟然真能把mp4文件,直接变成中、俄文的srt文件。
小结
因为是Python小白,我不知道代码是什么意思,更不知道代码写的怎么样(有没有懂行的朋友,评价一下代码的质量)。
但是我知道的是,它把我的工作效率,直接提高了不止5倍。让我不再为那些繁琐、又不得不做的事情抓狂。
现在的结果是:以前可能需要半小时的工作,用ChatGPT写的Python脚本,20秒就能完成。
有3点感想:
- 这次尝试,最大的震撼是:亲自体验了一把ChatGPT的学习能力。它不知道的东西,把说明书、例子给它,它就能学会。真是太让人震撼了。
- 对待ChatGPT,可以采用 “得寸进尺” 的态度:一点一点地增加功能;不要幻想 “一蹴而就” ,一下子想实现所有的功能。
- 这玩意儿有点意思:能让一个不懂编程的小白,也能体验编程带来的便利。 今后,可能越来越多的人,会在AI的帮助下,实现自然语言编程,提高工作效率。
广告
欢迎加入《玩赚ChatGPT》付费社群,一起学习,发现不一样的玩法。
课程背景调研:如何快速、系统入门ChatGPT?——付费社群推荐
购买可点击链接:
微信扫码:
ChatGPT写的“把mp4视频转化为中俄文srt字幕”的源码:
import os
from moviepy.editor import *
import openai
# 设置 OpenAI API 密钥
api_key = "你的openai api 秘钥"
openai.api_key = api_key
# 文件夹路径
input_folder = "D:\\oneDrive\\1.douyin\\trans"
def translate_srt_content(srt_content, source_language, target_language):
response = openai.Completion.create(
engine="text-davinci-002",
prompt=f"Translate the following {source_language} SRT file content into {target_language}:\n\n{srt_content}\n\nTranslation:",
temperature=0.5,
max_tokens=1000,
top_p=1,
frequency_penalty=0,
presence_penalty=0,
)
return response.choices[0].text.strip()
# 遍历文件夹中的所有文件
for filename in os.listdir(input_folder):
# 检查文件是否为MP4格式
if filename.endswith(".mp4"):
# 提取文件名(不包括扩展名)
file_basename = os.path.splitext(filename)[0]
# 指定输出MP3文件的路径
mp3_output_path = os.path.join(input_folder, f"{file_basename}.mp3")
# 读取视频文件
video = VideoFileClip(os.path.join(input_folder, filename))
# 提取音频并保存为MP3文件
video.audio.write_audiofile(mp3_output_path)
# 转录音频文件为SRT格式
with open(mp3_output_path, "rb") as audio_file:
response = openai.Audio.transcribe(
model="whisper-1",
file=audio_file,
response_format='srt'
)
# 获取 SRT 转录内容
srt_transcription = response
# 将 SRT 转录写入文件
srt_output_path = os.path.join(input_folder, f"{file_basename}_russian.srt")
with open(srt_output_path, "w", encoding="utf-8") as file:
file.write(srt_transcription)
print(f"Russian SRT transcription saved to: {srt_output_path}")
# 翻译SRT内容为简体中文
translated_srt_content = translate_srt_content(srt_transcription, "Russian", "Simplified Chinese")
# 将翻译后的文本保存到新的SRT文件
translated_srt_path = os.path.join(input_folder, f"{file_basename}_chinese.srt")
with open(translated_srt_path, "w", encoding="utf-8") as file:
file.write(translated_srt_content)
print(f"Translated SRT file saved to: {translated_srt_path}")
发表评论