RealtimeVoiceChat: естественный разговорный диалог с низким уровнем задержки и искусственным интеллектом

Общее введение

RealtimeVoiceChat - это проект с открытым исходным кодом, который фокусируется на естественных разговорах в реальном времени с искусственным интеллектом посредством голоса. Пользователи используют микрофон для ввода голоса, система захватывает аудио через браузер, быстро преобразует в текст, большая языковая модель (LLM) генерирует ответ, а затем преобразует текст в речь на выходе, весь процесс близок к реальному времени. Проект использует клиент-серверную архитектуру с акцентом на низкую задержку, поддерживает потоковую передачу WebSocket и динамическое управление диалогами. Он обеспечивает развертывание в Docker, рекомендуется для работы в системе Linux и среде NVIDIA GPU, а также объединяет RealtimeSTT, RealtimeTTS и Оллама и другие технологии, которые пригодятся разработчикам для создания приложений голосового взаимодействия.

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

 

Список функций

  • голосовое взаимодействие в реальном времениПользователи вводят свой голос через микрофон браузера, а система транскрибирует и генерирует голосовой ответ в режиме реального времени.
  • Обработка с низкой задержкой: Оптимизируйте задержку преобразования речи в текст и текста в речь до 0,5-1 секунды за счет потоковой передачи аудио с помощью WebSocket.
  • Передача речи в текст (STT): Быстрое преобразование речи в текст с помощью RealtimeSTT (на основе Whisper), с поддержкой динамической транскрипции.
  • Передача текста в речь (TTS): Генерируйте естественную речь с помощью RealtimeTTS (поддерживаются Coqui, Kokoro, Orpheus) с возможностью выбора стиля голоса.
  • Интеллектуальное управление диалогом: Интеграция языковых моделей из Ollama или OpenAI для поддержки гибкой генерации диалогов и обработки прерываний.
  • Динамическое распознавание голоса: через turndetect.py Обеспечивает интеллектуальное распознавание тишины и адаптируется к ритму диалога.
  • веб-интерфейс: Обеспечивает чистый браузерный интерфейс, использует Vanilla JS и Web Audio API, а также поддерживает обратную связь в реальном времени.
  • Развертывание Docker: Упрощенная установка с помощью Docker Compose, поддержка GPU-ускорения и управления моделями.
  • Персонализация модели: Поддержка переключения между моделями STT, TTS и LLM для настройки параметров речи и диалога.
  • открытый исходный код и расширяемость: Код находится в открытом доступе, и разработчики могут свободно изменять или расширять его функциональность.

 

Использование помощи

Процесс установки

RealtimeVoiceChat поддерживает как развертывание в Docker (рекомендуется), так и ручную установку; метод Docker подходит для систем Linux, особенно для сред с графическими процессорами NVIDIA; ручная установка подходит для Windows или сценариев, где требуется больше контроля. Ниже приведены подробные шаги:

Развертывание Docker (рекомендуется)

Требуется Docker Engine, Docker Compose v2+ и NVIDIA Container Toolkit (для пользователей GPU). Для лучшей поддержки GPU рекомендуется использовать системы Linux.

  1. склад клонов::
    git clone https://github.com/KoljaB/RealtimeVoiceChat.git
    cd RealtimeVoiceChat
  1. Создание образа Docker::
    docker compose build
    

    На этом этапе загружается базовый образ, устанавливаются зависимости Python и машинного обучения, а также предварительно загружаются модели STT по умолчанию (Whisper base.en). Это занимает много времени, поэтому убедитесь, что ваша сеть стабильна.

  2. Начальные услуги::
    docker compose up -d
    

    Запустите приложение и службу Ollama с контейнером, работающим в фоновом режиме. Подождите около 1-2 минут, пока завершится инициализация.

  3. Модель Pull Ollama::
    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 Toolkit 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
      
    • Процессор (более низкая производительность):
      pip install torch torchaudio torchvision
      
  4. Установка дополнительных зависимостей::
    cd code
    pip install -r requirements.txt
    

    Примечание: DeepSpeed может быть сложным в установке, пользователи Windows могут установить DeepSpeed через install.bat Автоматическая обработка.

  5. Установите Ollama (для пользователей, не использующих Docker)::
    • Для установки обратитесь к официальной документации Ollama.
    • Вытащите модель:
      ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
      
  6. Запуск приложения::
    python server.py
    

предостережение

  • требования к оборудованию: рекомендуется использовать графические процессоры NVIDIA (не менее 8 ГБ оперативной памяти), чтобы обеспечить низкую задержку; работа процессора может привести к значительному снижению производительности.
  • Конфигурация Docker: Модификация code/*.py возможно docker-compose.yml Перед этим необходимо повторно запустить программу docker compose build.
  • Соблюдение лицензионных требований: Движок TTS (например, Coqui XTTSv2) и модель LLM имеют отдельные лицензии и подчиняются их условиям.

рабочий процесс

  1. Доступ к веб-интерфейсу::
    • Откройте браузер и посетите http://localhost:8000(или IP-адрес удаленного сервера).
    • Предоставьте права на микрофон и нажмите "Начать", чтобы начать разговор.
  2. голосовое взаимодействие::
    • Говорите в микрофон, а система записывает звук через Web Audio API.
    • Аудио передается на бэкэнд через WebSocket, RealtimeSTT преобразуется в текст, Ollama/OpenAI генерирует ответ, а RealtimeTTS преобразуется в речь и воспроизводится через браузер.
    • Задержки в диалоге обычно составляют 0,5-1 секунду, при этом поддерживается возможность прерывания и продолжения диалога в любой момент.
  3. Обратная связь в режиме реального времени::
    • Интерфейс отображает частично расшифрованный текст и ответы ИИ, облегчая пользователям слежение за диалогом.
    • Вы можете нажать "Стоп", чтобы завершить диалог, и "Сброс", чтобы очистить историю.
  4. Настройки конфигурации::
    • Двигатель TTS: в code/server.py устанавливать START_ENGINE(например. coqui, иkokoro, иorpheus), настраивая стиль голоса.
    • Модель LLM: Модификация LLM_START_PROVIDER ответить пением LLM_START_MODELНиже перечислены наиболее популярные функции Ollama
    • Параметры STT: в code/transcribe.py регулировка центральной ступени Шепот Моделирование, язык или порог молчания.
    • Обнаружение тишины: в code/turndetect.py модификация silence_limit_seconds(по умолчанию 0,2 секунды), чтобы оптимизировать темп диалога.
  5. Отладка и оптимизация::
    • Посмотреть журнал:docker compose logs -f(Docker) или просто проверьте server.py Выход.
    • Проблемы производительности: Обеспечьте соответствие версии CUDA, уменьшите realtime_batch_size Или используйте облегченную модель.
    • Конфигурация сети: Если требуется HTTPS, установите значение USE_SSL = True и укажите путь к сертификату (см. официальную конфигурацию SSL).

Функциональное управление

  • Обработка потоковых данных с низкой задержкой: Аудиопоток через WebSocket, в сочетании с RealtimeSTT и RealtimeTTS, с задержкой всего 0,5 секунды. Пользователи могут спокойно общаться без ожидания.
  • Динамическое управление диалогом::turndetect.py Интеллектуальное определение окончания речи и поддержка естественных прерываний. Например, пользователь может прерваться в любой момент, и система сделает паузу, чтобы сгенерировать и обработать новый ввод.
  • Взаимодействие с веб-интерфейсом: Браузерный интерфейс использует Vanilla JS и Web Audio API для обеспечения транскрипции и отображения ответов в реальном времени. Пользователи могут управлять диалогом с помощью кнопок "Старт/Стоп/Сброс".
  • Гибкость моделирования: Поддержка переключения TTS-движков (Coqui/Kokoro/Orpheus) и LLM-бэкендов (Ollama/OpenAI). Например, переключение TTS:
    START_ENGINE = "kokoro"  # 在 code/server.py 中修改
    
  • Управление докерами: Сервис управляется через Docker Compose, и требуется только обновление модели:
    docker compose exec ollama ollama pull <new_model>
    

 

сценарий применения

  1. Исследование голосового взаимодействия с искусственным интеллектом
    Разработчики могут протестировать интеграцию RealtimeSTT, RealtimeTTS и LLM, чтобы изучить оптимизированные решения для голосового взаимодействия с низкой задержкой. Открытый исходный код поддерживает пользовательские параметры и подходит для академических исследований.
  2. Прототип интеллектуального обслуживания клиентов
    Предприятия могут разрабатывать системы голосового обслуживания клиентов на основе этого проекта. Пользователи задают вопросы голосом, а система в режиме реального времени отвечает на них, например, оказывает техническую поддержку или консультирует по продукции.
  3. Инструменты для изучения языков
    Учебные заведения могут использовать многоязычные функции TTS для разработки инструментов для отработки голосового диалога. Студенты общаются с искусственным интеллектом, отрабатывая произношение и разговор, а система обеспечивает обратную связь в режиме реального времени.
  4. Персональные голосовые помощники
    Любители технологий могут развернуть проекты, чтобы испытать естественное голосовое взаимодействие с искусственным интеллектом, имитируя интеллектуального помощника, для личного развлечения или небольших проектов.

 

QA

  1. Какая аппаратная поддержка требуется?
    Рекомендуется Linux-система с графическим процессором NVIDIA (не менее 8 ГБ видеопамяти) и CUDA 12.1. На CPU работа возможна, но с большими задержками. Минимальные требования: Python 3.9+, 8 ГБ оперативной памяти.
  2. Как решить проблемы с развертыванием Docker?
    Убедитесь, что Docker, Docker Compose и NVIDIA Container Toolkit установлены правильно. Проверьте docker-compose.yml конфигурации GPU для просмотра журналов: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 Укажите модель языка и речи в
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...