Agent 연동
음성 인식을 Agent, 제품, 데스크톱 워크플로의 로컬 인프라로 연결합니다. OpenAI 호환 API, MCP server, 음성 입력, 자막 생성 흐름을 한 번에 확인할 수 있습니다.
OpenAI 호환 API 서버
funasr-server는 /v1/audio/transcriptions, /v1/models, /health를 제공하고 /docs에서 Swagger 문서를 보여줍니다. OpenAI audio API를 이미 지원하는 framework와 바로 연결할 수 있습니다.
pip install funasr fastapi uvicorn python-multipart
funasr-server --device cuda --port 8000
# CPU fallback
funasr-server --device cpu --model sensevoice --port 8000
| Model alias | Backend | 적합한 사용처 |
|---|---|---|
sensevoice | iic/SenseVoiceSmall | 언어, 감정, 이벤트 태그가 필요한 빠른 다국어 ASR. |
paraformer | paraformer-zh + VAD + punctuation | 중국어 production transcription. |
paraformer-en | paraformer-en + VAD | 영어 transcription. |
fun-asr-nano | FunAudioLLM/Fun-ASR-Nano-2512 | timestamp가 필요한 31개 언어 LLM-based ASR. |
OpenAI SDK와 curl
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="not-needed")
result = client.audio.transcriptions.create(
model="sensevoice",
file=open("meeting.wav", "rb"),
)
print(result.text)
verbose = client.audio.transcriptions.create(
model="sensevoice",
file=open("meeting.wav", "rb"),
response_format="verbose_json",
)
print(verbose.segments)
curl http://localhost:8000/v1/audio/transcriptions \
-F file=@audio.wav \
-F model=sensevoice \
-F response_format=verbose_json
Dify, n8n, workflow engine
한국어 빠른 시작은 OpenAI API 예제에서 시작합니다. HTTP node나 webhook worker로 음성 API를 호출하는 low-code tool은 workflow recipes를 참고하세요. multipart upload 설정, Dify custom tool, n8n binary file field, audio URL worker, timeout, production guardrail을 다룹니다. Node.js, TypeScript, Next.js service는 JavaScript/TypeScript recipes에서 시작할 수 있습니다. GUI smoke test에는 Postman collection, CLI 확인에는 Python smoke test, 브라우저 업로드와 마이크 확인에는 Gradio demo를 사용하세요. 서비스를 공유하기 전에는 security and gateway guide를 확인하고, schema-driven import에는 OpenAPI spec을 사용합니다.
한국어 API quickstart · Workflow recipes · JS/TS recipes · Python smoke test · Gradio demo · Security guide · Postman collection · OpenAPI spec
MCP Server
MCP server는 Claude Code, Claude Desktop, Cursor, Windsurf, 기타 MCP client에 로컬 transcribe_audio tool을 제공합니다.
pip install funasr
python examples/mcp_server/funasr_mcp.py
{
"mcpServers": {
"funasr": {
"command": "python",
"args": ["/path/to/examples/mcp_server/funasr_mcp.py"],
"env": {"FUNASR_DEVICE": "cuda"}
}
}
}
| 변수 | 기본값 | 설명 |
|---|---|---|
FUNASR_DEVICE | cpu | cuda, cpu, mps. |
FUNASR_MODEL | iic/SenseVoiceSmall | MCP tool이 사용하는 ASR model. |
Desktop 음성 입력
voice input 예제는 마이크에서 녹음하고, 오디오를 funasr-server로 보내고, 인식한 텍스트를 현재 커서 위치에 붙여넣습니다.
pip install funasr sounddevice numpy pyperclip openai pynput
funasr-server --device cuda
cd examples/voice_input
python funasr_input.py --server http://localhost:8000/v1 --model sensevoice
| Platform | Recording | Paste |
|---|---|---|
| macOS | Yes | AppleScript |
| Linux | Yes | xdotool |
| Windows | Yes | 필요하면 수동 Ctrl+V |
자막 생성
subtitle 예제는 오디오나 비디오 파일을 SRT/VTT로 변환하고, 선택적으로 speaker label을 추가합니다.
cd examples/subtitle
python generate_subtitle.py video.mp4
python generate_subtitle.py meeting.wav --spk
python generate_subtitle.py podcast.mp3 --format vtt
python generate_subtitle.py audio.wav --device cpu
| Option | Default | Description |
|---|---|---|
--format | srt | srt 또는 vtt. |
--model | iic/SenseVoiceSmall | ASR model. |
--spk | off | speaker label 추가. |
--lang | auto | 언어 hint. |