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