- 이 프로젝트는 AI와 자연스러운 음성 대화를 가능하게 하는 시스템임
- 사용자는 음성으로 대화하고, AI는 실시간으로 음성 응답을 제공함
- 저지연 상호작용을 위한 클라이언트-서버 시스템을 사용함
- 다양한 AI 백엔드와 TTS 엔진을 선택할 수 있는 유연성을 제공함
- Docker를 사용하여 손쉽게 배포 가능함
실시간 AI 음성 채팅
- AI와 자연스러운 음성 대화를 할 수 있는 프로젝트임
- 사용자는 음성으로 대화하고, AI는 실시간으로 음성 응답을 제공함
시스템 작동 방식
-
캡처: 브라우저에서 사용자의 음성을 캡처함
-
스트림: 오디오 청크를 WebSockets를 통해 Python 백엔드로 전송함
-
전사: RealtimeSTT가 음성을 텍스트로 빠르게 변환함
-
생각: 텍스트가 LLM(예: Ollama, OpenAI)으로 전송되어 처리됨
-
합성: AI의 텍스트 응답을 RealtimeTTS로 음성으로 변환함
-
반환: 생성된 오디오가 브라우저로 스트리밍되어 재생됨
-
중단: 언제든지 대화에 끼어들 수 있으며, 시스템은 중단을 잘 처리함
주요 기능
-
유연한 대화: 실제 대화처럼 말하고 들을 수 있음
-
실시간 피드백: 부분 전사 및 AI 응답을 실시간으로 확인 가능함
-
저지연 초점: 오디오 청크 스트리밍을 통한 최적화된 아키텍처
-
스마트 턴테이킹: turndetect.py를 사용하여 대화 속도에 맞춰 동적 침묵 감지
-
유연한 AI 백엔드: 플러그 가능한 LLM 백엔드(Ollama 기본, OpenAI 지원)
-
커스터마이즈 가능한 음성: 다양한 TTS 엔진 선택 가능(Kokoro, Coqui, Orpheus)
-
웹 인터페이스: Vanilla JS와 Web Audio API를 사용한 간단한 UI
-
Dockerized 배포: Docker Compose를 사용한 권장 설정으로 의존성 관리 용이
기술 스택
-
백엔드: Python 3.x, FastAPI
-
프론트엔드: HTML, CSS, JavaScript (Vanilla JS, Web Audio API, AudioWorklets)
-
통신: WebSockets
-
컨테이너화: Docker, Docker Compose
-
코어 AI/ML 라이브러리: RealtimeSTT, RealtimeTTS, transformers, torch / torchaudio, ollama / openai
-
오디오 처리: numpy, scipy
사전 요구 사항
-
운영 체제: Docker 사용 시 Linux 권장
-
Python: 3.9 이상
-
GPU: CUDA 지원 NVIDIA GPU 권장
-
Docker: Docker Engine 및 Docker Compose v2+ 권장
-
Ollama 및 OpenAI API 키: 선택 사항
설치 및 설정
-
Docker 설치: 애플리케이션, 의존성, Ollama를 포함한 컨테이너로 관리
-
수동 설치: Python 환경을 직접 관리, ML 의존성 관리 필요
애플리케이션 실행
-
Docker 사용 시: docker compose up -d로 이미 실행 중
-
수동/스크립트 설치 시: 가상 환경 활성화 후 FastAPI 서버 시작
설정 세부 사항
- AI의 음성, 두뇌, 청취 방식을 조정 가능
- Docker 사용 시 docker compose build 전에 설정 변경 필요
기여 및 라이선스
- 기여 환영, MIT 라이선스 하에 배포
- 외부 TTS 엔진 및 LLM 제공자의 라이선스 준수 필요