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
| Preset | Latence | Qualité | Usage recommandé |
|---|---|---|---|
low_latency | < 300ms | Bonne | Consultation en direct |
balanced | 300-500ms | Très bonne | Dictée de compte-rendu |
high_quality | 500-800ms | Excellente | Transcription finale |
Optimisation de la latence
Paramètres recommandés
preset: "low_latency": Priorité à la vitessesample_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
- Vérifier la connexion réseau
- Utiliser le preset
low_latency - Désactiver
enable_final_proofreading - Réduire la taille des chunks audio
Qualité insuffisante
- Améliorer la qualité audio (microphone, environnement)
- Utiliser le preset
high_quality - Activer
enable_final_proofreading - Ajouter un vocabulaire personnalisé
Reconnexions fréquentes
- Vérifier la stabilité du réseau
- Implémenter un backoff exponentiel
- Vérifier les limites de rate limit
- Contacter le support si persistant