一个文科生如何利用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段代码结合在一起,要求是:

  1. 检查本地文件夹:D:\oneDrive\1.douyin\trans
  2. 把里面的MP4文件,转换完成MP3文件
  3. 把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点感想:

  1. 这次尝试,最大的震撼是:亲自体验了一把ChatGPT的学习能力。它不知道的东西,把说明书、例子给它,它就能学会。真是太让人震撼了。
  2. 对待ChatGPT,可以采用 “得寸进尺” 的态度:一点一点地增加功能;不要幻想 “一蹴而就” ,一下子想实现所有的功能。
  3. 这玩意儿有点意思:能让一个不懂编程的小白,也能体验编程带来的便利。 今后,可能越来越多的人,会在AI的帮助下,实现自然语言编程,提高工作效率。

广告

欢迎加入《玩赚ChatGPT》付费社群,一起学习,发现不一样的玩法。

课程背景调研:如何快速、系统入门ChatGPT?——付费社群推荐

购买可点击链接:

https://sps.xet.tech/s/aqKdE

微信扫码:

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}")

近期文章

发表评论