{"id":26628330,"url":"https://github.com/buxuku/smartsub","last_synced_at":"2025-05-14T08:05:50.502Z","repository":{"id":240904585,"uuid":"803733455","full_name":"buxuku/SmartSub","owner":"buxuku","description":"「妙幕」是一款跨平台客户端工具，可以批量为视频或者音频生成字幕文件，并支持对字幕进行翻译，支持百度、火山、openai、ollama、deepseek 等多家翻译","archived":false,"fork":false,"pushed_at":"2025-05-13T10:07:51.000Z","size":75000,"stargazers_count":2283,"open_issues_count":53,"forks_count":161,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-05-13T11:24:10.642Z","etag":null,"topics":["deepseek","electron","nodejs","ollama","openai","subtitle","translate","whisper","whisper-cpp"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/buxuku.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-21T09:33:49.000Z","updated_at":"2025-05-13T09:33:19.000Z","dependencies_parsed_at":"2024-05-21T11:45:02.093Z","dependency_job_id":"654bf6a1-645a-4219-8ee8-7f95790a7d3c","html_url":"https://github.com/buxuku/SmartSub","commit_stats":null,"previous_names":["buxuku/video-subtitle-master","buxuku/smartsub"],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buxuku%2FSmartSub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buxuku%2FSmartSub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buxuku%2FSmartSub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buxuku%2FSmartSub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buxuku","download_url":"https://codeload.github.com/buxuku/SmartSub/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254101615,"owners_count":22014909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deepseek","electron","nodejs","ollama","openai","subtitle","translate","whisper","whisper-cpp"],"created_at":"2025-03-24T12:30:47.515Z","updated_at":"2025-05-14T08:05:45.493Z","avatar_url":"https://github.com/buxuku.png","language":"TypeScript","funding_links":[],"categories":["Langchain"],"sub_categories":[],"readme":"# 🚀 妙幕 / SmartSub\n\n\u003cdiv align=\"center\"\u003e\n\n[![Release](https://img.shields.io/github/v/release/buxuku/SmartSub?style=flat-square\u0026logo=github\u0026color=blue)](https://github.com/buxuku/SmartSub/releases/latest)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square\u0026logo=bookstack)](https://github.com/buxuku/SmartSub/blob/master/LICENSE)\n[![Stars](https://img.shields.io/github/stars/buxuku/SmartSub?style=flat-square\u0026logo=github)](https://github.com/buxuku/SmartSub/stargazers)\n\n[ 🇨🇳 中文](README.md) | [ 🌏 English](README_EN.md) \n\n\n\u003c/div\u003e\n\n**让每一帧画面都能美妙地表达**\n\n智能音视频字幕生成与多语言翻译批量化解决方案\n\n![preview](./resources/preview.png)\n\n\n## 💥特性\n\n它保留了之前 [VideoSubtitleGenerator](https://github.com/buxuku/VideoSubtitleGenerator) 这个命令行工具的全部特性，并新增了以下功能:\n\n- 支持多种视频/音频格式生成字幕\n- 支持对生成的字幕，或者导入的字幕进行翻译\n- 本地化处理，无须上传视频，保护隐私的同时也拥有更快的处理速度\n- 支持多种翻译服务:\n  - 火山引擎翻译\n  - 百度翻译\n  - 微软翻译器\n  - DeepLX 翻译 （批量翻译容易存在被限流的情况）\n  - 本地模型 Ollama 翻译\n  - AI聚合平台 [DeerAPI](https://api.deerapi.com/register?aff=QvHM)\n  - 支持 OpenAI 风格 API 翻译，如 [deepseek](https://www.deepseek.com/), [azure](https://azure.microsoft.com) 等\n- 自定义字幕文件名，方便兼容不同的播放器挂载字幕识别\n- 自定义翻译后的字幕文件内容，支持纯翻译结果或原字幕+翻译结果\n- 支持硬件加速\n   - NVIDIA CUDA（Windows/Linux）\n   - Apple Core ML（macOS M系列芯片）\n- 支持运行本地安装的 `whisper` 命令\n- 支持自定义并发任务数量\n\n## 关于 CUDA 的支持\n\n因为本人使用的是苹果芯片，缺少 window CUDA 的开发环境，对于 CUDA 的支持，开发测试都存在较多场景无法兼顾的情况。\n\n- 目前提供了 CUDA 11.8.0 和 12.2.0 及 12.4.1 版本的编译，是通过 github action 自动编译的，可能存在环境的兼容问题\n- 要启用 CUDA，需要确定自己的电脑支持 CUDA, 并安装了 CUDA toolkit. [CUDA download](https://developer.nvidia.com/cuda-downloads)\n- CUDA toolkit 的版本理论上是向后兼容，请根据你显卡支持的版本，选择合适的版本\n- 如果下载 generic 使用有问题，可以下载 optimized 版本，这个版本是针对各个系列显卡的优化版本，兼容性更强\n\n## 关于 Core ML 的支持\n\n从 1.20.0 版本开始，在苹果芯片上，支持使用 Core ML 加速语音识别。如果是苹果芯片，请下载 mac arm64 版本的 release 包。将会自动启动 Core ML 加速。\n\n## 翻译服务\n\n本项目支持多种翻译服务，包括百度翻译、火山引擎翻译、DeepLX、Ollama 本地模型、 DeepSeek 以及 OpenAI 风格的 API。使用这些服务需要相应的 API 密钥或配置。\n\n对于百度翻译、火山引擎等服务的 API 申请方法，可以参考 https://bobtranslate.com/service/ ，感谢 [Bob](https://bobtranslate.com/) 这款优秀的软件提供的信息。\n\n对于 AI 翻译，翻译结果受模型和提示词的影响比较大，你可以尝试不同的模型和提示词，找到适合自己的组合。推荐可以尝试 AI 聚合平台 [DeerAPI](https://api.deerapi.com/register?aff=QvHM), 支持多个平台近 500 种模型，选择合适自己的模型进行翻译。\n\n## 模型的选择\n\n从视频或者音频里面，生成字幕文件，需要使用到 whisper 的模型。 whisper 的模型有多种，不同的模型，生成字幕的准确性不同，处理速度也不同。\n\n- 模型越大，准确性越高，对显卡要求也高，处理速度越慢\n- 低端设备或者显卡，推荐 `tiny` 或者 `base` 系列的模型，准确性虽然不如 `large` 系列，但是处理速度快，占用显存小\n- 普通电脑设备，建议从 `small` 或者 `base` 开始，平衡精度与资源消耗\n- 对于高性能显卡/工作站，推荐使用 `large` 系列的模型，准确性高\n- 如果原始音视频是英文，推荐使用带 `en` 的模型，专为英语优化，减少多语言干扰\n- 如果在乎模型大小，可以考虑使用 `q5` 或者 `q8` 系列的模型，相对于非量化版本，牺牲少量精度换取更小体积\n\n## 🔦使用 (普通用户)\n\n请根据自己的电脑系统，芯片，显卡，选择下载对应安装包。\n\n- 带 *generic* 的版本，是通用的版本，理论上支持常见的显卡\n- 带 *optimized* 的版本，是优化版本，提供了针对各个系列显卡的优化，兼容性更强\n\n| 系统 | 芯片 | 显卡 | 下载安装包 |\n| ---- | ---- | ---- | ---- |\n| Windows | x64 | CUDA \u003e= 11.8.0 \u003c 12.0.0 | windows-x64_cuda11.8.0 |\n| Windows | x64 | CUDA \u003e= 12.4.1 | windows-x64_cuda12.4.1 |\n| Windows | x64 | CUDA \u003e= 12.2.0 | windows-x64_cuda12.2.0 |\n| Windows | x64 | 无 CUDA | windows-x64_no_cuda |\n| Mac | Apple | 支持 CoreML | mac-arm64 |\n| Mac | Intel | 不支持 CoreML | mac-x64 |\n\n1. 前往 [release](https://github.com/buxuku/SmartSub/releases) 页面根据自己的操作系统下载安装包\n2. 安装并运行程序\n3. 下载模型\n4. 在程序中配置所需的翻译服务\n5. 选择要处理的音视频文件或字幕文件\n6. 设置相关参数（如源语言、目标语言、模型等）\n7. 开始处理任务\n\n## 🔦使用 (开发用户)\n\n1️⃣ 克隆本项目在本地\n\n```shell\ngit clone https://github.com/buxuku/SmartSub.git\n```\n\n2️⃣ 在项目中执行 `yarn install` 或者 `npm install`\n\n```shell\ncd SmartSub\nyarn install \n```\n\n如果是 windows 平台，或者 Mac intel 平台，请前往 https://github.com/buxuku/whisper.cpp/releases/tag/latest 下载对应的 node 文件，并重命名为 `addon.node` , 覆盖放在 `extraResources/addons/` 目录下。\n\n3️⃣ 依赖包安装好之后，执行 `yarn dev` 或者 `npm run dev` 启动项目\n\n```shell\nyarn dev\n```\n\n## 手动下载和导入模型\n\n因为模型文件比较大，如果通过该软件下载模型会存在难以下载的情况，可以手动下载模型并导入到应用中。以下是两个可用于下载模型的链接：\n\n1. 国内镜像源（下载速度较快）：\n   https://hf-mirror.com/ggerganov/whisper.cpp/tree/main\n\n2. Hugging Face 官方源：\n   https://huggingface.co/ggerganov/whisper.cpp/tree/main\n\n如果是苹果芯片，需要同时下载模型对应的 encoder.mlmodelc 文件。并解压出来放在模型相同目录下。（如果是 q5 或者 q8 系列的模型，无须下载该文件）\n\n下载完成后，您可以通过应用的\"模型管理\"页面中的\"导入模型\"功能将下载的模型文件导入到应用中。或者直接复制到模型目录里面即可。\n\n导入步骤：\n1. 在\"模型管理\"页面中，点击\"导入模型\"按钮。\n2. 在弹出的文件选择器中，选择您下载的模型文件。\n3. 确认导入后，模型将被添加到您的已安装模型列表中。\n\n## 常见问题\n\n##### 1.提示应用程序已损坏，无法打开。\n在终端中执行以下命令：\n\n```shell\nsudo xattr -dr com.apple.quarantine /Applications/Video\\ Subtitle\\ Master.app\n```\n然后再次运行应用程序。\n\n## 贡献\n\n👏🏻 欢迎提交 Issue 和 Pull Request 来帮助改进这个项目！\n\n## 支持\n\n⭐ 如果您觉得这个项目对您有帮助，欢迎给我一个 star，或者请我喝一杯咖啡（请备注你的 github 账号）。\n\n👨‍👨‍👦‍👦 如果您有任何使用问题，欢迎加入微信交流群，一起交流学习。\n\n| 支付宝收款码                              | 微信赞赏码                              | 微信交流群                                |\n|-------------------------------------|------------------------------------|--------------------------------------|\n| ![支付宝收款码](./resources/donate_alipay.jpg) | ![微信赞赏码](./resources/donate_wechat.jpg) | ![微信交流群](./resources/WechatIMG428.png)  |\n\n\n## 许可证\n\n本项目采用 MIT 许可证。详情请见 [LICENSE](LICENSE) 文件。\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=buxuku/SmartSub\u0026type=Date)](https://star-history.com/#buxuku/SmartSub\u0026Date)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuxuku%2Fsmartsub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuxuku%2Fsmartsub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuxuku%2Fsmartsub/lists"}