55 lines
1.5 KiB
Markdown
55 lines
1.5 KiB
Markdown
# realtime_voice_bot
|
|
|
|
출력장치로 재생되는 소리를 파일 저장 없이 바로 받아서, 메모리 버퍼에서 발화 구간을 나눈 뒤 `faster-whisper`로 STT 하는 최소 프로토타입입니다.
|
|
|
|
## 현재 범위
|
|
|
|
- Node.js + TypeScript 메인 프로세스
|
|
- 출력 오디오 실시간 캡처
|
|
- 메모리 버퍼 기반 간단한 저지연 발화 분리
|
|
- 미리 로드한 `faster-whisper` 워커에 PCM 직접 전달
|
|
- 디스크에 WAV 저장 없이 바로 전사
|
|
|
|
## 빠른 시작
|
|
|
|
```bash
|
|
bun install
|
|
bun run setup:python
|
|
cp .env.example .env
|
|
```
|
|
|
|
장치 목록 확인:
|
|
|
|
```bash
|
|
bun run devices
|
|
```
|
|
|
|
실행:
|
|
|
|
```bash
|
|
bun run start:loopback
|
|
```
|
|
|
|
## 환경 변수
|
|
|
|
- `AUDIO_SOURCE`
|
|
- Windows: `bun run devices` 에서 보이는 `ffmpeg dshow` 오디오 장치 이름
|
|
- Linux: `pactl list sources short` 에서 보이는 monitor/source 이름
|
|
- `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`로 잡아야 합니다.
|