From 493016ea753a6cc20f0919c10feed9e2f0aae3d4 Mon Sep 17 00:00:00 2001 From: AuYang261 <459461160@qq.com> Date: Mon, 8 Apr 2024 18:07:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=87=AA=E5=8A=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=AD=97=E5=B9=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- README.md | 45 ++++++++++++++++++++++++++++----- gen_caption.py | 38 +++++++++++++++------------- md/README/2024-04-08_17-42.png | Bin 0 -> 63637 bytes requirements-whisper.txt | 2 ++ requirements.txt | 2 -- 6 files changed, 62 insertions(+), 28 deletions(-) create mode 100644 md/README/2024-04-08_17-42.png create mode 100644 requirements-whisper.txt diff --git a/.gitignore b/.gitignore index 3966cdf..a41f426 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ old/ *.exe build/ dist/ -*.spec \ No newline at end of file +*.spec +whisper_models/ diff --git a/README.md b/README.md index 3a2b5eb..b45a1ae 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,32 @@ ![image-20230926124922726](md/README/image-20230926124922726.png) +## 自动生成字幕 + +本项目提供自动生成字幕功能,使用openai的[whisper](https://github.com/openai/whisper)项目及其模型在本地进行语音转文字生成字幕。 + +最好使用GPU运行,否则速度较慢。 + +由于涉及到的库较多,打包生成的可执行文件较大,目前暂不发布打包的可执行文件,需要python环境运行,配置python环境见下文依赖部分。 + +运行gen_caption.py为指定视频生成字幕: + +```bash +python gen_caption.py video_path +``` + +或输入数字选择视频: + +```bash +python gen_caption.py +``` + +![2024-04-08_17-42](md/README/2024-04-08_17-42.png) + +等待程序运行完成,生成的字幕文件为`.srt`格式,与视频文件在同级目录下,用支持字幕的播放器打开视频即可看到带字幕的视频。 + +tips: 生成字幕的时间较长,可以先观看视频,字幕生成好了再重新打开视频享受字幕。使用GPU大约需要几分钟,若无GPU则不建议使用本项目提供的字幕功能,可自行寻找其他生成字幕的工具。 + ## 依赖 * ffmpeg,已在Release中提供。若在Linux环境下运行,需手动安装ffmpeg: @@ -35,15 +61,22 @@ sudo apt update sudo apt install ffmpeg ``` -*若想用python环境运行,需安装这些依赖* +*若想用python环境运行,需安装以下依赖* * python,[下载](https://www.python.org/ftp/python/3.9.4/python-3.9.4-amd64.exe)并安装 * python第三方库requests。打开命令行(按win+r,在打开的窗口中输入cmd,回车),运行如下命令安装: - ```bash - pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple - ``` +```bash +pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple +``` + +**若使用GPU运行自动生成字幕功能,需要先安装cuda版本的pytorch,具体安装方法见[pytorch官网](https://pytorch.org/get-started/locally/)** + +安装whisper:(依赖于pytorch,若未安装pytorch,会自动安装,但是cpu版本) +```bash +pip install -r requirements_whisper.txt -i https://pypi.tuna.tsinghua.edu.cn/simple +``` ## 注意 @@ -61,7 +94,5 @@ sudo apt install ffmpeg pip install pyinstaller # 打包 pyinstaller -F main.py +pyinstaller -F gen_caption.py ``` - -## 语音转文字 - diff --git a/gen_caption.py b/gen_caption.py index 31bb6d0..36177c0 100644 --- a/gen_caption.py +++ b/gen_caption.py @@ -1,7 +1,8 @@ import whisper import time from zhconv import convert # 简繁体转换 -# from moviepy.editor import VideoFileClip +import sys +import os def seconds_to_hmsm(seconds): @@ -29,30 +30,28 @@ def seconds_to_hmsm(seconds): def main(): # 视频文件路径 - video_path = 'output/深度学习-video/深度学习-任雪梅-第4周 星期三 第4大节.mp4' - # 输出音频文件路径 - # audio_output_path = 'output/audio.mp3' + if len(sys.argv) >= 2: + video_path = sys.argv[1] + else: + files = [] + for dirpath, dirnames, filenames in os.walk('output/'): + for filename in filenames: + if filename.endswith('.mp4'): + files.append(os.path.join(dirpath, filename)) + for i, f in enumerate(files): + print(i, ":", f) + video_path = files[eval(input('select a video file by input a num: '))] - # # 加载视频文件 - # video = VideoFileClip(video_path) - - # # 30秒的音频 - # audio = video.audio.subclip(60, 2*60) - - # # 保存音频文件 - # audio.write_audiofile(audio_output_path) - - # # 释放资源 - # video.close() + audio_path = video_path.replace("mp4", "m4a") + cmd = f"ffmpeg -i '{video_path}' -vn -ar {whisper.audio.SAMPLE_RATE} '{audio_path}'" + os.system(cmd) model = whisper.load_model("base", download_root="whisper_models/") start = time.time() - result = model.transcribe(video_path, verbose=False, language="zh") + result = model.transcribe(audio_path, verbose=False, language="zh") print("Time cost: ", time.time() - start) - for segment in result["segments"]: - print(segment["start"], segment["end"], segment["text"]) # 写入字幕文件 with open(video_path.replace("mp4", "srt"), 'w', encoding='utf-8') as f: i = 1 @@ -63,6 +62,9 @@ def main(): i += 1 f.write(convert(r['text'], 'zh-cn')+'\n') # 结果可能是繁体,转为简体zh-cn f.write('\n') + + # 删除音频文件 + os.remove(audio_path) if __name__ == '__main__': diff --git a/md/README/2024-04-08_17-42.png b/md/README/2024-04-08_17-42.png new file mode 100644 index 0000000000000000000000000000000000000000..2d4ec4b76650bb7a679c429f5e2d0c16ed2c278f GIT binary patch literal 63637 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 literal 0 HcmV?d00001 diff --git a/requirements-whisper.txt b/requirements-whisper.txt new file mode 100644 index 0000000..640ffc4 --- /dev/null +++ b/requirements-whisper.txt @@ -0,0 +1,2 @@ +openai-whisper +zhconv diff --git a/requirements.txt b/requirements.txt index e6a0d0e..f229360 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1 @@ requests -openai-whisper -zhconv