alesaccoia/VoiceStreamAI

Near-Realtime audio transcription using self-hosted Whisper and WebSocket in Python/JS

解决的问题

VoiceStreamAI 提供了一种通过从 Web 浏览器向服务器流式传输音频来实现近实时音频转写的方法。它通过使用语音活动检测 (VAD) 来确保仅对实际语音进行转写,从而减少计算负载和网络带宽,解决了高效处理连续音频流的挑战。

工作原理

该系统由基于 Python 的服务器和通过 WebSockets 通信的 JavaScript 客户端组成。客户端捕获音频并将其以分块 (chunk) 形式发送到服务器。服务器使用模块化流水线来处理这些音频:

  1. 语音活动检测 (VAD):使用 Silero 或 Pyannote 等模型,服务器识别包含语音的音频段。
  2. 转写:系统使用自动语音识别 (ASR) 模型,默认为 faster-whisper(OpenAI Whisper 的高性能版本),将检测到的语音转换为文本。
  3. 缓冲策略:为了防止单词在分块边界处被切断,系统采用了 "SilenceAtEndOfChunk" 策略,即在触发转写之前等待语音停顿。

适用对象

寻求构建需要实时语音转文本功能的应用程序的开发人员,这些应用需要灵活的模块化架构,允许更换不同的 VAD 和 ASR 模型。

亮点

  • 模块化设计:使用工厂模式和策略模式来轻松集成新的 VAD 和 ASR 技术。
  • 实时流传输:利用 WebSockets 实现客户端与服务器之间的低延迟通信。
  • 高效处理:集成 VAD 可最大限度地减少非语音音频的处理,节省 GPU/CPU 资源。
  • 可定制性:客户端可以通过 JSON 消息动态配置语言、分块长度和处理策略。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目