Présentation de l'outil de reconnaissance vocale local
Ce guide détaille l'installation d'un système de reconnaissance vocale local basé sur le modèle FireRedASR-AED-L (1,1 milliard de paramètres). L'outil intègre la configuration automatique de l'environnement, le prétraitement intelligent des fichiers auddio et l'inférence adaptative GPU/CPU, le tout accessible via une interface Streamlit fonctionnant entièrement hors ligne.
Prérequis système et déploiement rapide
Configuration matérielle et logicielle
Pour procéder, assurez-vous de disposer d'un environnement répondant à ces critères :
- Système d'exploitation : Ubuntu 18.04+ / CentOS 7+ / Windows 10+ avec WSL2
- Docker : version 20.10.0 ou supérieure
- Docker Compose : version 2.0.0 ou supérieure
- Ressources minimales : processeur 4 cœurs, 8 Go de RAM, 20 Go d'espace disque
- Configuration recommandée : processeur 8 cœurs, 16 Go de RAM, carte graphique NVIDIA avec CUDA (optionnel)
Procédure d'installation automatisée
L'installation s'effectue en deux commandes simples :
# Récupération du code source
git clone https://votre-depot/fireredasr-aed-l.git
cd fireredasr-aed-l
# Lancement des services via Docker Compose
docker compose up -d
Après quelques minutes, le service sera disponible à l'adresse http://localhost:8501. Vous pouvez vérifier le bon fonctionnement avec :
# Vérification des conteneurs actifs
docker compose ps
# Consultation des logs en temps réel
docker compose logs -f
Intégration du proxy inverse HTTPS
Justification de la sécurisatino
L'ajout d'une couche HTTPS via un proxy inverse comme Nginx chiffre les communications, authentifie le serveur et répond aux exigences de sécurité des navigateurs modernes, particulièrement utile pour un accès distant.
Configuration Nginx pour HTTPS
Créez un fichier reverse_proxy.conf avec le contenu suivant :
server {
listen 443 ssl http2;
server_name exemple.fr; # À adapter à votre domaine
ssl_certificate /chemin/vers/certificat.pem;
ssl_certificate_key /chemin/vers/cle-privee.pem;
location / {
proxy_pass http://localhost:8501;
proxy_set_header Host $host;
proxy_set_header X-Original-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name exemple.fr;
return 301 https://$host$request_uri;
}
Déploiement intégré avec Docker Compose
Pour simplifier l'architecture, étendez votre fichier compose.yaml pour inclure Nginx :
version: '3.8'
services:
reconnaissance-vocale:
image: fireredasr-aed-l:latest
ports:
- "8501:8501"
environment:
- USE_GPU=true
proxy-web:
image: nginx:1.25-alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./reverse_proxy.conf:/etc/nginx/conf.d/default.conf:ro
- ./certificats:/etc/nginx/ssl:ro
depends_on:
reconnaissance-vocale:
condition: service_started
Un seul docker compose up -d lancera alors les deux services de manière synchronisée.
Fonctionnalités techniques avancées
Prétraitement audio automatisé
Le moteur de traitement intégré effectue automatiquement :
- Conversion de fréquence : rééchantillonnage systématique à 16 kHz
- Normalisation du format : conversion en mono, PCM 16 bits
- Support étendu : MP3, WAV, M4A, OGG, sans conversion manuelle préalable
Inférence adaptative accélération matérielle
Le système détecte dynamiquement les ressources disponibles :
- Utilisation prioritaire de la carte graphique NVIDIA via CUDA si disponible
- Basculement automatique sur CPU en cas d'indisponibilité du GPU
- Gestion de la mémoire insuffisante par redimensionnement des opérations
Interface d'interaction
La couche utilisateur développée avec Streamlit propose une expérience simplifiée. Voici un extrait du code générique de l'interface :
import streamlit as st
# Configuration des paramètres
with st.sidebar:
st.header("Options de reconnaissance")
utilisation_gpu = st.toggle("Accélération GPU", value=True)
profondeur_recherche = st.selectbox("Profondeur de faisceau", [1, 3, 5], index=1)
# Zone principale d'interaction
st.title("Outil de transcription vocale")
fichier_audio = st.file_uploader("Charger un fichier audio", type=["wav", "mp3"])
if fichier_audio:
st.audio(fichier_audio)
if st.button("Lancer la transcription"):
# Logique de traitement ici
pass
Conseils d'utilisation
Pour une transcription optimale :
- Déposez votre fichier audio dans la zone prévue
- Conservez les paramètres par défaut pour la plupart des cas
- Cliquez sur le bouton de lancement et patientez pendant le traitement
En cas de lenteur, désactivez l'accélération GPU ou réduisez la profondeur de recherche. Pour les fichiers volumineux, vérifiez que la mémoire système disponible dépasse 8 Go.
Cas d'usage pratiques
Cette solution s'adapte à divers scénarios professionnels :
- Comptes-rendus de réunions : transcription automatique des enregistrements audio
- Prise de notes académiques : conversion des cours enregistrés en texte structuré
- Production de contenu : génération de sous-titres pour les vidéos et podcasts