2026-05-02 21:05:28 +09:00
2026-05-02 20:35:34 +09:00
2026-05-02 20:20:54 +09:00
2026-05-02 20:20:54 +09:00
2026-05-02 20:35:34 +09:00

realtime_voice_bot

출력장치로 재생되는 소리를 파일 저장 없이 바로 받아서, 메모리 버퍼에서 발화 구간을 나눈 뒤 faster-whisper로 STT 하는 최소 프로토타입입니다.

현재 문서는 Windows PC에서 실행하는 기준으로 적었습니다.

현재 범위

  • Node.js + TypeScript 메인 프로세스
  • 출력 오디오 실시간 캡처
  • 메모리 버퍼 기반 간단한 저지연 발화 분리
  • 미리 로드한 faster-whisper 워커에 PCM 직접 전달
  • 디스크에 WAV 저장 없이 바로 전사

빠른 시작

bun install
bun run setup:python
copy .env.example .env

장치 목록 확인:

bun run devices

실행:

bun run start:loopback

환경 변수

  • AUDIO_SOURCE
    • bun run devices 에서 보이는 ffmpeg dshow 오디오 장치 이름
    • 보통 Stereo Mix, 오디오 인터페이스 loopback 채널, 가상 케이블 입력 같은 이름을 넣습니다
  • WHISPER_MODEL
    • 기본값 large-v3-turbo
  • WHISPER_LANGUAGE
    • 기본값 ko
  • WHISPER_DEVICE
    • auto, cuda, cpu
  • WHISPER_COMPUTE_TYPE
    • auto, float16, int8_float16, int8, float32
  • WHISPER_BEAM_SIZE
    • 기본값 1

메모

  • 이 버전은 일단 STT만 합니다.
  • 최소 지연을 위해 파일 저장은 하지 않습니다.
  • VAD는 현재 모델 기반이 아니라 진폭 기반 단순 분리입니다.
  • Windows에서는 보통 출력 루프백이 가능한 장치나 Stereo Mix, 오디오 인터페이스 loopback 채널을 AUDIO_SOURCE로 잡아야 합니다.
  • 단순히 스피커 이름을 넣는 구조가 아니라, 루프백/캡처 가능한 입력 장치 이름을 넣어야 합니다.
  • ffmpeg가 PATH에 잡혀 있어야 합니다.
  • cmd 기준으로 .envcopy .env.example .env로 만들면 됩니다.

Windows 테스트 순서

  1. bun install
  2. bun run setup:python
  3. copy .env.example .env
  4. bun run devices
  5. .env에서 AUDIO_SOURCE=에 루프백 장치 이름 입력
  6. bun run start:loopback
  7. 유튜브, 디스코드 통화, 동영상 같은 소리를 재생해서 전사 로그 확인

Windows용 .env 예시

LOCAL_AI_PYTHON=python
AUDIO_SOURCE=
WHISPER_MODEL=large-v3-turbo
WHISPER_LANGUAGE=ko
WHISPER_DEVICE=auto
WHISPER_COMPUTE_TYPE=auto
WHISPER_BEAM_SIZE=1
DEBUG_TRANSCRIPTS=true
LOG_LEVEL=info
Description
No description provided
Readme 561 KiB
Languages
TypeScript 87.3%
Python 11.6%
Dockerfile 0.8%
Batchfile 0.3%