fluxions-ai/vui
Vui Nano — a small, context-aware text-to-speech model trained on real conversations. 219M active params (305M total), Apache 2.0, voice cloning, streaming, runs on CPU (dependency-free C build). Ships with a full real-time voice assistant: WebRTC, ASR, local LLM, OpenAI Realtime API compatible.
Vui – 실시간 대화형 음성 보조기
무엇인가요 – Vui(발음: "vooey")는 오픈소스이자 실시간 음성보조기 스택입니다. 단일 Python 서버가 음성-텍스트 변환, 로컬 대규모 언어 모델(LLM), 스트리밍 텍스트-음성 변환(TTS) 모델을 연결하여 컴퓨터와 대화하고 즉각적인 음성 응답을 들을 수 있게 합니다.
핵심 모델 – Vui Nano – Qwen‑3 TTS 코덱 기반의 300 M 파라미터 음성 변환기입니다. 대화형 음성(숨결, 웃음, 망설임 포함)으로 훈련되었으며, 여러 사전 설정된 성격으로 음성 클론이 가능합니다.
주요 기능
- 풀디플렉스 음성 루프 – WebRTC + WebSocket 파이프라인: ASR → LLM → TTS, VAD 기반의 전환 제어 및 바지인(응답 중에 중단 가능) 기능.
- 스트리밍 TTS – RTX 4090에서 약 9배 실시간 속도로 작동하며, bf16 추론과 CUDA 그래프를 사용합니다.
- OpenAI Realtime API 호환성 – OpenAI 사양을 따르는 클라이언트가 사용할 수 있는 드롭인
ws://…/v1/realtime엔드포인트 제공. - 한 번의 요청으로 음성 노트 생성 –
POST /v1/voice-note는 단일 HTTP 호출로 전체 파이프라인을 실행합니다(오디오 입력, base64-WAV 포함 JSON 출력). - 플러그인형 백엔드 – Ollama, vLLM, 또는 어떤 OpenAI 호환 서비스도 LLM 백엔드로 선택 가능; ASR에는 faster‑whisper(GPU) 또는 Moonshine(CPU/ONNX) 중 선택 가능.
- 도구 라우팅("사고 스트림") – 각 대화 단계를 병렬로 모니터링하는 LLM이 웨이크워드 문법 없이 약 15개의 내장 도구(기억, 타이머, 웹 검색, Claude 스타일 작업 서버로 위임)를 호출할 수 있습니다.
- 음성 클론 및 조건부 설정 – 샘플을 업로드하여 화자 클론 가능; 두 가지 조건 벡터를 통해 음성 품질(6개 SQ 채널)과 초당 단어 수(WPS)를 조절할 수 있습니다.
- 다중 플랫폼 지원 – Linux + NVIDIA GPU용 Docker-compose, macOS용 네이티브 설치(Apple Silicon용 MLX 백엔드), Cloudflare Tunnel 또는 Tailscale를 통한 모바일 접근을 위한 문서화된 경로 제공.
설치
# 단일 명령어 설치 스크립트 (Docker vs 네이티브 자동 감지, 종속성 다운로드, 모델 다운로드)
curl -fsSL https://install.fluxions.ai | bash
스크립트는 리포지토리를 ~/vui에 클론하고 Python(uv)을 설정하며, ffmpeg, Ollama, Claude Code CLI를 설치한 후 http://localhost:8080에서 UI를 시작합니다.
일반적인 Docker 워크플로우
- Docker + NVIDIA Container Toolkit 설치.
- Ollama용 LLM을 다운로드, 예:
ollama pull qwen3.5:4b. docker compose up -d– Vui 스트리밍 컨테이너(옵션으로 Ollama/Claude 사이드카 포함)를 실행합니다.- 브라우저를 열고 마이크 접근 권한을 허용한 후 대화를 시작합니다.
네이티브 워크플로우(Docker 없음) – ffmpeg 설치 후 uv sync 실행(또는 Apple Silicon에서는 uv sync만 실행), Ollama 시작, 모델 다운로드 후:
python -m vui.serving.stream # http://localhost:8080에서 서버 실행
환경 변수(VUI_OLLAMA_URL, VUI_OLLAMA_MODEL, VUI_LLM_BACKEND 등)를 통해 서버를 어떤 호환 가능한 LLM 백엔드로도 지정할 수 있습니다.
데모 유틸리티
demo.py– TTS 모델만 실행하는 Gradio UI(음성 클론 업로드, CLI 렌더링).docker compose프로파일을 사용해 Ollama 컨테이너 또는 Claude-작업 사이드카를 추가하여 위임된 다단계 작업(이메일, 캘린더, 웹 리서치)을 수행할 수 있습니다.
확장성
- ASR – UI에서 faster‑whisper(GPU)와 Moonshine(CPU/ONNX) 간 전환 가능.
- LLM – Ollama 모델, vLLM 서버, 또는 OpenAI 호환 엔드포인트 모두 사용 가능.
- 도구 – "사고" 라우터는 플러그인 가능;
docs/thoughts-tools.md가이드를 통해 로컬 함수(타이머, 스마트홈 전환기 등)를 추가할 수 있습니다. - 검색 제공자 – 단일 쿼리에 대한 사실 확인을 위한 Serper, Brave, 또는 Tavily API.
더 알아보기
- 라이브 데모: https://fluxions.ai/talk
- 런칭 블로그 포스트(디자인 노트 및 로드맵): https://fluxions.ai/blog/vui-launch
- Hugging Face 모델: https://huggingface.co/fluxions/vui
- 전체 API 사양:
docs/realtime-api.md - 구성 세부 정보:
docs/configuration.md - Claude 작업 서버 문서:
docs/claude-task-server.md
결론 – Vui는 로컬(GPU 또는 Apple Silicon) 또는 Docker에서 실행할 수 있는 프로덕션 수준의 엔드투엔드 음성보조기 파이프라인을 제공합니다. ASR/LLM/TTS 컴포넌트를 교체 가능하게 하고, 도구 통합 및 OpenAI 호환 실시간 인터페이스를 지원합니다. 음성 중심의 대화형 에이전트에 초점을 맞춘 진정한 AI/ML 프로젝트입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트