使用cursor开发一个python视频转文本,音频转文本桌面程序
准备需求文档
使用deepseek生成一个需求文档
以下是一个基于 **Whisper** 开发桌面端软件的需求文档模板,适用于指导 **Cursor**(AI代码助手)理解项目目标、功能设计和实现逻辑。文档结构清晰,关键需求已标注优先级。
---
# **需求文档:Whisper 桌面端语音转文字工具**
## **1. 项目目标**
开发一款跨平台桌面应用,支持用户通过图形界面将视频/音频文件转换为文字(支持中英文),生成字幕文件,并导出为多种格式。
---
## **2. 功能需求**
### **2.1 核心功能**
| 功能 | 描述 | 优先级 |
| ---------------------- | --------------------------------------------------------------- | ------ |
| **文件上传与格式转换** | 支持上传视频(MP4, AVI, MKV)或音频(MP3, WAV),自动提取音频。 | P0 |
| **语音转文字** | 调用Whisper模型,将音频转换为文字,支持中英文混合识别。 | P0 |
| **字幕生成** | 生成带时间戳的SRT字幕文件,可调整分段时长(默认30秒)。 | P1 |
| **导出结果** | 导出为TXT、SRT、JSON格式,支持自定义文件名和路径。 | P1 |
### **2.2 高级功能**
| 功能 | 描述 | 优先级 |
| ------------ | ------------------------------------------------------------- | ------ |
| **模型选择** | 允许用户选择Whisper模型(tiny, base, small, medium, large)。 | P1 |
| **GPU加速** | 检测本地NVIDIA GPU,自动启用CUDA加速(需用户确认安装驱动)。 | P2 |
| **批量处理** | 支持批量上传文件,队列顺序处理,显示进度条。 | P2 |
| **文本编辑** | 提供文本编辑器,允许用户手动修正识别结果。 | P2 |
---
## **3. 非功能需求**
### **3.1 性能**
- **响应时间**:1小时内的音频文件处理时间 ≤ 5分钟(small模型 + CPU)。
- **硬件要求**:
- CPU:Intel i5 或同等性能。
- RAM:≥8GB(large模型需≥16GB)。
- GPU(可选):NVIDIA GTX 1060+(CUDA加速)。
- **3.2 兼容性**
- **操作系统**:Windows 10/11, macOS 12+, Ubuntu 20.04+。
- **输入格式**:MP4, AVI, MKV, MP3, WAV, FLAC。
- **输出格式**:TXT(纯文本)、SRT(字幕)、JSON(带时间戳)。
### **3.3 安全与隐私**
- **数据本地化**:所有文件处理和模型推理均在本地完成,不上传至服务器。
- **缓存清理**:任务完成后自动删除临时音频文件。
---
## **4. 用户界面(UI)设计**
### **4.1 主界面**
1. **文件上传区域**:拖拽或点击上传文件。
2. **任务队列面板**:显示待处理/处理中的文件列表。
3. **进度条与日志**:实时显示处理进度和Whisper日志。
4. **结果预览窗口**:分栏显示文字、字幕和时间戳。
### **4.2 设置界面**
- **模型选择**:下拉菜单选择Whisper模型(默认small)。
- **语言设置**:强制指定语言(中文/英文/自动检测)。
- **输出目录**:自定义结果保存路径。
---
## **5. 技术架构**
### **5.1 技术栈**
| 组件 | 技术选型 | 说明 |
| ------------ | ---------------- | -------------------------- |
| **前端** | PyQt5 | 跨平台GUI框架,优先PyQt5。 |
| **后端引擎** | Whisper (OpenAI) | 核心语音识别模型。 |
| **音频处理** | FFmpeg | 视频提取音频,格式转换。 |
| **依赖管理** | PyInstaller | 打包为EXE/DMG可执行文件。 |
### **5.2 关键代码逻辑(供Cursor参考)
# 示例:Whisper核心调用
import whisper
def transcribe_audio(file_path, model_size="small", language="zh"):
model = whisper.load_model(model_size)
result = model.transcribe(
file_path,
language=language,
fp16=False # 默认关闭GPU加速
)
return result["text"], result["segments"]
# 示例:生成SRT字幕
def generate_srt(segments):
srt_content = ""
for idx, segment in enumerate(segments):
start = segment["start"]
end = segment["end"]
text = segment["text"]
srt_content += f"{idx+1}\n{format_time(start)} --> {format_time(end)}\n{text}\n\n"
return srt_content
使用cursor开发项目
一步步实现对应需求就行了
打包遇到的问题
命令行启动项目可以正常运行,使用cuda进行转录解析,但是打包exe后一直使用的是cpu,更改设置也没生效,检查后发现是pytroch版本不对
这里调试了好久,按照cursor给的方案 一直没成功
最后没用cursor的打包方案
# 使用PyInstaller直接打包
pyinstaller --name=WhisperDesktop --add-data="models;models" --hidden-import=torch --hidden-import=torch.nn --hidden-import=torch.cuda --hidden-import=whisper main.py
打包后还是缺少pytorch相关的包,直接手动复制到打包文件
whisper 的静态资源没有打包过来,也需要复制过
由于将模型,pytroch都打包了进来,打包后的文件太大了。。。
先这样吧,能用就行