更新日志
MioSub 的所有重要更新记录
本文件记录了项目的所有重要更改。
[3.0.8] - 2026-02-04
新功能
- 预检检查:在生成开始前添加配置验证。验证 API 密钥、Whisper 模型文件(GGML/GGUF 格式)和 CTC 对齐模型目录。显示清晰的错误消息,并提供设置和文档链接。
- 关闭确认:在有活动任务(生成、下载、压缩、转码)时关闭应用会显示警告对话框,防止意外数据丢失。
- 音频提取:支持取消音频提取操作。
修复
- Windows:彻底修复 Unicode 路径编码问题。使用直接二进制调用替代 cmd.exe 包装器,确保中文/日文/韩文路径正常工作,无需代码页转换。
- 视频预览:修复 MKV 文件从实时转码切换到静态播放模式时出现的"ReadableStream is already closed"错误。
[3.0.7] - 2026-02-03
修复
- CTC 对齐器:修复 CJK 语言的语言检测失败导致对齐错误的问题。
eld库现在使用静态导入以确保 Vite 正确打包,并添加了基于 CJK 字符的回退检测,支持日语、韩语和中文。 - Gemini API:修复 JSON 解析失败时的不必要 API 调用。截断续写逻辑现在仅在明确的
MAX_TOKENS完成原因时触发,避免对格式错误的响应进行无效重试。 - macOS:修复自动更新时 SHA512 校验和不匹配的问题。
latest-mac.yml现在正确包含 ZIP 文件的哈希值而非 DMG 文件的哈希值。
[3.0.6] - 2026-02-03
修复
- 生成:字幕生成失败时显示汇总的错误消息,帮助用户了解具体问题,而非仅显示通用失败提示。
- Windows:修复应用安装在包含空格的路径(如
C:\Program Files\...)时出现的"C:\Program 不是可识别的命令"错误。 - macOS:通过在 DMG 构建旁添加 ZIP 目标,启用自动更新功能。
重构
- 界面:将 Toast 通知居中显示,提升可见性。
[3.0.5] - 2026-02-03
修复
- 流水线:修复处理超过 2 小时视频时的崩溃问题。长视频模式现在正确地按需提取音频片段,而不是访问空的音频缓冲区。
- Electron:修复保存字幕文件时的 ENOENT 错误。如果用户在处理过程中删除了输出目录,现在会自动重新创建。
- macOS:修复 macOS 上 CTC 强制对齐失败的问题。缺失的
libonnxruntime.dylib动态库现已包含在应用包中。
[3.0.4] - 2026-02-02
重要提示:下载了 v3.0.3 的用户请立即更新。 此版本修复了一个导致部分视频无法下载和生成字幕的严重 bug。
修复
- Electron:修复 shell 参数转义问题,防止 URL 解析错误。包含特殊字符的 URL(如 B 站的
vd_source参数中的&)在 Windows 上会被错误地解析为命令分隔符,导致视频下载和字幕生成失败。
[3.0.3] - 2026-02-02
修复
- Electron:修复 Windows 上 Unicode 路径编码问题,影响 Whisper、yt-dlp 和 CTC 对齐器处理包含非 ASCII 字符(中文、日文等)的路径。
- Electron:修复长时间运行操作(音频提取、压缩、下载进度)期间窗口被销毁时的 IPC 崩溃问题。
- 编辑器:在搜索替换面板中添加正则表达式语法错误反馈,支持防抖验证。
重构
- 错误处理:为
UserActionableError添加错误代码,实现类型安全的错误处理。
[3.0.2] - 2026-02-01
修复
- 视频预览:修复取消视频预览时错误触发 CPU 回退转码的问题。
- Whisper:改进模型文件验证,修复非 ASCII 路径的文件名编码问题。
[3.0.1] - 2026-02-01
新功能
- 长视频支持:新增超过 2 小时视频的按需音频分段提取功能,通过 FFmpeg 按需提取音频片段而非将整个音频加载到内存,避免内存溢出问题。
修复
- Electron:修复更新服务中 IPC 处理器重复注册的问题,该问题可能导致应用重启时出错。
- 路径处理:改进文件名清理逻辑,处理更多特殊字符(shell 元字符、智能引号),避免文件创建失败。
- 路径处理:限制 yt-dlp 输出文件名为 80 个字符,避免 Windows 上的路径长度问题。
- FFmpeg:修复 FFmpeg 滤镜语法中字幕路径的单引号转义问题。
重构
- 错误处理:引入
UserActionableError类以更好地分类错误,防止用户可解决的错误(API 密钥、配额、账单)被报告到 Sentry。
[3.0.0] - 2026-01-31
亮点
本次大版本更新带来了重大架构改进、新功能和更好的稳定性。
新功能
- 项目更名为 MioSub:项目已从 Gemini-Subtitle-Pro 正式更名为 MioSub。
- CTC 强制对齐器:集成基于 CTC 的强制对齐,实现精确的字幕时间同步。
- 纯音频文件支持:完整支持无视频的音频文件(MP3、WAV 等),包括优化的播放器界面。
- 编辑器搜索替换:字幕编辑器新增搜索与替换功能,支持批量修改字幕文本。
- 手动选择 Whisper 路径:用户现在可以手动指定 Whisper 可执行文件路径,支持自定义安装。
- 自动更新系统:内置更新检测和自动更新支持,实现无缝升级。
- 启动闪屏:新的启动闪屏防止应用启动时出现白屏闪烁。
- 增强日志系统:新的日志系统,支持 JSON 视图、日志查看器界面和改进的调试功能。
- Linux ARM64 支持:新增 Linux ARM64 架构的构建支持。
改进
- 界面全面重构:重新设计编辑器、布局组件和设置面板,视觉更统一、交互更流畅。
- 内置中日文字体:集成 NotoSans JP/SC 字体,字幕渲染效果更佳。
- React Compiler 集成:集成 React Compiler v1.0,实现自动性能优化。
- 状态管理迁移:从 React Context 迁移到 Zustand stores,提升性能和可维护性。
- JSON 解析增强:使用 jsonrepair 库统一 JSON 解析,更好地处理 AI 返回的不规范数据。
- 取消操作优化:转码和下载任务支持取消,临时文件自动清理。
- 错误追踪:集成 Sentry 进行错误追踪和分析,提升稳定性。
- 资源清理:修复多处资源泄漏,改进整个应用的内存管理。
- 字幕编辑器性能:修复字幕编辑器中 10 多个性能问题,提供更流畅的编辑体验。
- 流水线健壮性:增强生成流水线中的取消处理和错误边界。
- 打包优化:改进代码分割,减小应用体积。
文档
- 新文档站点:文档迁移至 Fumadocs,完整支持国际化(中文/英文)。
- 重新设计的 README:新的落地页风格 README,改进布局和徽章。
其他变更
- 许可证变更:切换至 AGPL-3.0 许可证。
- macOS x64 交叉编译:在 ARM64 运行器上添加 macOS x64 交叉编译支持。
- CI 改进:通过二进制缓存和更新的 OS 运行器加快构建速度。
[2.13.0] - 2026-01-15
新功能
- 批量操作:将"修复时间戳"替换为"重新生成" - 对选定批次进行完整流水线重新运行(转录 → 优化 → 对齐 → 翻译),支持可选的用户提示。
- 重新生成弹窗:新增重新生成操作弹窗,支持转录和翻译提示输入。
- 说话人管理:新增自定义颜色编辑和说话人合并功能。
- 关于标签页:新增系统信息显示,包含 Whisper 详情、GPU 检测和独立日志路径。
- 日志系统:增强日志系统,支持 JSON 视图和 IPC 处理器。
- 编辑器:新增字幕验证规则,对时间问题显示可视化标记。
- 国际化:完成日语(ja-JP)翻译,为所有语言添加重新生成弹窗字符串。
修复
- 流水线:更新生成钩子和配置以支持新的步骤架构。
- 界面:改进术语表配置说明和颜色选择器验证。
- 核心:解决 lint 警告和二进制路径解析问题。
- 视频预览:修复 ASS 渲染器对折叠状态的依赖。
- 协调器:处理后停止继承注释字段。
- 编辑器:退出过滤模式时重置自动滚动,支持 CANCELLED 状态。
重构
- Electron:便携式存储路径(配置/日志在 exe 目录中)和异步硬件检测以加快启动速度。
- 流水线:将共享上下文提取到 pipelineCore.ts,添加 ProofreadStep 以供未来集成。
- 流水线:使用新的基于步骤的设计简化块处理器架构。
- 批量:将 operations.ts 拆分为 proofread.ts 和 regenerate.ts 以实现更清晰的分离。
- 提示词:移除 fix_timestamps 模式,简化为仅 refinement/translation/proofread。
- 设置:将控制台日志迁移到 logger,将设置弹窗拆分为模块化组件。
- 工作区:优化自动保存并更新说话人配置的数据类型。
杂项
- i18n 检查器:添加 --check-missing 和 --check-unused 标志,改进检测。
- 配置:增加字幕最大宽度(55→65)和最小分割宽度(10→20)。
- 配置:禁用思考级别以优化成本(可重新启用)。
- OpenSpec:归档已完成的提案,为批量操作添加永久规范。
- 构建:更新构建系统以注入 git commit hash。
[2.12.1] - 2026-01-08
新功能
- 视频预览:改进宽高比处理和加载状态。
修复
- 配置:将优化和翻译的思考级别调整为中等。
- 工作区:加载新文件时防止快照历史被清除。
- API:在翻译 schema 中包含
text_original以供参考。 - 流水线:修复批量操作中的说话人分离标志逻辑。
- 字幕:改进非语音过滤并清理测试导出。
重构
- 流水线:简化翻译负载结构并改进元数据继承。
[2.12.0] - 2026-01-06
新功能
- 对齐:完成 CTC 强制对齐器集成
- 流水线:添加用于元数据保留的协调器
- 字幕:实现基于视觉宽度的分割
- 调试:添加细粒度的模拟 API 控制
- 流水线:增强元数据保留和处理健壮性
- 对齐:添加 CTC 对齐器服务和设置界面
修复
- 字幕:处理未定义的说话人颜色
- 快照:在时间戳显示中包含日期
- 国际化:为所有语言添加缺失的翻译键
- Lint:添加缺失的 hook 依赖
- 界面:使用细粒度边界隔离组件错误
- 国际化:为字幕生成流水线添加缺失的本地化键
- 字幕:服务改进(生成器、解析器、时间)
重构
- 命名:将 glossary-state.ts 重命名为 glossaryState.ts
- 结构:组件重构后更新服务和钩子
- 类型:集中类型定义并更新导入
- 组件:重构后更新组件并修复导入
- 国际化:本地化硬编码的中文字符串并改进提取脚本
杂项
- 技能:添加 release-version 技能
- 配置:添加 Claude AI 开发配置
- 脚本:添加 i18n 键验证脚本
- 依赖:更新依赖和类型
[2.11.0] - 2026-01-01
新功能
- 视频预览:实现全面的视频预览系统,支持智能缓存和缓存管理界面。
- 渲染:使用
assjs添加所见即所得的字幕渲染,准确呈现样式(字体、大小、颜色等)。 - 界面:在视频预览中添加原文切换,改进国际化支持。
修复
- 国际化:添加自动滚动切换和 API 密钥错误消息的缺失翻译。
- 缓存:修复缓存管理中的国际化和清理逻辑。
杂项
- 依赖:移除
react-player,改用原生视频处理,并更新依赖。 - 清理:移除
ytdlp模块中未使用的代码并修复 lint 警告。
[2.10.2] - 2025-12-28
新功能
- 国际化:添加日语本地化(ja-JP),实现完整的多语言支持。
修复
- 国际化:缩短首页卡片描述,以便在较小屏幕上更好地布局。
- 国际化:优化翻译措辞,使所有支持的语言更加自然。
- 批量处理:修复时间戳转换,在发送到 Gemini API 之前使用相对时间以提高准确性。
- 构建:修复打包应用程序中缺少语言文件的关键问题(ENOENT 错误)。
[2.10.1] - 2025-12-25
新功能
- 设置:语言偏好现在存储在统一的应用设置中,跨会话持久化。
- 国际化同步:添加渲染进程和主进程之间的语言同步,实现一致的本地化。
- Electron:为主进程对话框和原生界面元素添加国际化支持。
修复
- 国际化:修复语言初始化,使其在应用启动时进行而不是等待设置弹窗,确保从首次渲染就使用正确的语言。
重构
- 语言切换器:简化当前值逻辑,实现更清晰的实现。
文档
- 国际化:添加 v2.10.0 国际化系统的基础设施文档。
[2.10.0] - 2025-12-25
新功能
- 国际化(i18n):在整个应用程序中实现完整的多语言支持。
- 使用
react-i18next设置国际化基础设施(阶段 1)。 - 转换所有主要组件:HomePage、SettingsModal、SubtitleEditor、WorkspacePage、DownloadPage、CompressionPage、Editor 组件和 EndToEndWizard(阶段 2-12)。
- 添加语言切换器,让用户更改应用程序语言。
- 为设置、界面组件和所有弹窗创建全面的翻译文件。
- 使用自动化脚本提取中文字符串以进行翻译工作流程。
- 使用
修复
- 钩子:修复原生字幕导入错误处理中的竞态条件。
- 流水线:正确传递视频压缩的宽度和高度参数。
文档
- 双语文档:为国际用户添加 README 和 ARCHITECTURE 文档的英文版本。
[2.9.14] - 2025-12-20
文档
- 架构:更新架构文档以反映最近的重构,包括新的生成服务、集中式计时器和组件结构。
[2.9.13] - 2025-12-20
新功能
- 时间线:添加强大的时间线验证,支持重试机制和可视化界面标记,用于识别和纠正字幕重叠或时间问题。
重构
- 工作区:通过将钩子提取到单独的、专注的模块中来重构
useWorkspaceLogic,以提高代码可维护性和可读性。 - 翻译:将时间线验证逻辑直接集成到翻译流程中,以提高可靠性。
样式
- Lint:修复各种 lint 问题并验证 ESLint 配置以确保代码质量标准。
[2.9.12] - 2025-12-19
修复
- 术语表(端到端模式):修复用户明确选择的术语表在端到端模式下未被尊重的问题。
- 术语表(运行时):在
getActiveGlossaryTerms中优先使用运行时术语表覆盖,以确保正确的术语解析。 - 术语表(设置):恢复术语表字段作为 AppSettings 中的运行时载体,以实现正确的数据流。
重构
- 术语表:简化术语表访问逻辑并移除旧版项目迁移代码。
- 术语表:移除已弃用的术语表字段和相关迁移代码,以实现更清晰的架构。
- 日志:使用
[DEBUG]/[WARN]/[ERROR]前缀标准化日志级别,以便更好地排查问题。
杂项
- 清理:移除未使用的
electron/env.d.ts类型声明。 - 清理:移除代码库中未使用的代码并修复已弃用的模式。
[2.9.11] - 2025-12-19
新功能
- 调试:添加调试工件保存功能,用于故障排除和开发。
修复
- 音频处理:将短于 30 秒的尾部音频块与前一个块合并,以防止文件末尾的转录不完整。
- 界面(类型选择器):修复类型选择器首次打开时不显示当前值的问题。
- 工作区:说话人数量提示现在仅在新项目模式下显示,避免在现有项目中造成混淆。
- 提示词:确保术语表术语对网络搜索结果具有绝对优先权,以保持翻译一致性。
重构
- API:更新 Gemini API 客户端实现并修订最新模型层级的定价配置。
- 配置:更新默认模型名称配置。
文档
- 架构:使用集中式模型配置和新界面组件更新架构文档。
- AI 代理:添加 GitHub Copilot 指令,用于 AI 编码代理以改进开发工作流程。
[2.9.10] - 2025-12-18
新功能
- 提示词:添加动态搜索增强提示词并改进优先级编号。
- 界面:改进切换按钮的禁用状态视觉反馈。
修复
- 提示词:恢复完整的上下文感知翻译规则和详细示例。
- 界面:修复切换按钮界面一致性。
- 安全:修复提示词注入漏洞。
重构
- 配置:集中 Gemini 模型配置。
[2.9.9] - 2025-12-18
修复
- 界面:使项目设置折叠逻辑响应缩放级别。
- 兼容性:改进整体缩放级别兼容性。
[2.9.8] - 2025-12-17
新功能
- 界面:使用 CSS 变换和安全布局类实现强大的网页缩放支持。
- 核心:更新 FFmpeg、FFprobe 和 yt-dlp 可执行文件。
修复
- 界面:优化 Electron 的网页缩放安全性并修复布局响应性。
- 界面:确保所有缩放级别下下拉菜单定位正确。
- 系统:改进快照系统可靠性。
[2.9.7] - 2025-12-16
新功能
- 性能:优化文件加载并改进界面加载指示器。
界面
- 样式:优化整体界面布局和间距。
构建与打包
- FFmpeg:捆绑 FFmpeg/FFprobe 二进制文件并优化路径解析逻辑。
- CI:在 GitHub 发布中自动包含更新日志。
- 文档:更新 README 以适应 zip 分发格式。
[2.9.6] - 2025-12-16
新功能
- 界面:改进高 DPI 支持和整体界面响应性。
构建
- Windows:将构建目标从便携式 exe 切换为 zip,以加快应用程序启动速度。
- Electron:修复 electron-builder zip 配置。
杂项
- 清理:移除未使用的 AboutModal 和相关代码。
[2.9.5] - 2025-12-16
新功能
- 界面:实现桌面流式布局更新,以提高响应性。
[2.9.4] - 2025-12-16
新功能
- 核心:添加共享实用钩子,以更好地处理
AbortController信号。 - 界面:添加新的基础界面组件,以实现一致的设计系统使用。
修复
- 界面:改进设置切换和输入一致性。
重构
- 界面:清理冗余的向导组件(进度、标题、分辨率选择器)并简化标题编辑器集成。
[2.9.3] - 2025-12-16
新功能
- 说话人分析:增强说话人分析和同步设置,以更好地控制说话人分离。
修复
- 端到端:解决
useEndToEndSubtitleGeneration钩子中的关键无限循环问题。 - 健壮性:改进 JSON 解析可靠性和错误日志记录。
重构
- 清理:仓库结构清理(阶段 1-2、5、7、9)。
文档
- 架构:更新端到端流水线的图表。
[2.9.2] - 2025-12-15
新功能
- 端到端流水线:成功解析后自动前进,持久化自动确认的术语表术语。
- 界面架构:实现新的可复用界面组件和统一的页面布局。
- Electron:添加上下文菜单支持。
修复
- 端到端:修复启动全自动模式需要双击的问题。
重构
- 界面迁移:将页面、弹窗和设置迁移到新的布局和组件原语。
- 提示词:强制执行严格的片段边界并改进时间戳验证规则。
- 代码库:统一术语表逻辑并改进变量命名(
enableDiarization)。
[2.9.1] - 2025-12-14
新功能
- 说话人分离:添加
minSpeakers/maxSpeakers提示,以提高 LLM 说话人分离准确性。 - 端到端流水线:增强输入解析和流水线处理。
修复
- YouTube:改进 URL 解析以正确处理播放列表链接。
重构
- 路径别名:在整个代码库中用绝对别名(
@/、@electron/)替换相对导入。 - 界面:优化
StepConfig和CustomSelect组件样式。
文档
- 架构:更新项目架构文档。
[2.9.0] - 2025-12-14
新功能
- 全自动模式:实现完整的端到端流水线,包含新的向导界面(
EndToEndWizard)、核心服务(EndToEndPipelineService)和主进程集成。 - 安全:基于 Electron 最佳实践审计实施高风险安全修复。
- 错误处理:为缩略图下载失败添加优雅的警告。
修复
- 核心:音频解码、时间准确性和界面稳定性的杂项改进。
- 构建:修复
ytdlp编译问题。
文档
- 指南:添加全自动/端到端模式的文档。
[2.8.5] - 2025-12-12
新功能
- 翻译提示词:添加上下文感知翻译指令,并调整保守模式以更好地遵守时间(0.5 秒阈值)。
重构
- 界面:移除冗余的 StatusBadge 并改进工具栏响应性。
- 验证:调整字幕验证持续时间阈值。
[2.8.4] - 2025-12-11
新功能
- 高 DPI 支持:为高像素密度屏幕(Retina/4K)添加优化,包括紧凑间距和优化布局。
- 流式排版:实现视口感知字体缩放,以在不同屏幕尺寸上提高可读性。
- 提示词工程:改进翻译提示词,添加"视觉平衡"检查和更好的填充词移除。
- 硬件加速:通过使用测试帧验证编码能力来增强 GPU 编码器检测。
[2.8.3] - 2025-12-11
新功能
- 硬件加速:添加视频编码的硬件加速支持。
- 文件处理:改进 Electron 主进程中的文件处理。
[2.8.2] - 2025-12-10
新功能
- 响应式布局:优化响应式布局和窗口大小限制,以提供更好的用户体验。
[2.8.1] - 2025-12-09
重构
- 字幕 ID:从数字迁移到基于字符串的 ID,以修复 AI 重新索引错误。
性能
- Token 效率:将字幕 ID 长度优化为 4 个字符,以更好地利用 LLM token。
[2.8.0] - 2025-12-09
新功能
- 统一快照:实现统一的持久快照系统,以更好地管理历史记录。
- 界面重设计:重新设计
BatchHeader,改进响应式布局和美观性。
[2.7.3] - 2025-12-09
重构
- 模型名称:在代码库中统一模型名称并自动修复未使用的导入。
- 钩子架构:将
useWorkspaceLogic拆分为 4 个更小的专注钩子,以提高可维护性。 - 环境变量:集中环境变量配置。
杂项
- 代码质量:添加 Prettier + ESLint 和预提交钩子。
[2.7.2] - 2025-12-06
新功能
- 批量操作:增强
BatchHeader,改进批量编辑和说话人分配。 - 说话人管理:添加批量说话人分配并改进合并工作流程。
修复
- 字幕编辑器:改进行选择和键盘导航。
- 工作区逻辑:增强状态管理和撤销/重做处理。
[2.7.1] - 2025-12-06
性能
- 虚拟化字幕列表:使用
react-virtuoso优化大文件渲染,实现虚拟化字幕列表。
修复
- 界面改进:小型界面修复和优化。
[2.7.0] - 2025-12-06
新功能
- 说话人管理:新的说话人管理弹窗,支持重命名、删除和合并功能。添加
SpeakerSelect组件,方便在字幕编辑器中分配说话人。 - 关于弹窗:新的关于对话框,显示版本信息和项目致谢。
- 增强日志:为 Electron 主进程添加
MainLogger,支持文件持久化和 IPC 广播。 - 编辑器改进:增强
SubtitleEditor、SubtitleRow和BatchHeader,改进说话人处理和界面。 - 文件上传:改进
FileUploader,提供更好的拖放和文件验证。
修复
- Whisper 服务:增强错误处理和响应解析。
- 字幕解析器/生成器:改进 SRT/ASS 格式中的说话人标签处理。
- Gemini 客户端:更好的重试逻辑和错误恢复。
性能
- 批量处理:优化批量翻译,改进并发性。
- 工作区逻辑:简化
useWorkspaceLogic中的状态管理。
[2.6.0] - 2025-12-05
新功能
- 视频压缩:内置 FFmpeg 引擎,支持 H.264/H.265 编码、CRF 质量控制、分辨率调整和字幕硬编码。
- 视频下载:集成 yt-dlp,支持从 YouTube 和 Bilibili 下载视频。
- 工作区历史:新的历史面板,显示会话快照和持久项目历史。
- 界面改进:增强下拉菜单,在靠近屏幕底部时向上打开。
修复
- 压缩:修复压缩期间
isStream的错误处理。 - 界面:修复 CRF 输入字段以支持小数值。
- 界面:修复
CustomSelect下拉菜单定位。
性能
- Gemini API:优化客户端错误处理和重试逻辑。