This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
AsrTools 是一个基于 PyQt5 和 qfluentwidgets 的音频语音识别(ASR)和字幕处理工具,当前版本为 V2.0.0。项目使用 Python 3.12 开发。激活 python 环境: source venv/bin/activate
- ASR 字幕识别 - 支持多种ASR接口(必剪、剪映、快手等)
- SRT 字幕优化 - 使用LLM进行字幕分段优化
- 声音生成 - 基于GPT-SoVITS的语音合成
- GUI框架: PyQt5 + qfluentwidgets (Fluent设计风格)
- 多线程处理: QThreadPool 和 QRunnable 实现并发ASR处理
- ASR模块化: bk_asr/ 目录下各接口独立实现
- 字幕处理: ASRData.py 提供统一的数据结构和格式转换
pip install -r requirements.txtpython asr_gui.py \
2>&1 | tee logs/output.logpython main.py --srt_path input.srt --save_path output.srt- asr_gui.py - 主界面和各功能模块实现
- main.py - SRT字幕优化的命令行处理逻辑
- ASRData.py - ASR数据结构定义和格式转换
- bk_asr/ - ASR接口实现目录
- BaseASR.py - ASR基类
- BcutASR.py - 必剪接口实现
- JianYingASR.py - 剪映接口实现
- KuaiShouASR.py - 快手接口实现
- WhisperASR.py - Whisper接口实现
- split_by_llm.py - LLM字幕分段处理
主窗口使用 FluentWindow 架构,左侧导航栏包含:
- ASR 字幕 - 音频/视频文件语音识别
- SRT 优化 - 字幕文件智能优化
- 声音生成 - 文本转语音
- 关于开源 - 项目信息和GitHub链接
使用 QThreadPool 管理工作线程,ASR处理通过 ASRWorker 类实现:
- 最大并发线程数: 3
- 支持文件拖拽和批量处理
- 实时状态更新和错误处理
- 在 bk_asr/ 目录下创建新的ASR类
- 继承 BaseASR 类并实现 run() 方法
- 在 asr_gui.py 的 ASRWorker.run() 中添加接口选择逻辑
- 创建新的 QWidget 子类实现功能界面
- 在 MainWindow.init 中使用 addSubInterface 添加到导航栏
- 使用 QThreadPool 和 QRunnable 处理耗时任务
- 支持拖拽文件和文件夹
- 自动识别音频/视频格式
- 使用 ffmpeg 进行视频到音频转换
- 输出文件保存在原文件同目录
- 使用 InfoBar 组件显示用户友好的错误信息
- 工作线程异常通过 signals.errno 传递
- 详细的日志记录便于调试
检查对应ASR类的实现,注意网络请求和响应解析逻辑。
确保耗时操作在单独线程中执行,避免阻塞UI线程。
在 ASRData.py 中添加新的转换方法,如 to_ass() 等。