RealtimeVoiceChat: 실시간(~500ms) AI 음성 채팅 오픈소스 프로젝트

RealtimeVoiceChat 소개

KoljaB가 개발하여 공개한 오픈소스 프로젝트 RealtimeVoiceChat은 웹 브라우저를 통해 AI와 실시간 음성 대화를 가능하게 합니다. Docker 기반의 손쉬운 설치와 낮은 지연 시간(약 500ms)을 제공하여, 개인용 AI 비서나 음성 인터페이스를 구현하고자 하는 개발자들에게 매우 유용할 것으로 기대합니다.

RealtimeVoiceChat은 사용자의 음성을 실시간으로 인식하고, 대형 언어 모델(LLM)을 통해 응답을 생성한 후, 이를 다시 음성으로 변환하여 전달하는 시스템입니다. 전체 과정은 약 500ms의 지연 시간으로 이루어지며, 이는 실제 대화와 유사한 속도를 제공합니다. 이 프로젝트는 Whisper 기반의 RealtimeSTT와 Coqui XTTS 기반의 RealtimeTTS를 활용하여 음성 인식과 합성을 수행하며, Ollama나 OpenAI와 같은 다양한 LLM 백엔드를 지원합니다.

프로젝트는 Python과 FastAPI를 기반으로 한 백엔드와, Vanilla JavaScript와 Web Audio API를 활용한 프론트엔드로 구성되어 있습니다. 또한, Docker와 Docker Compose를 이용한 컨테이너화로 손쉬운 배포와 관리를 지원합니다.

KoljaB의 이전 프로젝트인 AIVoiceChat은 약 60줄의 코드로 간단한 음성 대화를 구현한 반면, RealtimeVoiceChat은 더 정교한 구조와 다양한 기능을 갖추고 있습니다. 특히, 실시간 스트리밍 처리, 대화 중단 감지, 다양한 음성 합성 엔진 지원 등 고급 기능을 통해 보다 자연스러운 대화 경험을 제공합니다.

RealtimeVoiceChat의 주요 기능

  • 실시간 음성 대화: 브라우저에서 음성을 캡처하고, 이를 실시간으로 처리하여 AI와의 자연스러운 대화를 지원합니다.
  • 낮은 지연 시간: 약 500ms의 지연 시간으로 빠른 응답을 제공합니다.
  • 다양한 LLM 백엔드 지원: Ollama, OpenAI 등 다양한 LLM 백엔드를 선택하여 사용할 수 있습니다.
  • 음성 합성 엔진 선택 가능: Coqui XTTS, Kokoro, Orpheus 등 다양한 음성 합성 엔진을 지원합니다.
  • 스마트 대화 흐름 제어: turndetect.py를 이용한 대화 중단 감지로 자연스러운 대화 흐름을 유지합니다.
  • 웹 기반 인터페이스: Vanilla JS와 Web Audio API를 활용한 간단한 웹 UI를 제공합니다.
  • Docker 기반 배포: Docker와 Docker Compose를 이용한 손쉬운 설치 및 배포를 지원합니다.

RealtimeVoiceChat의 동작 방식

  1. 음성 캡처: 브라우저에서 사용자의 음성을 캡처합니다.
  2. 오디오 스트리밍: 캡처된 오디오를 WebSocket을 통해 Python 백엔드로 전송합니다.
  3. 음성 인식: RealtimeSTT를 사용하여 음성을 텍스트로 변환합니다.
  4. LLM 처리: 변환된 텍스트를 LLM에 전달하여 응답을 생성합니다.
  5. 음성 합성: RealtimeTTS를 사용하여 텍스트 응답을 음성으로 변환합니다.
  6. 응답 전송: 생성된 음성을 브라우저로 스트리밍하여 재생합니다.
  7. 대화 중단 감지: 사용자의 발화를 감지하여 대화 흐름을 자연스럽게 유지합니다.

라이선스

RealtimeVoiceChat 프로젝트는 MIT License로 공개되어 있으며, 상업적 이용에 제한이 없습니다. 단, Coqui XTTS와 같은 외부 TTS 엔진 및 LLM 제공자의 라이선스는 별도로 확인하셔야 합니다.

:github: RealtimeVoiceChat GitHub 저장소




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

3개의 좋아요