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

# 实时语音转文字系统使用说明
## 项目简介
本项目是一个基于 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 到项目仓库
---
**注意**: 首次使用请务必先下载模型文件,否则无法正常运行。