You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

282 lines
6.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 实时语音转文字系统使用说明
## 项目简介
本项目是一个基于 sherpa-onnx 的实时语音转文字系统,支持中英双语识别,具有端点检测、断句处理和自动标点功能。系统采用流式识别技术,能够实时将语音转换为文字,并支持部分识别结果显示。
## 系统要求
- **操作系统**: macOS / Linux
- **Python版本**: >= 3.12.10
- **包管理工具**: uv
- **音频设备**: 支持录音的麦克风
## 安装步骤
### 1. 克隆项目
```bash
git clone <项目地址>
cd realTimeVTT
```
### 2. 安装依赖
使用 uv 安装项目依赖:
```bash
uv sync
```
### 3. 下载语音识别模型
首次使用需要下载语音识别模型:
```bash
uv run python main.py --download-model
```
系统会提供交互式界面,选择合适的模型进行下载。推荐使用默认的中英双语模型。
## 基本使用
### 启动实时语音识别
```bash
uv run python main.py
```
启动后,系统会:
1. 初始化音频设备
2. 加载语音识别模型
3. 开始实时录音和识别
4. 在控制台显示识别结果
5. 将结果保存到 `output/transcription.txt` 文件
### 查看可用音频设备
```bash
uv run python main.py --list-devices
```
### 启用调试模式
```bash
uv run python main.py --log-level DEBUG
```
## 命令行参数
| 参数 | 说明 |
|------|------|
| `--download-model` | 下载语音识别模型 |
| `--list-devices` | 列出可用的音频设备 |
| `--log-level` | 设置日志级别 (DEBUG/INFO/WARNING/ERROR) |
| `--no-save` | 不保存识别结果到文件 |
| `--no-partial` | 不显示部分识别结果 |
## 功能特性
### 1. 实时语音识别
- 支持中英双语识别
- 流式处理,低延迟
- 自动端点检测
### 2. 断句和标点处理
- 智能断句识别
- 自动添加标点符号
- 支持中英文混合文本
### 3. 结果输出
- 控制台实时显示
- 自动保存到文件
- 支持时间戳显示
### 4. 音频处理
- 自动音频设备检测
- 噪声抑制
- 音量自动调节
## 配置说明
### 模型配置 (src/config.py)
```python
class ModelConfig:
# 模型文件路径
model_dir = "models/"
# 语音识别参数
sample_rate = 16000 # 采样率
feature_dim = 80 # 特征维度
num_threads = 1 # 线程数
# 端点检测参数
enable_endpoint = True
rule1_min_trailing_silence = 2.4 # 静音检测阈值1
rule2_min_trailing_silence = 1.2 # 静音检测阈值2
rule3_min_utterance_length = 300 # 最小语音长度
```
### 音频配置
```python
class AudioConfig:
sample_rate = 16000 # 采样率
chunk_size = 1024 # 音频块大小
channels = 1 # 单声道
samples_per_read = 1600 # 每次读取样本数
```
### 应用配置
```python
class AppConfig:
show_partial_results = True # 显示部分识别结果
show_timestamps = True # 显示时间戳
save_to_file = True # 保存到文件
output_file = "output/transcription.txt" # 输出文件路径
```
## 使用示例
### 基本使用流程
1. **启动系统**
```bash
uv run python main.py
```
2. **开始说话**
- 系统会自动检测语音输入
- 实时显示识别结果
- 自动进行断句和标点处理
3. **查看结果**
- 控制台实时显示
- 结果自动保存到 `output/transcription.txt`
4. **停止识别**
-`Ctrl+C` 停止程序
### 高级使用
**仅显示最终结果(不显示部分识别)**
```bash
uv run python main.py --no-partial
```
**不保存到文件**
```bash
uv run python main.py --no-save
```
**调试模式**
```bash
uv run python main.py --log-level DEBUG
```
## 输出格式
### 控制台输出
```
[14:30:25] 你好,这是一个测试。
[14:30:28] 语音识别效果很好。
[14:30:32] 支持中英文混合识别Hello world!
```
### 文件输出
识别结果会保存到 `output/transcription.txt` 文件中,格式与控制台输出相同。
## 故障排除
### 常见问题
1. **模型文件缺失**
```
错误: 缺少模型文件
```
**解决方案**: 运行 `uv run python main.py --download-model` 下载模型
2. **音频设备初始化失败**
```
错误: 无法初始化音频设备
```
**解决方案**:
- 检查麦克风是否正常连接
- 运行 `--list-devices` 查看可用设备
- 确保系统音频权限已授予
3. **识别效果不佳**
**解决方案**:
- 确保环境安静
- 调整麦克风音量
- 保持适当的说话距离
4. **依赖安装失败**
**解决方案**:
- 确保使用 Python 3.12+
- 在 macOS 上可能需要安装 portaudio: `brew install portaudio`
- 使用 `uv sync --reinstall` 重新安装依赖
### 日志查看
启用调试日志查看详细信息:
```bash
uv run python main.py --log-level DEBUG
```
日志文件保存在 `logs/app.log`
## 性能优化
### 系统性能
- 建议在安静环境下使用
- 确保系统有足够的内存(建议 4GB+
- 使用 SSD 存储以提高模型加载速度
### 识别精度
- 清晰发音,语速适中
- 避免背景噪音
- 保持麦克风距离适中20-30cm
## 开发说明
### 项目结构
```
.
├── main.py # 主程序入口
├── src/
│ ├── __init__.py
│ ├── config.py # 配置管理
│ ├── audio_processor.py # 音频处理
│ ├── speech_recognizer.py # 语音识别
│ ├── realtime_vtt.py # 主应用逻辑
│ └── model_downloader.py # 模型下载
├── models/ # 模型文件目录
├── output/ # 输出文件目录
├── logs/ # 日志文件目录
└── docs/ # 文档目录
```
### 扩展开发
如需扩展功能,可以:
1. 修改 `src/config.py` 调整参数
2.`src/speech_recognizer.py` 中添加新的识别逻辑
3.`src/realtime_vtt.py` 中添加新的应用功能
## 许可证
本项目遵循开源许可证,具体请查看 LICENSE 文件。
## 技术支持
如遇到问题,请:
1. 查看本使用说明
2. 检查日志文件
3. 提交 Issue 到项目仓库
---
**注意**: 首次使用请务必先下载模型文件,否则无法正常运行。