SDK Transcription React
Le package @ephia/transcribe-sdk intègre la transcription vocale en temps réel (streaming) dans une application React. Il fournit :
- un bouton prêt à l’emploi (
TranscriptionButton) avec pipeline audio (AudioWorklet, PCM 16 kHz) ; - un contexte (
TranscriptionProvider) et le hookuseTranscription()pour afficher les segments et piloter l’état ; - le hook bas niveau
useStreamingV2pour une UI entièrement personnalisée.
L’authentification se fait avec une clé API Ephia ; le SDK construit en général l’URL WebSocket et les paramètres de flux pour vous.
@ephia/transcribe-sdk
Versions, dépendances et installation en un clic depuis le registre npm.
platform.ephia.app
Essayez la transcription en direct dans le navigateur, connecté à votre compte.
Clé API : créer ou gérer vos clés sur la plateforme Ephia.
Prérequis
- HTTPS en production, ou
localhosten développement (micro + contexte sécurisé). - Navigateur récent (microphone, WebSockets, AudioWorklet).
- React 17+ et React DOM 17+ (peer dependencies du package).
- Une clé API : Créer votre clé API.
Vue d’ensemble des briques
| Brique | Rôle |
|---|---|
TranscriptionProvider | Stocke l’état publié par le bouton (chunks, erreurs, handlers, etc.). |
TranscriptionButton | Démarre / arrête la capture ; ouvre le WebSocket ; envoie l’audio. |
useTranscription() | Lit l’état uniquement si un provider est présent et que le bouton a déjà publié un état — sinon état vide (voir Utilisation). |
useStreamingV2 | Même moteur que le bouton, sans UI — vous construisez les contrôles (voir Référence SDK). |
Sans TranscriptionProvider, le bouton fonctionne toujours, mais useTranscription ne reçoit pas les données : utilisez le provider ou la prop onStateChange sur le bouton.
Identifiant utilisateur (endUserId)
La prop endUserId est fortement recommandée et deviendra obligatoire dans une prochaine version. Elle permet le suivi d’usage, la facturation et l’analytics de manière réglementaire. L’identifiant est transmis au serveur ; le hashing est géré côté backend.
<TranscriptionButton
token={token}
endUserId="user-123"
/>Par où commencer
- Installation — package npm, worklet
audio-processor.js, feuille de styles. - Utilisation — provider, bouton,
useTranscription, état détaillé. - Connexion et flux — URL WebSocket automatique,
NEXT_PUBLIC_WS_URL, optionsinterimStreaming/finalReformat, avertissements serveur. - Apparence — thème, variante, taille, logo, couleurs personnalisées.
- Presets —
promptPresetId,vadPresetId,reformatPresetId,model(résolus côté serveur). - Référence SDK —
useStreamingV2, phases, types, aperçu du protocole. - Exemples — snippet complet minimal.
- Dépannage — erreurs fréquentes et pistes.
TypeScript
Le paquet publie des fichiers .d.ts (types dans le champ exports du package.json) : imports typés sans @types séparé.
Le README publié avec le paquet npm reprend l’essentiel de l’installation et du comportement audio / WebSocket.