실시간 음성 채팅: AI를 통한 지연 시간이 짧은 자연스러운 음성 대화

최신 AI 리소스3 개월 전에 게시 됨 AI 공유 서클
1.4K 00

일반 소개

RealtimeVoiceChat은 음성을 통한 인공 지능과의 실시간 자연스러운 대화에 중점을 둔 오픈 소스 프로젝트입니다. 사용자가 마이크를 사용하여 음성을 입력하면 시스템이 브라우저를 통해 오디오를 캡처하여 텍스트, 대규모 언어 모델(LLM)로 빠르게 변환하여 응답을 생성한 다음 텍스트를 음성 출력으로 변환하여 전체 프로세스가 실시간에 가깝습니다. 이 프로젝트는 짧은 대기 시간에 중점을 둔 클라이언트-서버 아키텍처를 채택하고 WebSocket 스트리밍 및 동적 대화 관리를 지원합니다. 도커 배포를 제공하고, 리눅스 시스템과 엔비디아 GPU 환경에서 실행할 것을 권장하며, 리얼타임STT, 리얼타임TTS 및 Ollama 및 개발자가 음성 상호작용 애플리케이션을 구축하는 데 적합한 기타 기술입니다.

RealtimeVoiceChat:低延迟与AI进行自然口语对话

 

기능 목록

  • 실시간 음성 상호작용사용자가 브라우저 마이크를 통해 음성을 입력하면 시스템이 이를 실시간으로 전사하여 음성 응답을 생성합니다.
  • 짧은 지연 시간 처리WebSocket을 사용하여 오디오를 스트리밍하여 음성 대 텍스트 및 텍스트 대 음성 대기 시간을 0.5~1초로 최적화합니다.
  • 음성 텍스트 변환(STT)동적 트랜스 크립 션을 지원하는 RealtimeSTT(Whisper 기반)를 사용하여 음성을 텍스트로 빠르게 변환합니다.
  • 텍스트 음성 변환(TTS)음성 스타일 선택이 가능한 RealtimeTTS(코키, 코코로, 오르페우스 지원)를 통해 자연스러운 음성을 생성합니다.
  • 지능형 대화 관리유연한 대화 생성 및 인터럽트 처리를 지원하기 위해 Ollama 또는 OpenAI의 언어 모델을 통합합니다.
  • 동적 음성 감지통해 turndetect.py 지능형 무음 감지를 활성화하고 대화의 리듬에 맞춰 조정합니다.
  • 웹 인터페이스깔끔한 브라우저 인터페이스를 제공하고, 바닐라 JS와 웹 오디오 API를 사용하며, 실시간 피드백을 지원합니다.
  • 도커 배포Docker Compose를 통한 간소화된 설치, GPU 가속 및 모델 관리 지원.
  • 모델 사용자 지정음성 및 대화 매개변수를 조정하기 위해 STT, TTS 및 LLM 모델 간 전환을 지원합니다.
  • 오픈 소스 및 확장 가능이 코드는 공개적으로 사용 가능하며 개발자는 자유롭게 기능을 수정하거나 확장할 수 있습니다.

 

도움말 사용

설치 프로세스

RealtimeVoiceChat은 도커 배포(권장)와 수동 설치를 모두 지원하며, 도커 방식은 Linux 시스템, 특히 NVIDIA GPU가 있는 환경에 적합하고 수동 설치는 Windows 또는 더 많은 제어가 필요한 시나리오에 적합합니다. 자세한 단계는 다음과 같습니다:

Docker 배포(권장)

도커 엔진, 도커 컴포즈 v2+ 및 엔비디아 컨테이너 툴킷(GPU 사용자)이 필요합니다. 최상의 GPU 지원을 위해 Linux 시스템을 권장합니다.

  1. 클론 창고::
    git clone https://github.com/KoljaB/RealtimeVoiceChat.git
    cd RealtimeVoiceChat
  1. 도커 이미지 구축::
    docker compose build
    

    이 단계에서는 기본 이미지를 다운로드하고, Python 및 머신 러닝 종속 요소를 설치하며, 기본 STT 모델(Whisper base.en). 시간이 오래 걸리므로 네트워크가 안정적인지 확인하세요.

  2. 서비스 시작::
    docker compose up -d
    

    컨테이너가 백그라운드에서 실행 중인 상태에서 애플리케이션과 Ollama 서비스를 시작합니다. 초기화가 완료될 때까지 1~2분 정도 기다립니다.

  3. 풀 올라마 모델::
    docker compose exec ollama ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
    

    이 명령은 기본 언어 모델을 가져옵니다. 사용자는 기본 언어 모델은 code/server.py 수정 LLM_START_MODEL 를 클릭하여 다른 모델을 사용하세요.

  4. 모델 사용성 검증::
    docker compose exec ollama ollama list
    

    모델이 올바르게 로드되었는지 확인합니다.

  5. 서비스 중지 또는 다시 시작::
    docker compose down  # 停止服务
    docker compose up -d  # 重启服务
    
  6. 로그 보기::
    docker compose logs -f app  # 查看应用日志
    docker compose logs -f ollama  # 查看 Ollama 日志
    

수동 설치(Windows/Linux/macOS)

수동 설치에는 Python 3.9 이상, CUDA 12.1(GPU 사용자) 및 FFmpeg가 필요합니다. Windows 사용자는 제공된 install.bat 스크립트는 프로세스를 간소화합니다.

  1. 기본 종속성 설치::
    • Python 3.9 이상이 설치되어 있는지 확인합니다.
    • GPU 사용자는 NVIDIA CUDA 툴킷 12.1 및 cuDNN을 설치합니다.
    • FFmpeg를 설치합니다:
      # Ubuntu/Debian
      sudo apt update && sudo apt install ffmpeg
      # Windows (使用 Chocolatey)
      choco install ffmpeg
      
  2. 리포지토리 복제 및 가상 환경 만들기::
    git clone https://github.com/KoljaB/RealtimeVoiceChat.git
    cd RealtimeVoiceChat
    python -m venv venv
    # Linux/macOS
    source venv/bin/activate
    # Windows
    .\venv\Scripts\activate
    
  3. PyTorch 설치(하드웨어와 일치하는)::
    • GPU(CUDA 12.1):
      pip install torch==2.5.1+cu121 torchaudio==2.5.1+cu121 torchvision --index-url https://download.pytorch.org/whl/cu121
      
    • CPU(성능 저하):
      pip install torch torchaudio torchvision
      
  4. 추가 종속성 설치::
    cd code
    pip install -r requirements.txt
    

    참고: DeepSpeed는 설치가 복잡할 수 있으며, Windows 사용자는 다음을 통해 설치할 수 있습니다. install.bat 자동 처리.

  5. Ollama 설치(비도커 사용자)::
    • 설치 방법은 Ollama 공식 문서를 참조하세요.
    • 모델을 당깁니다:
      ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
      
  6. 애플리케이션 실행::
    python server.py
    

주의

  • 하드웨어 요구 사항낮은 지연 시간을 보장하기 위해 NVIDIA GPU(최소 8GB RAM)를 권장하며, CPU 작동으로 인해 성능이 크게 저하될 수 있습니다.
  • Docker 구성수정 : 수정 code/*.py 어쩌면 docker-compose.yml 그렇게 하려면 먼저 다음을 다시 실행해야 합니다. docker compose build.
  • 라이선스 준수TTS 엔진(예: Coqui XTTSv2)과 LLM 모델에는 별도의 라이선스가 있으며 해당 약관의 적용을 받습니다.

워크플로

  1. 웹 인터페이스에 액세스하기::
    • 브라우저를 열고 다음 사이트를 방문하세요. http://localhost:8000(또는 원격 서버 IP)를 입력합니다.
    • 마이크 권한을 부여하고 '시작'을 클릭하여 대화를 시작합니다.
  2. 음성 상호작용::
    • 마이크에 대고 말하면 시스템이 웹 오디오 API를 통해 오디오를 캡처합니다.
    • 오디오는 웹소켓을 통해 백엔드로 전송되고, RealtimeSTT는 텍스트로 변환되며, Ollama/OpenAI가 응답을 생성하고, RealtimeTTS는 음성으로 변환되어 브라우저를 통해 재생됩니다.
    • 대화 지연은 일반적으로 0.5~1초이며, 언제든지 중단 및 계속을 지원합니다.
  3. 실시간 피드백::
    • 인터페이스에는 부분적으로 전사된 텍스트와 AI 응답이 표시되어 사용자가 대화를 쉽게 따라갈 수 있습니다.
    • '중지'를 클릭하여 대화를 종료하고 '초기화'를 클릭하여 기록을 지울 수 있습니다.
  4. 구성 조정::
    • TTS 엔진: in code/server.py 설정 START_ENGINE(예 coquikokoroorpheus)를 클릭하고 음성 스타일을 조정합니다.
    • LLM 모델수정 : 수정 LLM_START_PROVIDER 노래로 응답 LLM_START_MODEL다음은 Ollama의 가장 인기 있는 기능 중 일부입니다.
    • STT 매개변수: in code/transcribe.py 중앙 무대 조정 Whisper 모델링, 언어 또는 침묵 임계값.
    • 침묵 감지: in code/turndetect.py 수정 silence_limit_seconds(기본값 0.2초)를 설정하여 대화 속도를 최적화할 수 있습니다.
  5. 디버깅 및 최적화::
    • 로그 보기:docker compose logs -f(도커)를 사용하거나 server.py 출력.
    • 성능 문제: CUDA 버전 일치 확인, 감소 realtime_batch_size 또는 경량 모델을 사용하세요.
    • 네트워크 구성: HTTPS가 필요한 경우 다음을 설정합니다. USE_SSL = True 를 클릭하고 인증서 경로를 입력합니다(공식 SSL 구성 참조).

주요 기능 작동

  • 저지연 스트리밍 처리웹소켓을 통한 오디오 청킹, 실시간STT 및 실시간TTS와 결합하여 대기 시간이 0.5초로 짧습니다. 사용자는 기다릴 필요 없이 원활하게 대화할 수 있습니다.
  • 동적 대화 관리::turndetect.py 말의 끝을 지능적으로 감지하여 자연스러운 중단을 지원합니다. 예를 들어 사용자가 언제든지 중단할 수 있으며 시스템이 일시 정지하여 새로운 입력을 생성하고 처리합니다.
  • 웹 인터페이스 상호 작용브라우저 인터페이스는 바닐라 JS와 웹 오디오 API를 사용하여 실시간 트랜스크립션 및 응답 표시를 제공합니다. 사용자는 '시작/중지/재설정' 버튼으로 대화를 제어할 수 있습니다.
  • 모델링 유연성TTS 엔진(코키/코코로/오르페우스) 및 LLM 백엔드(올라마/오픈AI) 전환 지원. 예를 들어, TTS 전환:
    START_ENGINE = "kokoro"  # 在 code/server.py 中修改
    
  • 도커 관리이 서비스는 Docker Compose를 통해 관리되며, 모델 업데이트만 필요합니다:
    docker compose exec ollama ollama pull <new_model>
    

 

애플리케이션 시나리오

  1. AI 음성 상호작용 연구
    개발자는 RealtimeSTT, RealtimeTTS 및 LLM의 통합을 테스트하여 지연 시간이 짧은 음성 상호작용의 최적화를 탐색할 수 있습니다. 오픈 소스 코드는 사용자 지정 매개변수를 지원하며 학술 연구에 적합합니다.
  2. 지능형 고객 서비스 프로토타입
    기업은 이 프로젝트를 기반으로 음성 고객 서비스 시스템을 개발할 수 있습니다. 사용자가 음성으로 질문하면 시스템이 기술 지원이나 제품 상담과 같은 일반적인 질문에 실시간으로 답변합니다.
  3. 언어 학습 도구
    교육 기관은 다국어 TTS 기능을 사용하여 음성 대화 연습 도구를 개발할 수 있습니다. 학생들은 AI와 대화하며 발음과 대화를 연습하고, 시스템은 실시간 피드백을 제공합니다.
  4. 개인 음성 어시스턴트
    기술 애호가는 개인 엔터테인먼트 또는 소규모 프로젝트를 위해 지능형 비서를 시뮬레이션하여 AI와 자연스러운 음성 상호 작용을 경험하는 프로젝트를 배포할 수 있습니다.

 

QA

  1. 어떤 하드웨어 지원이 필요하나요?
    NVIDIA GPU(최소 8GB의 비디오 메모리) 및 CUDA 12.1이 설치된 Linux 시스템 권장. CPU는 원활하게 실행되지만 지연 시간이 길어질 수 있습니다. 최소 요구 사항: Python 3.9 이상, 8GB RAM.
  2. Docker 배포 문제를 해결하는 방법은 무엇인가요?
    도커, 도커 컴포즈 및 NVIDIA 컨테이너 툴킷이 올바르게 설치되었는지 확인합니다. 확인 docker-compose.yml 를 클릭하여 로그를 확인합니다:docker compose logs -f.
  3. 음성 또는 모델 간에 전환하려면 어떻게 하나요?
    수정 code/server.py 정곡을 찌르세요 START_ENGINE(TTS) 또는 LLM_START_MODEL(LLM). Docker 사용자는 모델을 다시 풀링해야 합니다:docker compose exec ollama ollama pull <model>.
  4. 어떤 언어가 지원되나요?
    RealtimeTTS는 여러 언어(예: 영어, 중국어, 일본어)를 지원하며, 이러한 언어는 code/audio_module.py 에서 언어 및 음성 모델을 지정합니다.
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...