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.

  1. Vérification des exigences du système
    • Version de Python : >= 3.10.
    • montage ffmpegutilisé 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.
  2. 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
    
  3. 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, installez uv(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
    
  4. Installer ffmpeg
    Installation selon le système d'exploitation ffmpeg: :
    macOS: :

    brew install ffmpeg
    

    Linux (Ubuntu/Debian): :

    sudo apt update
    sudo apt install ffmpeg
    

    Windows (ordinateur): :

    • téléchargement ffmpeg Exécutable (à partir de https://ffmpeg.org/download.html).
    • Ajoutez-le à la variable d'environnement du système ou placez-le dans le répertoire racine du projet.
  5. 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é sur gradio En utilisant l'interface Gradio, définir fastapi Utiliser une interface HTML personnalisée (par défaut).
    • APP_MODEL'exécution locale est réglée sur localLe déploiement en nuage est réglé sur deployed.
    • MODEL_ID: Spécifie le modèle Whisper, par défaut openai/whisper-large-v3-turbo.
    • SERVER_NAMEadresse du serveur, par défaut localhost.
    • PORTnuméro de port, par défaut 7860.
  6. Projets en cours
    Exécuter le programme principal :

    python main.py
    

    Le terminal affiche une URL (par ex. http://localhost:7860Le 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églages UI_MODE=fastapi Après avoir couru, visitez http://localhost:8000.

Fonction en vedette Fonctionnement

Modèles de chuchotements locaux

  • Modèle par défaut :openai/whisper-large-v3-turboIl est léger, multilingue et offre d'excellentes performances.
  • Changement de modèle : réglages MODEL_IDpar exemple openai/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 exemple language=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 place transcribe et spécifier la langue cible.
  • Exemple : transcrire la voix chinoise, définir language=zhAssurez-vous que l'entrée du microphone est libre.

Déploiement dans le nuage

  • Espaces de câlins: Réglages APP_MODE=deployedPour configurer le serveur Turn (voir https://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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. 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.
  2. Quelles sont les langues prises en charge ?
    L'anglais est pris en charge par défaut. Paramètres language Les paramètres peuvent prendre en charge le chinois, l'espagnol, etc., selon le modèle de Whisper.
  3. 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'un whisper-large-v3-turbo).
  4. Puis-je personnaliser l'interface ?
    Oui, éditable en mode FastAPI ! index.htmlLes services d'information et de conseil peuvent également être utilisés, en ajustant les styles ou en ajoutant des fonctionnalités.
  5. 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
AiPPT

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...