모델 선택 가이드
첫 모델을 고르고, Whisper 또는 cloud ASR와 비교하고, OpenAI 호환 API에서 노출할 model alias를 결정합니다.
망설이면 SenseVoice-Small
아직 확실하지 않다면 SenseVoice-Small부터 시작합니다. 데모, private API, 다국어 transcription, 화자 정보가 필요한 회의록, agent voice input에 좋은 기본값입니다.
from funasr import AutoModel
model = AutoModel(
model="iic/SenseVoiceSmall",
vad_model="fsmn-vad",
spk_model="cam++",
device="cuda", # portable smoke test에서는 "cpu"
)
result = model.generate(input="meeting.wav")
결정표
| 목적 | 먼저 시도 | 이유 | 다음 문서 |
|---|---|---|---|
| 빠른 다국어 private transcription | SenseVoice-Small | ASR, emotion tag, audio event tag, CPU viability의 균형이 좋습니다. | README quickstart |
| 중국어 production ASR | Paraformer-Large | VAD와 punctuation을 조합하기 쉬운 성숙한 중국어 ASR 경로입니다. | README quickstart |
| API example에서 영어 route 확인 | paraformer-en | OpenAI 스타일 client에서 가벼운 영어 route를 확인하기 좋습니다. | OpenAI API |
| LLM-based ASR 또는 31개 언어 실험 | Fun-ASR-Nano | LLM-based path입니다. decoder throughput이 중요하면 vLLM을 함께 씁니다. | vLLM guide |
| 실시간 자막 또는 call-center stream | Runtime WebSocket service | long-lived streaming session과 partial result에 맞습니다. | Runtime docs |
| Whisper/cloud ASR에서 이전 | 먼저 SenseVoice-Small | 모델별 tuning 전에 강한 baseline을 만들 수 있습니다. | Migration guide |
OpenAI 호환 API alias
examples/openai_api server는 짧은 alias를 제공합니다. application team은 model repository ID를 몰라도 연결할 수 있습니다.
| Alias | 실제 경로 | 사용 상황 |
|---|---|---|
sensevoice | iic/SenseVoiceSmall | 다국어 ASR, event tag, CPU/GPU behavior가 균형 잡힌 default private speech API. |
paraformer | paraformer-zh | 중국어 production route. |
paraformer-en | paraformer-en | OpenAI 스타일 client의 가벼운 영어 route. |
fun-asr-nano | FunAudioLLM/Fun-ASR-Nano-2512 | LLM-based ASR, 31개 언어 coverage, vLLM acceleration 평가. |
curl http://localhost:8000/v1/models
python examples/openai_api/smoke_test.py --base-url http://localhost:8000 --model sensevoice
workload별 runtime
| workload | runtime path | 메모 |
|---|---|---|
| Notebook 또는 일회성 평가 | Python AutoModel | install, model download, output shape를 확인하는 가장 짧은 경로입니다. |
| 사내 HTTP service | OpenAI 호환 API | OpenAI-style clients, Dify, n8n, LangChain, AutoGen, HTTP node를 재사용합니다. |
| 재현 가능한 local container demo | Docker Compose API | CPU-first smoke test입니다. CUDA 전에 image를 조정합니다. |
| cluster 내부 private service | Kubernetes API template | private ClusterIP, persistent model cache, health probes, port-forward smoke test. |
| live audio | Runtime WebSocket service | 실제 오디오로 chunking, VAD, endpointing, reconnect, client backpressure를 검증합니다. |
| LLM-based ASR throughput | Fun-ASR-Nano의 vLLM path | vLLM은 autoregressive decoding을 가속하며, non-autoregressive Paraformer에는 쓰지 않습니다. |
runtime과 deployment target을 고를 때는 배포 선택표도 확인하세요.
결정 전 benchmark
- 짧은 clip, 긴 회의, silence, noise, overlapping speakers, domain vocabulary, target languages를 포함한 대표 오디오 20-50개를 준비합니다.
- model name, model revision, FunASR version, device, CPU/GPU type, CUDA/PyTorch version, runtime path, batch size, warmup/model download time 제외 여부를 기록합니다.
- transcript가 읽기 좋은지뿐 아니라 WER/CER 또는 human review로 품질을 확인합니다.
- latency, throughput, memory, failures, upload size limit을 함께 추적합니다.
- public smoke sample과 realistic private sample을 최소 1개씩 남깁니다.
migration work에서는 migration benchmark example과 migration guide를 사용합니다.