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

Список функций
- голосовое взаимодействие в реальном времениПользователи вводят свой голос через микрофон браузера, а система транскрибирует и генерирует голосовой ответ в режиме реального времени.
- Обработка с низкой задержкой: Оптимизируйте задержку преобразования речи в текст и текста в речь до 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.
- склад клонов::
git clone https://github.com/KoljaB/RealtimeVoiceChat.git cd RealtimeVoiceChat
- Создание образа Docker::
docker compose build
На этом этапе загружается базовый образ, устанавливаются зависимости Python и машинного обучения, а также предварительно загружаются модели STT по умолчанию (Whisper
base.en
). Это занимает много времени, поэтому убедитесь, что ваша сеть стабильна. - Начальные услуги::
docker compose up -d
Запустите приложение и службу Ollama с контейнером, работающим в фоновом режиме. Подождите около 1-2 минут, пока завершится инициализация.
- Модель 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
использовать другие модели. - Проверка пригодности модели::
docker compose exec ollama ollama list
Убедитесь, что модель загружена правильно.
- Остановите или перезапустите службу::
docker compose down # 停止服务 docker compose up -d # 重启服务
- Просмотр журнала::
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
Сценарии упрощают процесс.
- Установка основных зависимостей::
- Убедитесь, что установлен 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
- Клонируйте репозиторий и создайте виртуальную среду::
git clone https://github.com/KoljaB/RealtimeVoiceChat.git cd RealtimeVoiceChat python -m venv venv # Linux/macOS source venv/bin/activate # Windows .\venv\Scripts\activate
- Установка 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
- GPU (CUDA 12.1):
- Установка дополнительных зависимостей::
cd code pip install -r requirements.txt
Примечание: DeepSpeed может быть сложным в установке, пользователи Windows могут установить DeepSpeed через
install.bat
Автоматическая обработка. - Установите Ollama (для пользователей, не использующих Docker)::
- Для установки обратитесь к официальной документации Ollama.
- Вытащите модель:
ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
- Запуск приложения::
python server.py
предостережение
- требования к оборудованию: рекомендуется использовать графические процессоры NVIDIA (не менее 8 ГБ оперативной памяти), чтобы обеспечить низкую задержку; работа процессора может привести к значительному снижению производительности.
- Конфигурация Docker: Модификация
code/*.py
возможноdocker-compose.yml
Перед этим необходимо повторно запустить программуdocker compose build
. - Соблюдение лицензионных требований: Движок TTS (например, Coqui XTTSv2) и модель LLM имеют отдельные лицензии и подчиняются их условиям.
рабочий процесс
- Доступ к веб-интерфейсу::
- Откройте браузер и посетите
http://localhost:8000
(или IP-адрес удаленного сервера). - Предоставьте права на микрофон и нажмите "Начать", чтобы начать разговор.
- Откройте браузер и посетите
- голосовое взаимодействие::
- Говорите в микрофон, а система записывает звук через Web Audio API.
- Аудио передается на бэкэнд через WebSocket, RealtimeSTT преобразуется в текст, Ollama/OpenAI генерирует ответ, а RealtimeTTS преобразуется в речь и воспроизводится через браузер.
- Задержки в диалоге обычно составляют 0,5-1 секунду, при этом поддерживается возможность прерывания и продолжения диалога в любой момент.
- Обратная связь в режиме реального времени::
- Интерфейс отображает частично расшифрованный текст и ответы ИИ, облегчая пользователям слежение за диалогом.
- Вы можете нажать "Стоп", чтобы завершить диалог, и "Сброс", чтобы очистить историю.
- Настройки конфигурации::
- Двигатель 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 секунды), чтобы оптимизировать темп диалога.
- Двигатель TTS: в
- Отладка и оптимизация::
- Посмотреть журнал:
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>
сценарий применения
- Исследование голосового взаимодействия с искусственным интеллектом
Разработчики могут протестировать интеграцию RealtimeSTT, RealtimeTTS и LLM, чтобы изучить оптимизированные решения для голосового взаимодействия с низкой задержкой. Открытый исходный код поддерживает пользовательские параметры и подходит для академических исследований. - Прототип интеллектуального обслуживания клиентов
Предприятия могут разрабатывать системы голосового обслуживания клиентов на основе этого проекта. Пользователи задают вопросы голосом, а система в режиме реального времени отвечает на них, например, оказывает техническую поддержку или консультирует по продукции. - Инструменты для изучения языков
Учебные заведения могут использовать многоязычные функции TTS для разработки инструментов для отработки голосового диалога. Студенты общаются с искусственным интеллектом, отрабатывая произношение и разговор, а система обеспечивает обратную связь в режиме реального времени. - Персональные голосовые помощники
Любители технологий могут развернуть проекты, чтобы испытать естественное голосовое взаимодействие с искусственным интеллектом, имитируя интеллектуального помощника, для личного развлечения или небольших проектов.
QA
- Какая аппаратная поддержка требуется?
Рекомендуется Linux-система с графическим процессором NVIDIA (не менее 8 ГБ видеопамяти) и CUDA 12.1. На CPU работа возможна, но с большими задержками. Минимальные требования: Python 3.9+, 8 ГБ оперативной памяти. - Как решить проблемы с развертыванием Docker?
Убедитесь, что Docker, Docker Compose и NVIDIA Container Toolkit установлены правильно. Проверьтеdocker-compose.yml
конфигурации GPU для просмотра журналов:docker compose logs -f
. - Как переключиться между голосом и моделью?
модификацииcode/server.py
попал в точкуSTART_ENGINE
(TTS) илиLLM_START_MODEL
(LLM). Пользователю Docker необходимо повторно извлечь модель:docker compose exec ollama ollama pull <model>
. - Какие языки поддерживаются?
RealtimeTTS поддерживает несколько языков (например, английский, китайский, японский), которые необходимо установить вcode/audio_module.py
Укажите модель языка и речи в
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...