Ein Python-Projekt zur Erstellung von VR-Umgebungen mithilfe generativer KI. Sie können es als TCP-Server ausführen, um es mit einem Unity-Client zu verbinden und so die vollwertige KI/VR-Anwendung zu erhalten.
Dies ist ein öffentliches Archiv, die Entwicklung wird unter HugoFara/speech-to-world-server fortgesetzt!
Dies ist ein Anwendungsfall generativer KI zum Aufbau einer vollständigen VR-Szenerie. Es wurde an der Fondation Campus Biotech Genf in Zusammenarbeit mit dem Laboratory of Cognitive Science von Hugo FARAJALLAH entwickelt.
Sie benötigen Python 3.10 und CUDA 12.1 (andere Versionen sind ungetestet). Sobald die Anforderungen installiert sind, sollte das Projekt funktionieren.
Hier ist eine detaillierte Installationsprozedur:
cd VR-Environment-GenAI-Server
# From https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#create-and-use-virtual-environments
python -m venv .venv # Creates the virtual environment under .venv
source .venv/bin/activate # Activates it
cd VR-Environment-GenAI-Server
# From https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#create-and-use-virtual-environments
py -m venv .venv # Creates the virtual environment under .venv
.venv S cripts a ctivate # Activates it
pip install -r requirements.txt
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
ausführen. Weitere Informationen finden Sie unter https://pytorch.org/get-started/locally/.Von hier an sollte das Projekt funktionsfähig sein. Der nächste Abschnitt ist optional, kann Ihnen aber viel Zeit sparen.
(optional) Sie können die Bilderzeugung mit beschleunigen beschleunigen. Laden Sie es mit
pip install accelerate
herunter.
.idea
Ordner enthalten, um den Ordner als Projekt hinzuzufügen.sudo apt install ffmpeg portaudio19-dev python3-pyaudio
pip install -r requirements-optional.txt # Installs PyAudio
Jede Datei kann unabhängig ausgeführt werden, sodass es genauso viele Einstiegspunkte wie Dateien gibt.
Die häufigsten Anwendungsfälle sind die folgenden:
python -m skybox.diffusion
.python -m utils.download_models
herunter. Wenn Sie dies nicht tun, werden die Modelle zur Laufzeit heruntergeladen, was sehr langsam sein kann.python -m server.run
.Als nächstes folgt das Detail für spezielle Dateien.
Gehen Sie zum skybox
-Ordner.
skybox/legacy
ist möglicherweise nicht nützlich. Ich behalte es aus persönlichen Gründen dort. 3D-Features befinden sich im environment
. Zum Zeitpunkt des Verfassens dieses Artikels (Juni 2024) befindet es sich noch in der aktiven Entwicklung, daher können sich die folgenden Änderungen ändern.
Informationen zu Sprach-zu-Text-Funktionen finden Sie unter asr
(automatische Spracherkennung).
Wenn Sie anstelle von Python-Code eine grafische Oberfläche verwenden möchten, können Sie die bereitgestellten ComfyUI-Workflows im ComfyUI
Ordner verwenden.
Die Erklärung für jeden Workflow finden Sie in ComfyUI/README.md.
Die Serverfunktionen befinden sich in server
. Einzelheiten zur Verwendung finden Sie unter Als TCP-Server starten.
sound
-Ordner einige Experimente zur Klangerzeugung.utils
enthält nützliche Funktionen für den Benutzer: Die Hauptserverkonfiguration befindet sich in api.json
. Die wichtigsten Konfigurationsdaten sind „serverIp“ und „serverPort“, da sie die Adresse des Servers festlegen.
Um den KI-Anteil aus dem Anwendungsthread auszulagern, kann ein TCP-Server gestartet werden. Starten Sie einfach python -m server.run
. Die Serverkonfiguration ist in api.json
definiert. Die Kommunikation erfolgt im JSON-Format mit einem starken HTTP-Stil.
Um von einem anderen Computer im selben Netzwerk aus eine Verbindung zum Server herzustellen, müssen Sie einen Port öffnen. Unter Windows müssen Sie lediglich in der Systemsteuerung eine neue Regel für den Port 9000
hinzufügen (mit der Standardkonfiguration). Dieses How-To-Geek-Tutorial scheint richtungsweisend genug zu sein. Unter Linux macht das Öffnen von Ports etwas mehr Spaß, ich persönlich empfehle die Verwendung von Nginx mit einer Portumleitung.
Aktueller Stand des Projekts, aus einer sehr fernen Perspektive.
skybox/panorama_creator.py
environment/renderer.py
ist derzeit nicht für die Produktion geeignet. Dieses Projekt umfasst mehrere künstliche neuronale Netzwerkmodelle. Wenn Sie ein Modell durch ein anderes ersetzen möchten, sollten Sie sich gut auskennen, da sonst die Qualität des Endprodukts beeinträchtigt werden kann.
Bitte werfen Sie einen Blick auf utils/download_models.py
um zu sehen, woher diese Modelle geladen werden.
Sie können den offiziellen Unity-Client von VR-Environment-GenAI-Unity (GitHub) herunterladen. Wenn Sie nach dem aktiven öffentlichen Repository dieses Projekts suchen, gehen Sie zu HugoFara/speech-to-world-server.