@ai_kit/core inclut un support de transcription audio agnostique du modèle, compatible avec n’importe quel endpoint OpenAI-compatible (Scaleway Whisper large v3, OpenAI whisper-1, etc.).
Quatre primitives publiques
| Export | Rôle |
|---|---|
createTranscriptionModel(config) | Crée un provider TranscriptionModelV3 |
createTranscriptionStreamingModel(config) | Crée un modèle de streaming natif (sans AI SDK) qui émet le texte au fur et à mesure via SSE |
transcribe(options) | Fonction standalone : charge l’audio (chemin / URL / buffer), appelle le modèle, retourne la transcription |
createTranscriptionTool(model, options?) | Retourne un tool() AI SDK à attacher directement à un Agent |
createTranscriptionModel
/audio/transcriptions OpenAI-compatible (response_format=verbose_json).
transcribe
audio accepte un chemin de fichier, une URL http(s), ou un Buffer / Uint8Array. L’inputType est auto-détecté si omis.
Valeur retournée
createTranscriptionStreamingModel — streaming (natif)
Pour les enregistrements longs, vous pouvez streamer la transcription au fur et à mesure de sa production plutôt que d’attendre le fichier entier. Cette primitive dialogue directement avec l’endpoint OpenAI-compatible /audio/transcriptions avec stream=true et parse les server-sent events nativement — elle n’utilise pas experimental_transcribe de l’AI SDK.
Forme des chunks
delta portent le texte incrémental ; l’unique événement done de fermeture porte le texte complet accumulé (égal à la concaténation de tous les deltas). Passez un AbortSignal via abortSignal pour annuler en cours de stream.
Le streaming utilise le format JSON par défaut —
verbose_json (et donc les timestamps par segment) n’est pas disponible en streaming. Utilisez transcribe / createTranscriptionModel si vous avez besoin des segments.createTranscriptionTool — attacher à un Agent
audio (chemin / URL / base64), inputType, language.
Formats audio supportés
flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, webm (identique à OpenAI Whisper).