Skip to content

speauty/anto

Folders and files

NameName
Last commit message
Last commit date
May 24, 2023
May 25, 2023
Aug 6, 2024
Aug 6, 2024
Feb 5, 2024
Aug 6, 2024
Aug 6, 2024
Aug 6, 2024
Apr 25, 2023
Sep 23, 2023
Sep 23, 2023
May 4, 2023
Mar 13, 2023
Aug 6, 2024
May 25, 2023
Apr 14, 2023
Oct 11, 2023
Oct 11, 2023
Mar 23, 2023

Repository files navigation

ANTO-不专业字幕翻译的Windows桌面应用

作为一名临时搬运工,搞个字幕翻译工具,一点也不过分~是吧

写在前面

我是21年底才接触到油管搬运。不知出于什么原因,看了UP主@神经元猫搬运翻译的Cherno C++ 中文,感觉TheCherno挺有趣的,就萌生了搬运他的OpenGL教程,然后就是游戏引擎等。刚开始,特别费人,使用剪映的智能字幕进行音频识别并导出SRT字幕。

由于分段很乱,需要人工调整,然后挨个翻译。遇到陌生单词,还要去查一下。但是吧,后来觉得效率低得令人发指。既然有智能字幕,那么就有智能翻译,然后,就了解到了各种机器翻译。看着每月的免费额度,完全可以操作一下。那么,就开始着手这款应用的研发。并不复杂,初版几天就搞定了,主要还是对框架不太熟悉,而且有些场景不太了解,大多都是后面慢慢完善。

用,是能用了,但是,应该还有很大提升的空间。比如,有朋友提到的AI翻译,以及通知和托盘等。

加油~

框架目录

主要采用lxn/walk框架实现的,受限于框架仅支持Windows,最近试过用fyne重写,其实主要功能都写完了,但是,有很多小问题,还是弃了。以下是项目的整体目录(可能有变动):

├─.idea 	# Goland的项目记录,已忽略                     
├─.run  	# Goland的Run/Debug配置,其中包含一个运行的配置,我日常开发使用的
├─bin   	# 编译目录,已忽略                     
│  ├─assets	# 依赖的静态资源目录
│  └─logs	# 运行日志目录
├─bootstrap	# 一些初始化安装实现目录
├─cfg		# 配置目录,采用spf13/viper加载yml配置文件(默认是可执行文件同级目录下的cfg.yml)
├─common 	# 公共目录,现在放了一些数据结构定义
├─cron		# 内置任务
│  ├─detector 	# SRT检测
│  ├─reader 	# SRT读取
│  ├─translate 	# SRT翻译
│  └─writer 	# SRT写入
├─dependency 	# 依赖目录
│  ├─repository # 服务管理仓库
│  └─service 	# 依赖的服务
│      └─translator 			# 翻译服务
│          ├─ali_cloud_mt    	# 阿里云翻译
│          ├─baidu 				# 百度翻译
│          ├─caiyunai       	# 彩云小译 
│          ├─deepl 				# DeepL翻译
│          ├─huawei_cloud_nlp 	# 华为云翻译
│          ├─ling_va 			# LingVA翻译
│          ├─niutrans 			# 小牛翻译
│          ├─openapi_youdao 	# 有道智云翻译
│          ├─tencent_cloud_mt 	# 腾讯云翻译
│          └─youdao 			# 有道翻译
├─lib 		# 核心库
│  ├─log 	# 日志类实现, 二次包装zap
│  ├─nohup 	# 常驻进程模拟
│  ├─srt 	# SRT解析等
│  └─util 	# 工具函数
└─platform 		# 平台
    └─win 		# windows
        ├─page 	# 页面
        └─ui 	# UI包装
            ├─handle 	# 操作包装
            ├─msg 		# 弹窗
            └─pack 		# 组件包装

任务列表

  • 集成lxn/walk桌面GUI库(才把fyne清理了,那个编译运行太慢了,而且Win下,依赖环境有点。。。),这个要抽一波,不然用起来,小难受;
  • 实现静态界面(还是不大会多窗口模式,估计会照旧采用Widget的显示来模拟多页面,也可能还是单页);
    • 常用配置本地缓存(文件),就我最近的使用体验来看,不想再输密钥了;
    • 增加全量和增量翻译模式区分,防止重复翻译,浪费资源;
    • 增加批量翻译模式(挂机,一直跑),那个列表有点小烦,后面没有单独放置操作的列;
  • 实现srt文件解析和压缩(这块好搞,我感觉都写了好几次了);
  • 接入上游翻译服务(如果有什么好的免费的服务,也可以给我说);

应用预览

应用启动

设置界面