diff --git a/.env.example b/.env.example index 9f94d8c..35db3cf 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,6 @@ LOCAL_AI_VENV_PATH=.local-ai/.venv # Windows면 보통 python 또는 py -3 -LOCAL_AI_PYTHON= +LOCAL_AI_PYTHON=python # Windows: ffmpeg dshow 장치 이름 # Linux: pactl list sources short 에서 monitor/source 이름 diff --git a/README.md b/README.md index 329d2c2..487d39a 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ 출력장치로 재생되는 소리를 파일 저장 없이 바로 받아서, 메모리 버퍼에서 발화 구간을 나눈 뒤 `faster-whisper`로 STT 하는 최소 프로토타입입니다. +현재 문서는 **Windows PC에서 실행하는 기준**으로 적었습니다. + ## 현재 범위 - Node.js + TypeScript 메인 프로세스 @@ -12,29 +14,29 @@ ## 빠른 시작 -```bash +```bat bun install bun run setup:python -cp .env.example .env +copy .env.example .env ``` 장치 목록 확인: -```bash +```bat bun run devices ``` 실행: -```bash +```bat bun run start:loopback ``` ## 환경 변수 - `AUDIO_SOURCE` - - Windows: `bun run devices` 에서 보이는 `ffmpeg dshow` 오디오 장치 이름 - - Linux: `pactl list sources short` 에서 보이는 monitor/source 이름 + - `bun run devices` 에서 보이는 `ffmpeg dshow` 오디오 장치 이름 + - 보통 `Stereo Mix`, 오디오 인터페이스 loopback 채널, 가상 케이블 입력 같은 이름을 넣습니다 - `WHISPER_MODEL` - 기본값 `large-v3-turbo` - `WHISPER_LANGUAGE` @@ -52,3 +54,30 @@ bun run start:loopback - 최소 지연을 위해 파일 저장은 하지 않습니다. - VAD는 현재 모델 기반이 아니라 진폭 기반 단순 분리입니다. - Windows에서는 보통 출력 루프백이 가능한 장치나 `Stereo Mix`, 오디오 인터페이스 loopback 채널을 `AUDIO_SOURCE`로 잡아야 합니다. +- 단순히 스피커 이름을 넣는 구조가 아니라, **루프백/캡처 가능한 입력 장치 이름**을 넣어야 합니다. +- `ffmpeg`가 PATH에 잡혀 있어야 합니다. +- `cmd` 기준으로 `.env`는 `copy .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 예시 + +```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 +```