首页
/ RealtimeSTT 实时语音转文字系统详解与使用指南

RealtimeSTT 实时语音转文字系统详解与使用指南

2025-07-07 02:30:28作者:魏献源Searcher

概述

RealtimeSTT 是一个基于 WebSocket 的实时语音转文字(Speech-to-Text)系统,由服务器端和客户端组成。该系统能够实时将语音转换为文字,适用于语音助手、实时字幕生成、会议记录等多种场景。本文将详细介绍该系统的架构、功能特点、安装部署和使用方法。

系统架构

RealtimeSTT 采用客户端-服务器架构:

  1. 服务器端:负责核心的语音识别功能,运行 STT(语音转文字)模型,处理音频数据并返回识别结果
  2. 客户端:负责音频采集、参数配置以及与服务器的通信

两者通过 WebSocket 协议进行通信,分为控制连接和数据连接两个通道,确保控制指令和音频数据的高效传输。

核心功能

语音识别能力

  • 支持多种 Whisper 模型(tiny/small/medium/large 等)
  • 可配置实时转录模型与主模型分离
  • 多语言支持,支持自动语言检测

语音活动检测(VAD)

  • 支持 Silero 和 WebRTC 两种 VAD 引擎
  • 可调节的灵敏度参数
  • 智能静音检测,支持句子边界识别

唤醒词功能

  • 可配置多个唤醒词
  • 支持 OpenWakeWord 等多种后端
  • 可调节的唤醒敏感度和超时设置

实时性优化

  • 双 WebSocket 通道设计(控制+数据)
  • 可配置的处理间隔参数
  • 支持实时转录与完整转录的分离

安装与部署

环境要求

  • Python 3.8 或更高版本
  • 推荐使用支持 CUDA 的 GPU 环境以获得最佳性能

安装步骤

  1. 创建并激活 Python 虚拟环境(推荐)
  2. 安装依赖库:
    pip install faster-whisper websockets sounddevice webrtcvad
    

模型准备

系统支持以下模型来源:

  • 本地 Whisper 模型文件
  • HuggingFace 上的 CTranslate2 格式模型
  • 默认会下载并缓存模型文件

服务器端使用指南

启动服务器

基本启动命令:

stt-server -m large-v2 -l en -c 8011 -d 8012

参数说明:

  • -m: 指定主模型(如 large-v2)
  • -l: 设置默认语言(如 en)
  • -c: 控制端口(默认 8011)
  • -d: 数据端口(默认 8012)

关键参数详解

模型相关

  • --model: 主模型路径或型号
  • --rt-model: 实时转录模型(通常使用更小的模型)
  • --use_main_model_for_realtime: 强制使用主模型进行实时转录

VAD 配置

  • --silero_sensitivity: Silero VAD 灵敏度(0-1)
  • --webrtc_sensitivity: WebRTC VAD 灵敏度(0-3)
  • --min_length_of_recording: 最小有效录音时长

唤醒词配置

  • --wake_words: 唤醒词列表
  • --wake_words_sensitivity: 唤醒词检测灵敏度
  • --wake_word_timeout: 唤醒词检测超时时间

句子检测

  • --end_of_sentence_detection_pause: 句子结束静音阈值
  • --unknown_sentence_detection_pause: 不完整句子静音阈值
  • --mid_sentence_detection_pause: 句中停顿静音阈值

客户端使用指南

基本使用

启动客户端并连接到默认服务器:

stt

列出可用音频设备:

stt -L

指定输入设备和语言:

stt -i 1 -l zh

高级功能

启用智能断句:

stt -sed

连续模式运行:

stt -c

设置参数示例:

stt -s silero_sensitivity 0.1 -s min_length_of_recording 0.8

系统调优建议

性能优化

  1. 根据硬件选择合适模型:

    • 低端设备:tiny.en 或 base.en
    • 中端设备:small.en
    • 高端设备:medium.en 或 large-v2
  2. 调整实时处理间隔:

    stt-server --realtime_processing_pause 0.05
    

准确性提升

  1. 使用初始提示引导模型:

    stt-server --initial_prompt "这是一个技术讲座的转录,请使用专业术语"
    
  2. 调整句子检测参数:

    stt --end-pause 0.6 --mid-pause 2.5
    

典型应用场景

实时字幕系统

配置建议:

  • 使用 small 或 medium 模型平衡质量与延迟
  • 启用智能断句(-sed)
  • 适当缩短句子检测间隔

语音助手

配置建议:

  • 设置唤醒词(--wake_words)
  • 使用 tiny 模型进行实时检测
  • 配置合理的唤醒灵敏度

会议记录

配置建议:

  • 使用 large 模型确保准确性
  • 延长句子检测间隔
  • 保存原始音频(-W recording.wav)

常见问题排查

服务器无法启动

  1. 检查端口是否被占用
  2. 确认模型文件已正确下载
  3. 检查 Python 依赖是否完整

无音频输入

  1. 使用 -L 参数确认设备索引
  2. 检查系统音频权限
  3. 尝试更换输入设备

识别质量差

  1. 尝试更大的模型
  2. 调整 VAD 灵敏度
  3. 检查环境噪音情况

总结

RealtimeSTT 提供了一个灵活、高效的实时语音转文字解决方案,通过合理的参数配置可以适应从嵌入式设备到服务器集群的各种部署环境。系统特别强调实时性与准确性的平衡,为开发者提供了丰富的调优选项。

对于希望集成语音识别功能的开发者,建议从默认配置开始,逐步根据实际场景调整参数,特别是模型选择、VAD 设置和句子检测相关的参数,以获得最佳的使用体验。