# STT API 및 모델 로드 가이드

이 프로젝트는 현재 파이썬 환경의 **faster-whisper**를 기반으로 작동합니다. (기존 whisper.cpp의 C++ 빌드 의존성을 제거하고, 윈도우 환경에서의 완벽한 호환성을 확보했습니다.)

## 1. 모델 준비 및 로딩 방식

### 1-1. 작동 원리
`faster-whisper`는 **CTranslate2** 엔진을 내부적으로 사용하여 Whisper 모델의 속도와 메모리를 극한으로 최적화한 구현체입니다.

- **모델 파일 다운로드 불필요:** 기존 C++ 포맷(.bin)을 수동으로 받을 필요가 없습니다. 
- 파이썬 코드가 실행될 때 `settings.WHISPER_MODEL_NAME` (예: `"base"`, `"large-v3-turbo"`) 문자열을 통해 HuggingFace에서 자동으로 최적화된 모델 캐시를 로컬 폴더로 다운로드합니다.
- **CPU 환경 최적화**: 코드 내에서 `device="cpu"` 및 `compute_type="int8"` 가 지정되어 있어 무거운 GPU 세팅 없이도 가볍고 쾌적하게 동작합니다.

### 1-2. 모델 변경
더 높은 정확도를 원한다면 `app/core/config.py` 에서 모델 이름을 수정하기만 하면 됩니다.
- `"base"`: 처리 속도 우선시
- `"small"`: 밸런스형
- `"large-v3-turbo"`: 한국어 등 다국어 처리 시 극강의 정확도

---

## 2. FastAPI 아키텍처 도입 안내
실시간 무전 수신과 대시보드 웹 UI 연동을 위해 `FastAPI` 기반의 백엔드를 구축했습니다. 시스템은 다음과 같이 변경됩니다.

- **RESTful API Endpoint 구성**: 다른 시스템이나 프론트엔드에서 `/api/v1/transcribe` 로 HTTP POST 요청만 보내면 바로 결과를 받을 수 있습니다.
- **Pydantic 연동 최적화**: `STTResponse` 객체가 FastAPI의 Swagger UI와 100% 자동 매핑됩니다.
- **비동기 확장성**: 현재는 동기식 파일 분석으로 작성되었으나, FastAPI의 `async/await` 구조 덕분에 향후 WebSocket 실시간 스트리밍 분석 등으로 즉시 확장 가능합니다.
