【实践】基于SakuraLLM的离线日文漫画及视频汉化

embedded/2025/2/4 3:58:16/
aidu_pl">

介绍

LLM

大型语言模型(英语:large language model,LLM),也称大语言模型,是由具有大量参数(通常数十亿个权重或更多)的人工神经网络组成的一类语言模型。在进行语言理解与分析(如文本分类、信息抽取)后,可以赋能用于语言生成(含文本创作、对话、机器翻译)、知识问答与推理等工作。

Qwen2.5

Qwen2.5是一款由阿里根据自己的预训练策略、优化目标和数据筛选方法,不断迭代,开源的基础模型。

SakuraLLM

SakuraLLM也在不断的迭代。通过SakuraLLM的介绍主页我们知道SakuraLLM目前的发布版本基于Qwen2.5进行微调,其宗旨是提供可控可离线自部署的、ACGN风格的日中翻译模型。

实践

得益于SakuraLLM提供高于网络词典的翻译质量,我们可以配合其他工具,在免费非商用的前提下,为我们实现漫画翻译以及日语视频生成中午字幕这些满足个人娱乐的功能。

前置准备

首先说一下博主的机器配置

显卡 ROG STRIX GeForce RTX® 4080 16GB GDDR6X 猛禽

CPU i7-13700KF 

内存 32.0 GB

获取翻译模型

首先这里介绍一下模型中的大模型中0.5B, 1.5B, 3B, 7B, 14B, 32B是什么意思

这些数字(0.5B, 1.5B, 3B, 7B, 14B, 32B)通常表示大语言模型(如GPT、BERT等)中的参数数量,单位是十亿(B代表“Billion”)。参数是模型学习的关键部分,它们决定了模型的复杂性和能力。具体来说:

  • 0.5B 表示模型有 5 亿个参数。
  • 1.5B 表示模型有 15 亿个参数。
  • 3B 表示模型有 30 亿个参数。
  • 7B 表示模型有 70 亿个参数。
  • 14B 表示模型有 140 亿个参数。
  • 32B 表示模型有 320 亿个参数。

随着参数数量的增加,模型的计算能力和表示能力通常也会提高,但这也意味着需要更多的计算资源和数据来训练模型。大模型(如 GPT-3、GPT-4)通常有数百亿甚至数千亿个参数。

目前发布的正式版模型如下,参考上述我的设备规格目前我选用的是sakura-14b-qwen2.5-v1.0-iq4xs.gguf

模型显存大小模型规模
sakura-7b-qwen2.5-v1.0-iq4xs.gguf8G/10G7B
sakura-14b-qwen2.5-v1.0-iq4xs.gguf11G/12G/16G14B
sakura-14b-qwen2.5-v1.0-q6k.gguf24G14B

p.s. 如果无法连接到HuggingFace服务器,可将链接中的huggingface.co改成hf-mirror.com,使用hf镜像站下载。

安装Python

因为对于大模型的丰富生态支持,因此大多数工具都是基于Python来开发,因此我们需要在官方网站下载并安装python-3.12.4

启动模型

为了更简化操作,我用使用了SakuraLLMServer来启动模型,根据提示把翻译模型放到文件夹中启动即可。

文件结构如下

  SakuraLLMServer\llama\...\00_Core.bat\01_1280_NP16.bat\sakura-14b-qwen2.5-v1.0-iq4xs.gguf\...
显存大小模型规模启动脚本
8G/10G7B01_1280_NP16.bat
11G14B01_1280_NP4.bat
12G14B01_1280_NP6.bat
16G/24G14B01_1280_NP16.bat

结合我的配置启动01_1280_NP16.bat脚本即可

下面两个功能的使用默认已经做好前置准备

漫画翻译

一张漫画使用程序翻译大概需要通过日文识别、日译中翻译、译文漫画重嵌3个步骤。

遵从不使用第三方整合下载(防病毒)的原则自行部署,目前我部署成功的项目是BallonsTranslator: 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑,如果我们使用BallonsTranslator进行漫画翻译,那么他具体的操作流程如下

使用本文描述的的部署方式,不想自己手动配置环境,需要能正常访问互联网

1. 从 MEGA 或 Google Drive 下载 BallonsTranslator_dev_src_with_gitpython.7z,正常来说执行launch_win.bat即可。

1.1 但是因为各种原因,有可能项目相关的lib没办法正常下载,因此在上述描述的数据载体中下载data 和 ballontrans_pylibs_win.7z,下载并放到所属文件夹即可

2.打开应用后配置Sakura,因为项目本身早已对SakuraLLM进行对接,下面的参数默认即可

3.选择我们图片所在的文件夹点击RUN

应用日志

日语视频生成中文字幕

一个视频使用程序翻译大概需要通过让提取音频、识别音频提取对话内容、对话字幕进行日译中3个步骤。

目前我部署成功的项目是VoiceTransl,使用VoiceTransl进行字幕生成与翻译,那么他具体的操作流程如下

1. 根据提示下载最新版本的VoiceTransl

1.1 把sakura的模型放置到llama文件夹下

文件结构如下

_internal/llama/
sakura-14b-qwen2.5-v1.0-iq4xs.gguf

2. VoiceTransl本身不带语音识别模型的因此我们要自行下载 faster-whisper-large-v3 、DLL文件和EXE文件 ,放到whisper-faster文件夹下

文件结构如下

faster-whisper-large-v3/config.jsonmodel.binpreprocessor_config.jsontokenizer.jsonvocabulary.json
cublas64_11.dll
cublasLt64_11.dll
cudnn_cnn_infer64_8.dll
cudnn_ops_infer64_8.dll
zlibwapi.dll
whisper-faster.exe

3. 设置模型

4. 选择需要翻译的视频

程序会在调用faster-whisper-large-v3提取音频内容后,自行调用sakuraLLm进行翻译

不过通过开源模型来进行识别音频,那么就代表了不一定能进行百分百的对话识别,如我使用的这个视频【IGN】PC版《最终幻想7 重生》游戏特性介绍视频识别到的对话内容大概只有60%,可能是因为有背景配乐的原因。因此要完整的视频字幕我们需要或多或少的给翻译的字幕文件进行对话内容步充。

AiNiee

这里我发现的一个问题,就是VoiceTransl自行调用模型文件进行翻译的效率比较一般,鉴于我对字幕srt文件的认识,他本质上是一个txt文件,因此我打算利用AiNiee对txt文件进行翻译,发现测试效率比VoiceTransl自己调用的方式高,使用AiNiee进行汉化的方式如下:

1. 下载并解压AiNiee

2. 使用SakuraLLM接口,设置项目类型为Txt小说文件,确保SakuraLLMServer已正常启动

2.  把字幕的.srt后缀改成的.txt文件后缀放到AiNiee的input文件夹,开始翻译即可,翻译成功后文件会放到output文件夹

感悟

目前开源大模型,更多的是适合给自己赋能,希望后续能通过更多的了解带来更多好玩的内容

参考:大型语言模型WIKI

Qwen2.5: 基础模型

【LLM】从零开始训练大模型

SakuraLLM

【VoiceTransl】离线AI全自动烤肉 支持多语言 支持字幕合成


http://www.ppmy.cn/embedded/159362.html

相关文章

3 Flink 运行架构

3 Flink 运行架构 1. Flink 程序结构2. Flink 并行数据流3. Task 和 Operator chain4. 任务调度与执行5. 任务槽和槽共享 1. Flink 程序结构 Flink 程序的基本构建块是流和转换(请注意,Flink 的 DataSet API 中使用的 DataSet 也是内部流 )。…

react redux监测值的变化

现在想了解如何在React Redux中监测值的变化。他们之前已经讨论过使用useSelector来获取状态,但可能对如何有效监听状态变化的具体方法还不够清楚。需要回顾之前的对话,看看用户之前的需求是什么。 用户之前的问题涉及将Vue的响应式设备检测代码转换为Re…

Spring Boot 基础开发:实现 RESTful API 开发

前言 在现代 Web 开发中,RESTful API 已经成为前后端分离架构的核心。Spring Boot 提供了强大的支持,使得 RESTful API 的开发变得高效且简洁。本文将从以下几个方面详细讲解如何在 Spring Boot 中实现 RESTful API 开发: RestController 设…

[HOT 100] 2824. 统计和小于目标的下标对数目

文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 2824. 统计和小于目标的下标对数目 - 力扣(LeetCode) 2. 题目描述 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target ,请你…

每天学点小知识之设计模式的艺术-策略模式

行为型模式的名称、定义、学习难度和使用频率如下表所示: 1.如何理解模板方法模式 模板方法模式是结构最简单的行为型设计模式,在其结构中只存在父类与子类之间的继承关系。通过使用模板方法模式,可以将一些复杂流程的实现步骤封装在一系列基…

小红的小球染色期望

B-小红的小球染色_牛客周赛 Round 79 题目描述 本题与《F.R小红的小球染色期望》共享题目背景,但是所求内容与范围均不同,我们建议您重新阅读题面。 有 n 个白色小球排成一排。小红每次将随机选择两个相邻的白色小球,将它们染成红色。小红…

(CICD)自动化构建打包、部署(Jenkins + maven+ gitlab+tomcat)

一、平滑发布与灰度发布 **什么叫平滑:**在发布的过程中不影响用户的使用,系统不会因发布而暂停对外服务,不会造成用户短暂性无法访问; **什么叫灰度:**发布后让部分用户使用新版本,其它用户使用旧版本&am…

第25节课:前端缓存策略—提升网页性能与用户体验

目录 前端缓存的重要性HTTP缓存HTTP缓存的基本原理常见的HTTP缓存头Cache-ControlExpiresETagLast-Modified HTTP缓存的类型强缓存协商缓存 服务端渲染与SSR服务端渲染(SSR)简介SSR的优势SSR的挑战实践:使用SSR框架构建Web应用Next.js安装Nex…