Outil open source pour la synthèse vocale en temps réel
Introduction générale
realtime-transcription-fastrtc est un projet open source qui se concentre sur la conversion de la parole en texte en temps réel. Il utilise la technologie FastRTC pour traiter les flux audio à faible latence, combinée à la technologie locale de conversion de la parole en texte. Chuchotement afin d'obtenir une reconnaissance vocale efficace. Le projet est maintenu par le développeur sofi444 et hébergé sur GitHub. Le code est entièrement ouvert et permet aux utilisateurs de le modifier librement. Les utilisateurs peuvent le déployer via un navigateur ou localement, et l'interface prend en charge les modes Gradio et FastAPI, ce qui est facile à utiliser. Il convient aux enregistrements de réunions, aux sous-titres en direct et à d'autres scénarios pour répondre aux besoins des particuliers et des développeurs. Le projet met l'accent sur la légèreté, la prise en charge de plusieurs langues, la stabilité du fonctionnement et la facilité d'extension.

Liste des fonctions
- Transcription vocale en temps réel : conversion instantanée de la voix en texte via le microphone avec une faible latence de l'ordre de la milliseconde.
- Détection de l'activité vocale (VAD) : identifie automatiquement le début et la fin de la parole afin d'optimiser le processus de transcription.
- Prise en charge multilingue : anglais, chinois et autres langues, sur la base du modèle Whisper.
- Deux options d'interface : l'interface intuitive Gradio et l'interface personnalisable FastAPI.
- Exécution locale des modèles : en utilisant les modèles Whisper, la transcription hors ligne est possible sans qu'il soit nécessaire de disposer d'une connexion Internet permanente.
- Ajustement des paramètres : permet de configurer les flux audio, les seuils VAD et la taille des lots de modèles.
- Déploiement flexible : peut être exécuté localement ou déployé par l'intermédiaire de plateformes telles que Hugging Face Spaces.
- Retour d'information sur les erreurs : fournit une indication claire de l'échec de la connexion ou de l'erreur de configuration pour faciliter le débogage.
Utiliser l'aide
Processus d'installation
Pour utiliser realtime-transcription-fastrtc, vous devez préparer votre environnement Python et les dépendances associées. Vous trouverez ci-dessous les étapes détaillées qui permettront aux utilisateurs d'installer et d'exécuter le logiciel sans problème.
- Vérification des exigences du système
- Version de Python : >= 3.10.
- montage
ffmpeg
utilisé pour le traitement audio. - Matériel recommandé : GPU (par exemple MPS ou CUDA) pour accélérer l'inférence du modèle, les CPU peuvent également fonctionner mais sont plus lents.
- entrepôt de clones
Exécutez la commande suivante dans le terminal pour obtenir le code du projet :git clone https://github.com/sofi444/realtime-transcription-fastrtc cd realtime-transcription-fastrtc
- Mise en place d'un environnement virtuel
Pour éviter les conflits de dépendances, créez un environnement virtuel Python. Il existe deux méthodes officiellement recommandées pour ce faire :
Mode 1 : utilisation des UV (recommandé)
Tout d'abord, installezuv
(Réf.https://docs.astral.sh/uv/
) et de l'exécuter :uv venv --python 3.11 source .venv/bin/activate # Windows 用户运行 .venv\Scripts\activate uv pip install -r requirements.txt
Méthode 2 : Utiliser pip
python -m venv .venv source .venv/bin/activate # Windows 用户运行 .venv\Scripts\activate pip install --upgrade pip pip install -r requirements.txt
- Installer ffmpeg
Installation selon le système d'exploitationffmpeg
: :
macOS: :brew install ffmpeg
Linux (Ubuntu/Debian): :
sudo apt update sudo apt install ffmpeg
Windows (ordinateur): :
- téléchargement
ffmpeg
Exécutable (à partir dehttps://ffmpeg.org/download.html
). - Ajoutez-le à la variable d'environnement du système ou placez-le dans le répertoire racine du projet.
- téléchargement
- Configuration des variables d'environnement
Dans le répertoire racine du projet, créez le fichier.env
ajouter ce qui suit :UI_MODE=fastapi APP_MODE=local SERVER_NAME=localhost PORT=7860 MODEL_ID=openai/whisper-large-v3-turbo
UI_MODE
: Réglé surgradio
En utilisant l'interface Gradio, définirfastapi
Utiliser une interface HTML personnalisée (par défaut).APP_MODE
L'exécution locale est réglée surlocal
Le déploiement en nuage est réglé surdeployed
.MODEL_ID
: Spécifie le modèle Whisper, par défautopenai/whisper-large-v3-turbo
.SERVER_NAME
adresse du serveur, par défautlocalhost
.PORT
numéro de port, par défaut7860
.
- Projets en cours
Exécuter le programme principal :python main.py
Le terminal affiche une URL (par ex.
http://localhost:7860
Le port peut être différent en mode Gradio, il faut donc faire attention aux invites du terminal.
Principales fonctions
Transcription vocale en temps réel
- Commencer la transcriptionPour cela, ouvrez l'interface et cliquez sur le bouton "Démarrer l'enregistrement" afin d'autoriser votre navigateur à accéder au microphone. Le système détectera automatiquement la voix et affichera le texte.
- Voir les résultatsLe texte transcrit s'affiche en temps réel dans la zone de texte de l'interface et défile automatiquement jusqu'au contenu le plus récent.
- Suspension de la transcriptionCliquez sur le bouton "Stop" pour interrompre la saisie vocale.
- prendre notePour garantir une faible latence, le projet utilise par défaut une taille de lot de 1, c'est-à-dire que chaque clip audio reçu est immédiatement transcrit.
Détection de l'activité vocale (VAD)
- Le VAD fait automatiquement la distinction entre la voix et le silence pour améliorer l'efficacité de la transcription. Paramètres ajustables (voir la documentation FastRTC)
https://fastrtc.org
) :audio_chunk_duration
: Longueur du clip audio, par défaut 0,6 seconde.started_talking_threshold
: Seuil d'apparition de la voix, par défaut 0,2 seconde.speech_pad_ms
: Remplissage silencieux, valeur par défaut 400 millisecondes.
- Modification : Editer
main.py
ou passer des paramètres via des variables d'environnement.
Commutation d'interface
- Interface GradioL'interface : Idéale pour les tests rapides, l'interface contient un bouton d'enregistrement et une zone d'affichage du texte. Paramètres
UI_MODE=gradio
Exécutez-le ensuite pour accéder à l'adresse indiquée par le terminal. - Interface FastAPILe logiciel est un outil de personnalisation et convient aux développeurs. Modifier
index.html
Les styles ou les caractéristiques peuvent être ajustés. RéglagesUI_MODE=fastapi
Après avoir couru, visitezhttp://localhost:8000
.
Fonction en vedette Fonctionnement
Modèles de chuchotements locaux
- Modèle par défaut :
openai/whisper-large-v3-turbo
Il est léger, multilingue et offre d'excellentes performances. - Changement de modèle : réglages
MODEL_ID
par exempleopenai/whisper-small
(pour les appareils à profil bas). Prise en charge d'autres modèles de DAS Hugging Face (https://huggingface.co/models?pipeline_tag=automatic-speech-recognition
). - Réglage de la langue : la traduction par défaut est l'anglais ; si vous avez besoin de transcrire d'autres langues, définissez-les dans le code.
language
paramètres (par exemplelanguage=zh
(en chinois). - Optimisation de l'exécution : la première exécution réchauffe le modèle pour réduire la latence. L'accélération GPU est recommandée.
Prise en charge multilingue
- Prise en charge de l'anglais, du chinois, de l'espagnol et d'autres langues, selon le modèle.
- Configuration : Dans la section
main.py
mettre en placetranscribe
et spécifier la langue cible. - Exemple : transcrire la voix chinoise, définir
language=zh
Assurez-vous que l'entrée du microphone est libre.
Déploiement dans le nuage
- Espaces de câlins: Réglages
APP_MODE=deployed
Pour configurer le serveur Turn (voirhttps://fastrtc.org/deployment/
). Téléchargez le code et exécutez-le en suivant les instructions de la plateforme. - Autres plateformesLes ports sont ouverts : vous devez configurer manuellement WebRTC et l'environnement du serveur pour vous assurer que les ports sont ouverts.
traitement des erreurs
- erreur commune: :
- "Échec de la connexion" : vérifiez la configuration du réseau ou de WebRTC.
- "Modèle non trouvé" : confirmé
MODEL_ID
Correct et le modèle a été téléchargé. - "ffmpeg not found" : assurez-vous que l'option
ffmpeg
Installé et dans le chemin d'accès au système.
- ajuster les composants pendant les essaisLes données du terminal sont affichées au moment de l'exécution pour enregistrer la fréquence d'échantillonnage audio, l'état de chargement du modèle, etc.
mise en garde
- logicielGPU recommandé pour l'inférence en temps réel, prise en charge du MPS
whisper-large-v3-turbo
. - navigateur (logiciel)Il est recommandé d'utiliser Chrome ou Firefox pour s'assurer que WebRTC fonctionne correctement.
- précision de la paroleLes microphones peuvent être utilisés en fonction de la qualité du microphone et de l'environnement, mais il est recommandé de les utiliser dans des environnements calmes.
scénario d'application
- procédures
Lors de réunions à distance ou sur site, transcrivez les discussions en temps réel pour générer des transcriptions. Les équipes peuvent les exporter et les collationner directement, ce qui élimine la nécessité de prendre des notes manuellement. - sous-titrage en direct
Ajoutez des sous-titres en temps réel aux émissions en direct pour améliorer l'accessibilité du contenu. Les présentateurs peuvent rapidement travailler avec l'interface Gradio et les téléspectateurs voient instantanément le texte. - l'apprentissage des langues
Transcription de la prononciation sous forme de texte pour vérifier la précision lorsque les élèves pratiquent une langue étrangère. Prise en charge multilingue, adaptée à l'anglais, au chinois et à d'autres scénarios d'apprentissage. - capacité de développement
Les développeurs peuvent intégrer des projets dans d'autres applications pour tester les fonctionnalités WebRTC ou ASR. Le code ouvert favorise le développement secondaire.
QA
- Dois-je travailler en réseau ?
Aucune connexion internet n'est nécessaire pour le fonctionnement local, les modèles peuvent être téléchargés et utilisés hors ligne. Le déploiement dans le nuage nécessite la prise en charge du réseau pour WebRTC. - Quelles sont les langues prises en charge ?
L'anglais est pris en charge par défaut. Paramètreslanguage
Les paramètres peuvent prendre en charge le chinois, l'espagnol, etc., selon le modèle de Whisper. - Comment améliorer la précision de la transcription ?
Utilisez un microphone de haute qualité, maintenez un environnement calme et choisissez un modèle de grande taille (tel qu'unwhisper-large-v3-turbo
). - Puis-je personnaliser l'interface ?
Oui, éditable en mode FastAPI !index.html
Les services d'information et de conseil peuvent également être utilisés, en ajustant les styles ou en ajoutant des fonctionnalités. - Pourquoi la transcription est-elle retardée ?
Peut être dû à un manque de performance du matériel ou à des problèmes de réseau. L'utilisation d'un GPU est recommandée, vérifiez la configuration de WebRTC.
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...