STT
Implémentez la reconnaissance vocale (Speech-to-Text) — upload par lot et streaming WebSocket temps réel optionnel.
Le mode lot est obligatoire ; le temps réel est optionnel. Les sessions temps réel diffusent des fragments via WebSocket ou SSE.
Définir la capacité
import { defineCapabilitySTT } from "@scrydon/sdk-authoring/integrations/define";
const sttCapability = defineCapabilitySTT({
models: [
{ id: "whisper-v3", name: "Whisper V3", benchmarks: [{ name: "WER", score: 4.2, source: "Artificial Analysis" }] },
{ id: "fast-transcribe", name: "Fast Transcribe", benchmarks: [{ name: "WER", score: 5.1, source: "Internal" }] },
],
defaultModel: "whisper-v3",
// Mode lot — envoyer l'audio, récupérer le texte
async transcribe(request) {
const response = await fetch("https://api.example.com/v1/transcribe", {
method: "POST",
headers: { Authorization: `Bearer ${request.apiKey}` },
body: request.audioData,
});
const data = await response.json();
return { transcript: data.text, language: data.language, confidence: data.confidence };
},
// Streaming temps réel (optionnel)
realtime: {
protocol: "websocket",
async createSession(config) {
const ws = new WebSocket("wss://api.example.com/v1/realtime-stt");
return {
sessionId: crypto.randomUUID(),
send: (chunk) => ws.send(chunk),
onMessage: (handler) => ws.addEventListener("message", (e) => handler(e.data)),
close: async () => ws.close(),
};
},
features: { interimResults: true, endpointDetection: true, multiLanguage: false },
},
});Métadonnées du modèle
| Champ | Type | Requis | Description |
|---|---|---|---|
id | string | oui | Identifiant unique du modèle (ex. "whisper-v3") |
name | string | oui | Nom affiché dans l'interface |
benchmarks | BenchmarkScore[] | non | Scores WER — plus bas est meilleur |
Le benchmark STT standard est le WER (taux d'erreur sur les mots) — un pourcentage où plus bas est meilleur. Incluez source pour indiquer où la mesure a été effectuée.
Indicateurs de fonctionnalités temps réel
| Indicateur | Signification |
|---|---|
interimResults | Le fournisseur diffuse des transcriptions partielles au fur et à mesure de l'arrivée de l'audio |
endpointDetection | Le fournisseur signale quand le locuteur s'arrête |
multiLanguage | Une seule session peut détecter / mélanger les langues |