python视频转文本,音频转文本

发布于:2025-03-22 ⋅ 阅读:(9) ⋅ 点赞:(0)

使用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都打包了进来,打包后的文件太大了。。。
在这里插入图片描述
先这样吧,能用就行