【开源项目】自动字幕生成和字幕翻译

news/2024/7/10 18:51:01 标签: 开源

文章目录

  • 1. 安装ffmpeg
  • 2. 克隆项目
  • 3. 配置项目运行环境
  • 4. 填写配置文件
  • 5. 运行项目(仅使用CPU)

项目地址:Github - qinL-cdy/auto_ai_subtitle
项目原理:使用ffmpeg提取视频的音频,使用whisper将音频转写为字幕,使用translate将源语言字幕翻译成目标语言字幕。
说明:translate API免费1000行(行宽70字符),超出需要付费购买API

1. 安装ffmpeg

  • 下载构建好的ffmpeg。Windows版本下载。
  • 用7-zip解压文件,将解压目录下的bin目录对应的路径添加到环境变量
    • 在搜索框中搜索环境变量 > 编辑系统环境变量 > 环境变量 > 系统变量 > Path
    • 将bin目录对应的路径添加到Path中
  • win + R启动运行,输入cmd,在命令提示符中输入以下命令,出现下图所示内容即配置成功。
    ffmpeg -version
    

在这里插入图片描述

2. 克隆项目

  • 打开VSCode,点击Clone Git Repository ...。选择克隆的目标文件夹,克隆完成后打开文件夹。
    在这里插入图片描述

3. 配置项目运行环境

  • 使用conda创建虚拟环境(安装Anaconda、conda换源、pip换源可以去搜索)
    • 启动Anaconda Prompt
    • 输入以下命令创建虚拟环境
    conda create -n auto_ai_subtitle python=3.9 -y
    
    • 激活虚拟环境
    	conda activate auto_ai_subtitle
    
  • VSCode选择虚拟环境
    在这里插入图片描述
  • 右键main.py,点击打开集成终端,输入以下命令安装第三方库。
pip install -r requirements.txt

4. 填写配置文件

打开config.yaml,可以根据自己的实际情况设置相应的参数。

  • 语言简称参照链接后两位字母转小写。
  • 路径中不能有中文
    在这里插入图片描述

5. 运行项目(仅使用CPU)

  • 修改script/audio_tool.py为以下内容:
import ffmpeg
import subprocess

def audio_extract(input, output):
	ffmpeg.input(input, vn=None).output(output).run()

# 解决中文路径ffmpeg无法运行的问题
# def audio_extract(input_path, output_path):
# 	command = [
# 		'ffmpeg', 
# 		'-i', 'pipe:0',  # 从stdin读取输入
# 		'-vn',          # 仅提取音频
# 		output_path     # 输出文件路径
# 	]

# 	with open(input_path, 'rb') as f:
# 		subprocess.run(command, input=f.read())
  • 修改script/whisper_tool.py,添加verbose=True能显示转写过程。
    在这里插入图片描述

  • 在集成终端输入以下命令:

python main.py
  • 运行过程中出现以下警告可以忽略,因为默认使用FP16,但是CPU不支持FP16,程序自动会改成FP32。
    在这里插入图片描述

http://www.niftyadmin.cn/n/5399180.html

相关文章

仿真科普|CAE技术赋能无人机 低空经济蓄势起飞

喝一杯无人机送来的现磨热咖啡;在拥堵的早高峰打个“空中的士”上班;乘坐水陆两栖飞机来一场“陆海空”立体式观光……曾经只出现在科幻片里的5D城市魔幻场景,正逐渐走进现实。而推动上述场景实现的,就是近年来越来越热的“低空经…

如何将图片保存成视频(imageio、opencv和ffmpeg)

测试下来发现,imageio 速度比 cv2 的要慢,所以普通保存推荐 cv2,要gpu加速需要额外配置或者修改 imageio 底层也是调用的ffmpeg,以下是python代码 import imageio import os# 读取要保存为视频的图片 images [] for filename …

uniapp 部署h5,pdf预览

1.hubuilderx 打包h5。 2.上传部署包到服务器。 解压部署包:unzip h5.zip 。 3.nginx配置。 user root; worker_processes 1; #worker_cpu_affinity 0001 0010 0100 1000; #error_log logs/error.log; #error_log logs/error.log notice; error_log /var/l…

jenkins插件下载失败bug

如果遇到安装jenkins插件经常失败并报以下类似错误,很可能是因为jenkins国外官方插件地址下载速度非常慢,我们可以修改为国内插件地址。 java.io.IOException: Failed to load: SCM API Plugin (scm-api 676.v886669a_199a_a_) - Jenkins (2.361.4) or h…

便签软件哪个好用?好用便签怎么设置提醒?

在当今信息爆炸的时代,便签软件成为了人们生活中不可或缺的工具之一。那么,便签软件哪个好用呢?下面为您推荐几款备受好评的便签软件。首先是知名度极高的好用便签,它拥有强大的笔记功能、提醒功能和多端同步,让您随时…

从0到1使用C++实现一个模拟器-1-【实现最简CPU】

文章目录 uint64_tstdstd::arrayCPU和CU类构造函数size_tstatic_caststd::ifstreamriscv64-unknown-elf-objcopy -O binary add-addi add-addi.binriscv64-unknown-elf-gcc -Wl,-Ttext0x0 -nostdlib -o add-addi add-addi.s-wlstd::hex std::setw() std::setfill()各自的用法he…

K 个一组翻转链表 力扣

【玩转校招算法面试】第三天:链表中的节点每k个一组翻转(动画演示、手写 Java 代码、详细注释、LeetCode 高频算法题)_哔哩哔哩_bilibili 初始状态:1 -> 2 -> 3,pre null, cur 1保存当前节点的下一个节点&…

Ansible get_url模块 get_url模块用于将文件或软件从http、https或ftp下载到本地节点上

目录 常用参数:案例验证 常用参数: dest: 指定将文件下载的绝对路径—必须 url: 文件的下载地址(网址)—必须 url_username: 用于http基本认证的用户名 url_password: 用于http基本认证的密码 v…