实时语音识别:打造低延迟、易用的语音转文本库

实时语音识别 (RealtimeSTT) 是一款专为实时应用设计的,易于使用、低延迟的语音转文本库。它可以实时监听麦克风并将语音转换为文本,非常适合各种需要快速准确语音转文本的应用场景。 https://github.com/KoljaB/RealtimeSTT

项目介绍

RealtimeSTT 是从 Linguflex 项目衍生而来,Linguflex 是一个强大的开源助手,可以让你通过语音控制环境。RealtimeSTT 继承了 Linguflex 的强大功能,并专注于提供更易于使用的语音转文本解决方案。

特点

  • 语音活动检测 (Voice Activity Detection): 自动检测说话开始和结束。
  • 实时转录 (Realtime Transcription): 实时将语音转换为文本。
  • 唤醒词激活 (Wake Word Activation): 支持使用指定唤醒词激活。

技术栈

RealtimeSTT 使用以下技术栈构建:

  • 语音活动检测:
    • WebRTCVAD 用于初步语音活动检测。
    • SileroVAD 用于更准确的语音活动验证。
  • 语音识别:
    • Faster_Whisper 用于即时 (GPU 加速) 转录。
  • 唤醒词检测:
    • Porcupine 或 OpenWakeWord 用于唤醒词检测。

这些组件代表了尖端应用的“行业标准”,为构建高端解决方案提供了最现代和有效的基础。

安装

pip install RealtimeSTT

这将安装所有必要的依赖项,包括仅 CPU 支持的 PyTorch 版本。

虽然可以使用仅 CPU 安装运行 RealtimeSTT (在这种情况下,使用 “tiny” 或 “base” 等小型模型),但使用 GPU 支持会带来更好的体验。

GPU 支持

更新 PyTorch 以启用 CUDA 支持:

  • CUDA 11.8:
pip install torch==2.3.1+cu118 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu118
  • CUDA 12.X:
pip install torch==2.3.1+cu121 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu121

请注意:

  • 请访问官方 CUDA GPU 列表,检查您的 NVIDIA GPU 是否支持 CUDA。
  • 如果您以前没有使用 CUDA 模型,在安装之前可能需要执行一些额外的步骤,这些步骤将系统准备用于 CUDA 支持和 GPU 优化的安装。

快速入门

基本用法:

  • 手动录制:
recorder.start()  # 开始录制
recorder.stop()   # 停止录制
print(recorder.text())  # 打印转录结果
  • 自动录制: 基于语音活动检测的录制。
with AudioToTextRecorder() as recorder:
    print(recorder.text())  # 打印转录结果

建议: 在循环中运行 recorder.text() 时,建议使用回调函数,允许异步运行转录。

def process_text(text):
    print(text)

while True:
    recorder.text(process_text)  # 使用回调函数处理文本