Traduction Audio en Temps Réel avec les API OpenAI sur des Droplets GPU en Utilisant Open WebUI
Introduction
Avec la demande croissante de communication multilingue, la traduction audio en temps réel attire rapidement l'attention. Dans ce tutoriel, vous apprendrez à déployer une application de traduction audio en temps réel en utilisant les API OpenAI sur Open WebUI, le tout hébergé sur un puissant Droplet GPU de Linux-Console.net.
Les GPU Droplets de Linux-Console.net, propulsés par les GPU NVIDIA H100, offrent des performances significatives pour les charges de travail d'IA, ce qui les rend idéaux pour une traduction audio en temps réel rapide et efficace. Commençons.
Prérequis
- Un compte Cloud Linux-Console.net.
- Un Droplet GPU déployé et en cours d'exécution.
- Une clé API OpenAI configurée pour accéder aux modèles OpenAI.
- Familiarité avec SSH et les commandes Docker de base.
- Une clé SSH pour se connecter à votre Droplet GPU.
Étape 1 - Configuration du droplet GPU Linux-Console.net
1.Créer un nouveau projet - Vous devrez créer un nouveau projet depuis le panneau de contrôle cloud et le lier à un Droplet GPU.
2.Créer un Droplet GPU - Connectez-vous à votre compte Linux-Console.net, créez un nouveau Droplet GPU et choisissez AI/ML Ready comme système d'exploitation. Cette image du système d'exploitation installe tous les pilotes NVIDIA GPU nécessaires. Vous pouvez consulter notre documentation officielle pour savoir comment créer un Droplet GPU.
3.Ajouter une clé SSH pour l'authentification - Une clé SSH est nécessaire pour s'authentifier auprès du Droplet GPU et en ajoutant la clé SSH, vous pouvez vous connecter au Droplet GPU depuis votre terminal.
4.Finaliser et créer le Droplet GPU - Une fois que toutes les étapes ci-dessus sont terminées, finalisez et créez un nouveau Droplet GPU.
Étape 2 - Installation et configuration d'Open WebUI
Open WebUI est une interface web qui permet aux utilisateurs d'interagir avec des modèles de langage (LLM). Il est conçu pour être convivial, extensible et auto-hébergé, et peut fonctionner hors ligne. Open WebUI est similaire à ChatGPT dans son interface, et il peut être utilisé avec une variété de moteurs de LLM, y compris Ollama et les API compatibles avec OpenAI.
Il y a trois façons de déployer Open WebUI :
- Docker : Officiellement pris en charge et recommandé pour la plupart des utilisateurs.
- Python : Convient aux environnements à faibles ressources ou à ceux souhaitant une configuration manuelle.
- Kubernetes : Idéal pour les déploiements d'entreprise nécessitant la mise à l'échelle et l'orchestration.
Dans ce tutoriel, vous allez déployer Open WebUI en utilisant Docker en tant que conteneur Docker sur le Droplet GPU avec prise en charge Nvidia GPU. Vous pouvez consulter et apprendre comment déployer Open WebUI en utilisant d'autres techniques dans ce guide de démarrage rapide d'Open WebUI.
Configuration Docker
Une fois que le Droplet GPU est prêt et déployé. Connectez-vous en SSH au Droplet GPU depuis votre terminal.
ssh root@<your-droplet-ip>Ce Droplet Ubuntu AI/ML Ready H100x1GPU est fourni avec docker préinstallé.
Vous pouvez vérifier la version de Docker en utilisant la commande ci-dessous :
docker --versionDocker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1Ensuite, exécutez la commande ci-dessous pour vérifier et vous assurer que Docker a accès à votre GPU :
docker run --rm --gpus all nvidia/cuda:12.2.0-runtime-ubuntu22.04 nvidia-smiCette commande télécharge l'image nvidia/cuda:12.2.0-runtime-ubuntu22.04 (si elle n'a pas déjà été téléchargée ou met à jour une image existante) et démarre un conteneur.
À l'intérieur du conteneur, il exécute nvidia-smi pour confirmer que le conteneur a accès au GPU et peut interagir avec le matériel GPU sous-jacent. Une fois que nvidia-smi a été exécuté, l'option --rm garantit que le conteneur est automatiquement supprimé, car il n'est plus nécessaire.
Vous devriez observer la sortie suivante :
Unable to find image 'nvidia/cuda:12.2.0-runtime-ubuntu22.04' locally
12.2.0-runtime-ubuntu22.04: Pulling from nvidia/cuda
aece8493d397: Pull complete
9fe5ccccae45: Pull complete
8054e9d6e8d6: Pull complete
bdddd5cb92f6: Pull complete
5324914b4472: Pull complete
9a9dd462fc4c: Pull complete
95eef45e00fa: Pull complete
e2554c2d377e: Pull complete
4640d022dbb8: Pull complete
Digest: sha256:739e0bde7bafdb2ed9057865f53085539f51cbf8bd6bf719f2e114bab321e70e
Status: Downloaded newer image for nvidia/cuda:12.2.0-runtime-ubuntu22.04
==========
== CUDA ==
==========
CUDA Version 12.2.0
Container image Copyright (c) 2016-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
This container image and its contents are governed by the NVIDIA Deep Learning Container License.
By pulling and using the container, you accept the terms and conditions of this license:
https://developer.nvidia.com/ngc/nvidia-deep-learning-container-license
A copy of this license is made available in this container at /NGC-DL-CONTAINER-LICENSE for your convenience.
Thu Nov 7 19:32:18 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.06 Driver Version: 535.183.06 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA H100 80GB HBM3 On | 00000000:00:09.0 Off | 0 |
| N/A 28C P0 70W / 700W | 0MiB / 81559MiB | 0% Default |
| | | Disabled |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| No running processes found |
+---------------------------------------------------------------------------------------+Déployer Open WebUI en utilisant Docker avec support GPU
Veuillez utiliser la commande docker ci-dessous pour exécuter le conteneur docker Open WebUI.
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --gpus all ghcr.io/open-webui/open-webui:main La commande ci-dessus exécute un conteneur Docker en utilisant l'image open-webui et configure des paramètres spécifiques pour les ports réseau, les volumes et l'accès au GPU.
docker run -d :
docker rundémarre un nouveau conteneur Docker.
-dexécute le conteneur en mode détaché, ce qui signifie qu'il s'exécute en arrière-plan.-p 3000:8080 :
- Cela mappe le port 8080 à l'intérieur du conteneur au port 3000 sur la machine hôte.
- Il vous permet d'accéder à l'application dans le conteneur en naviguant vers
http://localhost:3000sur l'hôte. -v open-webui:/app/backend/data :
- Cela monte un volume Docker nommé
open-webuidans le répertoire/app/backend/dataà l'intérieur du conteneur.
- Cela monte un volume Docker nommé
- Les volumes sont utilisés pour conserver les données générées ou utilisées par le conteneur, en garantissant qu'elles restent disponibles même si le conteneur est arrêté ou supprimé.
-
-nom open-webui :
- Attribue au conteneur un nom spécifique,
open-webui, ce qui facilite sa référence (par exemple,docker stop open-webuipour arrêter le conteneur).
- Attribue au conteneur un nom spécifique,
ghcr.io/open-webui/open-webui:main :
- Spécifie l'image Docker à utiliser pour le conteneur.
ghcr.io/open-webui/open-webuiest le nom de l'image, hébergée sur le registre de conteneurs de GitHub (ghcr.io).mainest le tag d'image, représentant souvent la dernière version stable ou la branche principale.-tous les GPU :
- Cette option active le support GPU pour le conteneur, lui permettant d'utiliser tous les GPU disponibles sur la machine hôte.
- C’est essentiel pour les applications qui exploitent l’accélération GPU, comme les modèles d’apprentissage automatique.
Vérifiez si le conteneur Docker Open WebUI est en fonctionnement :
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4fbe72466797 ghcr.io/open-webui/open-webui:main "bash start.sh" 5 seconds ago Up 4 seconds (health: starting) 0.0.0.0:3000->8080/tcp, :::3000->8080/tcp open-webuiUne fois le conteneur Open WebUI démarré et en fonctionnement, accédez-y à http://<your_gpu_droplet_ip>:3000 sur votre navigateur.
Étape 3 - Ajouter la clé API OpenAI pour utiliser GPT-4o avec Open WebUI
À cette étape, vous ajouterez votre clé API OpenAI à Open WebUI.
Une fois connecté au tableau de bord Open WebUI, vous devriez remarquer qu'aucun modèle n'est en cours d'exécution, comme le montre l'image ci-dessous :
Pour connecter Open WebUI avec OpenAI et utiliser tous les modèles OpenAI disponibles, suivez les étapes ci-dessous :
Ouvrir les paramètres:
- Dans Open WebUI, cliquez sur votre icône utilisateur en bas à gauche, puis cliquez sur Paramètres.
Aller à l'administration:
- Accédez à l'onglet Admin, puis sélectionnez Connexions.
Ajouter la clé API OpenAI:
- Ajoutez votre clé API OpenAI dans la boîte de texte à droite sous l'onglet API OpenAI.
Vérifier la connexion:
- Cliquez sur Vérifier la connexion. Une lumière verte confirme une connexion réussie.
Maintenant, Open WebUI détectera automatiquement tous les modèles OpenAI disponibles. Sélectionnez GPT-4o dans la liste.
Ensuite, configurez les modèles de synthèse vocale et de reconnaissance vocale ainsi que les paramètres audio pour utiliser le modèle OpenAI whisper :
Encore une fois, naviguez et cliquez sur Paramètres -> Audio pour configurer et enregistrer les paramètres audio STT et TTS, comme montré dans la capture d'écran ci-dessus.
Vous pouvez en savoir plus sur la synthèse vocale et la reconnaissance vocale d'OpenAI ici.
Étape 4 - Configurer le tunneling audio
Si vous diffusez de l'audio depuis votre machine locale vers le Droplet, faites passer l'entrée audio par un tunnel SSH.
Comme le Droplet GPU exécute le conteneur Open WebUI sur http://localhost:3000, vous pouvez y accéder depuis votre machine locale en vous rendant sur http://localhost:3000 après avoir configuré ce tunnel SSH.
Ceci est nécessaire pour permettre à Open WebUI d'accéder au microphone de votre machine locale pour la traduction audio en temps réel et le traitement linguistique en temps réel. Sans cela, il générera l'erreur ci-dessous lorsque vous cliquerez sur l'icône casque ou microphone pour utiliser GPT-4o pour les tâches de traitement du langage naturel.
Utilisez la commande ci-dessous pour configurer un tunnel SSH local de votre machine locale vers le Droplet GPU en ouvrant un nouveau terminal sur votre machine locale :
ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=5 root@<gpu_droplet_ip> -L 3000:localhost:3000Cette commande établit une connexion SSH à votre Droplet GPU en tant qu'utilisateur root et crée un tunnel de transfert de port local. Elle inclut également des options pour maintenir la session SSH active. Voici une explication détaillée :
-o ServerAliveInterval=60 :
- Cette option définit le
ServerAliveIntervalà 60 secondes, ce qui signifie que toutes les 60 secondes, un message de maintien de connexion SSH est envoyé au serveur distant.
- Cette option définit le
- Cela aide à prévenir la déconnexion de la connexion SSH en raison de l'inactivité.
-o ServerAliveCountMax=5 :
- Cette option définit le
ServerAliveCountMaxà 5, ce qui permet jusqu'à 5 messages keep-alive manqués avant que la connexion SSH ne soit terminée.
- Cette option définit le
- Avec
ServerAliveInterval=60, ce paramètre signifie que la session SSH restera ouverte pendant 5 minutes (5 × 60 secondes) sans réponse du serveur avant de se fermer. -L 3000:localhost:3000:
- Cette partie configure le transfert de port local.
3000(avant les deux-points) est le port local sur votre machine, où vous accéderez à la connexion transférée.localhost:3000(après les deux-points) fait référence à la destination sur le Droplet GPU.- Dans ce cas, il redirige le trafic du port 3000 de votre machine locale vers le port 3000 sur le Droplet GPU.
Maintenant, cette commande vous permettra d'accéder à l'Open WebUI en visitant http://localhost:3000 sur votre machine locale et également d'utiliser le microphone pour la traduction audio en temps réel.
Étape 5 - Mise en œuvre de la traduction en temps réel avec GPT-4o
Cliquez sur l'icône casque ou microphone pour utiliser les modèles whisper et GPT-4o pour les tâches de traitement du langage naturel.
Cliquer sur le bouton Casque/Appel ouvrira un assistant vocal utilisant les modèles OpenAI GPT-4o et whisper pour le traitement et la traduction audio en temps réel.
Vous pouvez l'utiliser pour traduire et transcrire l'audio en temps réel en parlant avec l'assistant vocal GPT-4o.
Conclusion
Le déploiement de la traduction audio en temps réel en utilisant les API OpenAI sur Open WebUI avec les GPU Droplets de Linux-Console.net permet aux développeurs de créer des systèmes de traduction haute performance. Avec une configuration et une surveillance faciles, la plateforme de Linux-Console.net fournit les ressources pour des applications d'IA évolutives et efficaces.











