alesaccoia/VoiceStreamAI

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

해결하는 문제

VoiceStreamAI는 웹 브라우저에서 서버로 오디오를 스트리밍하여 근실시간 오디오 전사를 수행하는 방법을 제공합니다. Voice Activity Detection(VAD)을 사용하여 실제 음성만 전사되도록 보장함으로써 계산 부하와 네트워크 대역폭을 줄이고, 연속적인 오디오 스트림을 효율적으로 처리하는 과제를 해결합니다.

작동 원리

이 시스템은 WebSockets를 통해 통신하는 Python 기반 서버와 JavaScript 클라이언트로 구성됩니다. 클라이언트는 오디오를 캡처하여 서버에 청크(chunk) 단위로 전송합니다. 서버는 다음과 같은 모듈형 파이프라인을 사용하여 오디오를 처리합니다:

  1. Voice Activity Detection (VAD): Silero 또는 Pyannote와 같은 모델을 사용하여 서버가 음성이 포함된 오디오 세그먼트를 식별합니다.
  2. 전사 (Transcription): 시스템은 자동 음성 인식(ASR) 모델을 사용하며, 기본적으로 faster-whisper(OpenAI Whisper의 고성능 버전)를 사용하여 감지된 음성을 텍스트로 변환합니다.
  3. 버퍼링 전략: 청크 경계에서 단어가 잘리는 것을 방지하기 위해 시스템은 "SilenceAtEndOfChunk" 전략을 채택하여, 전사를 트리거하기 전에 음성 일시 정지를 기다립니다.

대상 사용자

다양한 VAD 및 ASR 모델로 교체할 수 있는 유연하고 모듈화된 아키텍처를 통해 실시간 음성-텍스트 변환 기능이 필요한 애플리케이션을 구축하려는 개발자.

주요 특징

  • 모듈형 설계: Factory 및 Strategy 패턴을 사용하여 새로운 VAD 및 ASR 기술을 쉽게 통합할 수 있습니다.
  • 실시간 스트리밍: WebSockets를 활용하여 클라이언트와 서버 간의 저지연 통신을 실현합니다.
  • 효율적인 처리: VAD 통합을 통해 음성이 아닌 오디오 처리를 최소화하여 GPU/CPU 리소스를 절약합니다。
  • 커스터마이징 가능: 클라이언트는 JSON 메시지를 통해 언어, 청크 길이 및 처리 전략을 동적으로 구성할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트