Allgemeine Einführung
RealtimeVoiceChat ist ein Open-Source-Projekt, das sich auf natürliche Echtzeitgespräche mit künstlicher Intelligenz über Sprache konzentriert. Benutzer verwenden das Mikrofon zur Spracheingabe, das System erfasst das Audio über den Browser, schnell in Text umgewandelt, ein großes Sprachmodell (LLM), um eine Antwort zu generieren, und dann den Text in Sprachausgabe konvertieren, ist der gesamte Prozess in der Nähe von Echtzeit. Das Projekt verwendet eine Client-Server-Architektur mit dem Schwerpunkt auf niedriger Latenz und unterstützt WebSocket-Streaming und dynamisches Dialogmanagement. Es bietet Docker-Bereitstellung, wird empfohlen, auf Linux-Systemen und NVIDIA GPU-Umgebungen zu laufen, und integriert RealtimeSTT, RealtimeTTS und Ollama und andere Technologien, die für Entwickler geeignet sind, um Sprachinteraktionsanwendungen zu erstellen.
Funktionsliste
- Sprachinteraktion in EchtzeitBenutzer geben ihre Stimme über das Browsermikrofon ein, und das System transkribiert und generiert eine Sprachantwort in Echtzeit.
- Verarbeitung mit geringer LatenzzeitOptimierung der Latenzzeit von Sprache-zu-Text und Text-zu-Sprache auf 0,5-1 Sekunden durch Audio-Streaming über WebSocket.
- Sprache zu Text (STT)Schnelles Umwandeln von Sprache in Text mit RealtimeSTT (basierend auf Whisper), mit Unterstützung für dynamische Transkription.
- Text-to-Speech (TTS)Generieren Sie natürliche Sprache über RealtimeTTS (Coqui, Kokoro, Orpheus unterstützt) mit einer Auswahl an Sprachstilen.
- Intelligentes DialogmanagementIntegration von Sprachmodellen von Ollama oder OpenAI zur Unterstützung einer flexiblen Dialoggenerierung und Unterbrechungsbehandlung.
- Dynamische Spracherkennung: durch
turndetect.py
Ermöglicht eine intelligente Stilleerkennung und passt sich dem Rhythmus des Dialogs an. - WebschnittstelleBietet eine saubere Browser-Schnittstelle, verwendet Vanilla JS und die Web Audio API und unterstützt Echtzeit-Feedback.
- Docker-BereitstellungVereinfachte Installation mit Docker Compose, Unterstützung für GPU-Beschleunigung und Modellverwaltung.
- Modell-AnpassungUnterstützung für den Wechsel zwischen STT-, TTS- und LLM-Modellen zur Anpassung von Sprach- und Dialogparametern.
- quelloffen und erweiterbarDer Code ist öffentlich zugänglich, und es steht Entwicklern frei, die Funktionen zu ändern oder zu erweitern.
Hilfe verwenden
Einbauverfahren
RealtimeVoiceChat unterstützt sowohl die Docker-Bereitstellung (empfohlen) als auch die manuelle Installation; Docker für Linux-Systeme, insbesondere mit NVIDIA-GPUs, und die manuelle Installation für Windows oder Szenarien, in denen mehr Kontrolle erforderlich ist. Im Folgenden finden Sie die detaillierten Schritte:
Docker-Bereitstellung (empfohlen)
Erfordert Docker Engine, Docker Compose v2+ und NVIDIA Container Toolkit (GPU-Benutzer). Linux-Systeme werden für eine optimale GPU-Unterstützung empfohlen.
- Klon-Lager::
git clone https://github.com/KoljaB/RealtimeVoiceChat.git cd RealtimeVoiceChat
- Erstellen eines Docker-Images::
docker compose build
Dieser Schritt lädt das Basis-Image herunter, installiert Python und die Abhängigkeiten für maschinelles Lernen und lädt die Standard-STT-Modelle (Whisper
base.en
). Es dauert sehr lange, also stellen Sie bitte sicher, dass Ihr Netzwerk stabil ist. - Neue Dienste::
docker compose up -d
Starten Sie die Anwendung und den Ollama-Dienst, wobei der Container im Hintergrund läuft. Warten Sie etwa 1-2 Minuten, bis die Initialisierung abgeschlossen ist.
- Ollama-Modell ziehen::
docker compose exec ollama ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
Dieser Befehl ruft das Standard-Sprachmodell auf. Die Benutzer finden das Standard-Sprachmodell in der Datei
code/server.py
ÄnderungLLM_START_MODEL
andere Modelle zu verwenden. - Validierung der Modellverwendbarkeit::
docker compose exec ollama ollama list
Stellen Sie sicher, dass das Modell korrekt geladen ist.
- Anhalten oder Neustart des Dienstes::
docker compose down # 停止服务 docker compose up -d # 重启服务
- Ansicht Log::
docker compose logs -f app # 查看应用日志 docker compose logs -f ollama # 查看 Ollama 日志
Manuelle Installation (Windows/Linux/macOS)
Die manuelle Installation erfordert Python 3.9+, CUDA 12.1 (GPU-Benutzer) und FFmpeg. Windows-Benutzer können das mitgelieferte install.bat
Skripte vereinfachen den Prozess.
- Installation der grundlegenden Abhängigkeiten::
- Stellen Sie sicher, dass Python 3.9+ installiert ist.
- GPU-Benutzer installieren NVIDIA CUDA Toolkit 12.1 und cuDNN.
- FFmpeg installieren:
# Ubuntu/Debian sudo apt update && sudo apt install ffmpeg # Windows (使用 Chocolatey) choco install ffmpeg
- Klonen Sie das Repository und erstellen Sie eine virtuelle Umgebung::
git clone https://github.com/KoljaB/RealtimeVoiceChat.git cd RealtimeVoiceChat python -m venv venv # Linux/macOS source venv/bin/activate # Windows .\venv\Scripts\activate
- Installation von PyTorch (passende Hardware)::
- 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 (langsamere Leistung):
pip install torch torchaudio torchvision
- GPU (CUDA 12.1):
- Installieren zusätzlicher Abhängigkeiten::
cd code pip install -r requirements.txt
Hinweis: Die Installation von DeepSpeed kann kompliziert sein. Windows-Benutzer können DeepSpeed über die
install.bat
Automatische Verarbeitung. - Ollama installieren (Nicht-Docker-Benutzer)::
- Informationen zur Installation finden Sie in der offiziellen Ollama-Dokumentation.
- Ziehen Sie das Modell:
ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
- Ausführen der Anwendung::
python server.py
caveat
- Hardware-VoraussetzungNVIDIA-Grafikprozessoren (mindestens 8 GB RAM) werden empfohlen, um niedrige Latenzzeiten zu gewährleisten; CPU-Betrieb kann zu erheblichen Leistungseinbußen führen.
- Docker-KonfigurationModifikation
code/*.py
vielleichtdocker-compose.yml
Bevor Sie dies tun, müssen Sie erneut diedocker compose build
. - Einhaltung der LizenzenDie TTS-Engine (z.B. Coqui XTTSv2) und das LLM-Modell haben separate Lizenzen und unterliegen deren Bedingungen.
Arbeitsablauf
- Zugriff auf die Webschnittstelle::
- Öffnen Sie Ihren Browser und besuchen Sie
http://localhost:8000
(oder Remote-Server-IP). - Gewähren Sie Mikrofonrechte und klicken Sie auf "Start", um das Gespräch zu beginnen.
- Öffnen Sie Ihren Browser und besuchen Sie
- Sprachinteraktion::
- Sprechen Sie in das Mikrofon, und das System nimmt den Ton über die Web Audio API auf.
- Die Audiodaten werden per WebSocket an das Backend übertragen, RealtimeSTT wird in Text umgewandelt, Ollama/OpenAI erzeugt eine Antwort, und RealtimeTTS wird in Sprache umgewandelt und über den Browser abgespielt.
- Die Verzögerung des Dialogs beträgt in der Regel 0,5-1 Sekunden, wobei die Unterbrechung und Fortsetzung jederzeit möglich ist.
- Feedback in Echtzeit::
- Die Schnittstelle zeigt teilweise transkribierten Text und KI-Antworten an, so dass es für die Nutzer einfach ist, dem Dialog zu folgen.
- Sie können auf "Stopp" klicken, um den Dialog zu beenden, und auf "Zurücksetzen", um den Verlauf zu löschen.
- Anpassungen der Konfiguration::
- TTS-Motor: in
code/server.py
aufstellenSTART_ENGINE
(z.B..coqui
undkokoro
undorpheus
), um den Sprachstil anzupassen. - LLM-ModellModifikation
LLM_START_PROVIDER
im Gesang antwortenLLM_START_MODEL
Im Folgenden sind einige der beliebtesten Funktionen von Ollama aufgeführt - STT-Parameter: in
code/transcribe.py
Mittelbühnenverstellung Flüstern Schwellenwerte für Modellierung, Sprache oder Schweigen. - Erkennung von Stille: in
code/turndetect.py
Änderungsilence_limit_seconds
(Standardwert 0,2 Sekunden), um das Dialogtempo zu optimieren.
- TTS-Motor: in
- Fehlersuche und Optimierung::
- Logbuch ansehen:
docker compose logs -f
(Docker) oder schauen Sie sich einfach dieserver.py
Ausgabe. - Leistungsprobleme: Sicherstellung der CUDA-Versionsanpassung, Reduzierung
realtime_batch_size
Oder verwenden Sie ein leichtes Modell. - Netzwerkkonfiguration: Wenn HTTPS erforderlich ist, setzen Sie die
USE_SSL = True
und geben Sie den Zertifikatspfad an (siehe die offizielle SSL-Konfiguration).
- Logbuch ansehen:
Featured Function Bedienung
- Streaming-Verarbeitung mit niedriger LatenzAudio Chunking über WebSocket, kombiniert mit RealtimeSTT und RealtimeTTS, mit einer Latenz von nur 0,5 Sekunden. Benutzer können reibungslose Gespräche ohne Wartezeiten führen.
- Dynamisches Dialogmanagement::
turndetect.py
Erkennt auf intelligente Weise das Ende von Sprache und unterstützt natürliche Unterbrechungen. Der Benutzer kann beispielsweise jederzeit unterbrechen, und das System macht eine Pause, um neue Eingaben zu generieren und zu verarbeiten. - Interaktion mit der WebschnittstelleDie Browserschnittstelle verwendet Vanilla JS und die Web Audio API, um die Transkription und die Anzeige der Antworten in Echtzeit zu ermöglichen. Die Benutzer können den Dialog mit den Schaltflächen "Start/Stop/Reset" steuern.
- Flexibilität bei der ModellierungUnterstützung für den Wechsel von TTS-Engines (Coqui/Kokoro/Orpheus) und LLM-Backends (Ollama/OpenAI). Zum Beispiel, TTS wechseln:
START_ENGINE = "kokoro" # 在 code/server.py 中修改
- Docker-VerwaltungDer Dienst wird über Docker Compose verwaltet, und es ist lediglich eine Aktualisierung des Modells erforderlich:
docker compose exec ollama ollama pull <new_model>
Anwendungsszenario
- AI Voice Interaction Forschung
Entwickler können die Integration von RealtimeSTT, RealtimeTTS und LLM testen, um optimierte Lösungen für Sprachinteraktion mit niedriger Latenz zu erforschen. Der Open-Source-Code unterstützt benutzerdefinierte Parameter und ist für die akademische Forschung geeignet. - Prototyp eines intelligenten Kundendienstes
Unternehmen können auf der Grundlage des Projekts sprachgesteuerte Kundenservicesysteme entwickeln. Die Nutzer stellen Fragen per Sprache, und das System beantwortet gängige Fragen in Echtzeit, z. B. technische Unterstützung oder Produktberatung. - Tools zum Sprachenlernen
Bildungseinrichtungen können die mehrsprachige TTS-Funktionalität nutzen, um Tools für den Sprachdialog zu entwickeln. Die Schüler führen einen Dialog mit der KI, um die Aussprache und Konversation zu üben, und das System gibt Echtzeit-Feedback. - Persönliche Sprachassistenten
Technologiebegeisterte können Projekte einrichten, um die natürliche Sprachinteraktion mit KI zu erleben und einen intelligenten Assistenten zu simulieren, zur persönlichen Unterhaltung oder für kleine Projekte.
QA
- Welche Hardware-Unterstützung ist erforderlich?
Empfohlenes Linux-System mit NVIDIA-GPU (mindestens 8 GB Videospeicher) und CUDA 12.1. CPU läuft machbar, aber mit hoher Latenz. Mindestanforderungen: Python 3.9+, 8 GB RAM. - Wie lösen Sie Probleme bei der Docker-Bereitstellung?
Stellen Sie sicher, dass Docker, Docker Compose und NVIDIA Container Toolkit korrekt installiert sind. Prüfen Siedocker-compose.yml
der GPU-Konfiguration, um die Protokolle anzuzeigen:docker compose logs -f
. - Wie kann ich zwischen Stimme und Modell wechseln?
Änderungencode/server.py
den Nagel auf den Kopf treffenSTART_ENGINE
(TTS) oderLLM_START_MODEL
(LLM). Der Docker-Benutzer muss das Modell erneut abrufen:docker compose exec ollama ollama pull <model>
. - Welche Sprachen werden unterstützt?
RealtimeTTS unterstützt mehrere Sprachen (z. B. Englisch, Chinesisch, Japanisch), die in der Dateicode/audio_module.py
Geben Sie das Sprach- und Sprechmodell in der