Guides avancésOptimisation et performanceIndex

Optimisation et performance

Guide pour optimiser la latence, la qualité et la gestion des reconnexions.


Paramètres recommandés par spécialité

Radiologie

{
  "language": "fr",
  "specialty": "radiology",
  "sample_rate": 16000,
  "preset": "high_quality",
  "enable_final_proofreading": true,
  "custom_vocabulary": ["IRM", "scanner", "échographie", ...]
}

Cardiologie

{
  "language": "fr",
  "specialty": "cardiology",
  "sample_rate": 16000,
  "preset": "balanced",
  "enable_final_proofreading": true
}

Consultation générale

{
  "language": "fr",
  "specialty": "general",
  "sample_rate": 16000,
  "preset": "low_latency",
  "enable_final_proofreading": false
}

Tableau comparatif des presets

PresetLatenceQualitéUsage recommandé
low_latency< 300msBonneConsultation en direct
balanced300-500msTrès bonneDictée de compte-rendu
high_quality500-800msExcellenteTranscription finale

Optimisation de la latence

Paramètres recommandés

  • preset: "low_latency" : Priorité à la vitesse
  • sample_rate: 16000 : Optimal pour latence/qualité
  • enable_final_proofreading: false : Désactiver pour latence minimale

Optimisations réseau

  • Utiliser une connexion stable (WiFi ou Ethernet)
  • Éviter les VPN si possible
  • Choisir la région la plus proche

Optimisations audio

  • Chunk size : 100-200ms (optimal)
  • Buffer minimal côté client
  • Compression audio légère si nécessaire

Gestion des reconnexions

Stratégie de reconnexion automatique

class EphiaClient {
  constructor(url, token) {
    this.url = url;
    this.token = token;
    this.reconnectAttempts = 0;
    this.maxReconnectAttempts = 5;
    this.reconnectDelay = 1000; // 1 seconde initiale
  }
  
  connect() {
    this.ws = new WebSocket(`${this.url}?token=${this.token}`);
    
    this.ws.onopen = () => {
      console.log('Connexion établie');
      this.reconnectAttempts = 0;
      this.reconnectDelay = 1000;
      // Envoyer configure...
    };
    
    this.ws.onclose = (event) => {
      if (event.wasClean) {
        console.log('Connexion fermée proprement');
        return;
      }
      
      if (this.reconnectAttempts < this.maxReconnectAttempts) {
        const delay = Math.min(
          this.reconnectDelay * Math.pow(2, this.reconnectAttempts),
          30000 // Max 30 secondes
        );
        
        console.log(`Reconnexion dans ${delay}ms (tentative ${this.reconnectAttempts + 1})`);
        
        setTimeout(() => {
          this.reconnectAttempts++;
          this.connect();
        }, delay);
      } else {
        console.error('Nombre maximum de tentatives atteint');
      }
    };
    
    this.ws.onerror = (error) => {
      console.error('Erreur WebSocket:', error);
    };
  }
}

Backoff exponentiel

La stratégie de backoff exponentiel augmente progressivement le délai entre les tentatives :

  • Tentative 1 : 1 seconde
  • Tentative 2 : 2 secondes
  • Tentative 3 : 4 secondes
  • Tentative 4 : 8 secondes
  • Tentative 5 : 16 secondes (max 30 secondes)

Optimisation de la qualité

Qualité audio

  • Sample rate : 16000 Hz minimum (16000 Hz optimal)
  • Bit depth : 16-bit minimum
  • Channels : Mono (stéréo converti automatiquement)
  • Format : PCM ou WAV non compressé

Réduction du bruit

  • Utiliser un microphone de qualité
  • Réduire le bruit de fond
  • Utiliser un environnement calme
  • Éviter les échos et réverbérations

Performance et monitoring

Métriques à surveiller

  • Latence : Temps entre l’envoi audio et la réception de la transcription
  • Taux d’erreur : Pourcentage de requêtes échouées
  • Qualité audio : Niveau sonore, bruit de fond
  • Utilisation : Nombre de sessions, minutes consommées

Outils de monitoring

  • Dashboard Ephia : Métriques en temps réel
  • Logs applicatifs : Session ID, timestamps, erreurs
  • Analytics : Suivi de l’utilisation et des performances

Bonnes pratiques

  • ✅ Utiliser le preset adapté à votre cas d’usage
  • ✅ Optimiser la qualité audio à la source
  • ✅ Implémenter une gestion robuste des reconnexions
  • ✅ Monitorer les performances régulièrement
  • ✅ Tester dans différents environnements réseau
  • ✅ Utiliser un vocabulaire personnalisé pour améliorer la précision

Dépannage des performances

Latence élevée

  1. Vérifier la connexion réseau
  2. Utiliser le preset low_latency
  3. Désactiver enable_final_proofreading
  4. Réduire la taille des chunks audio

Qualité insuffisante

  1. Améliorer la qualité audio (microphone, environnement)
  2. Utiliser le preset high_quality
  3. Activer enable_final_proofreading
  4. Ajouter un vocabulaire personnalisé

Reconnexions fréquentes

  1. Vérifier la stabilité du réseau
  2. Implémenter un backoff exponentiel
  3. Vérifier les limites de rate limit
  4. Contacter le support si persistant