Vercel AI SDK

Verwenden Sie den ElevenLabs Provider im Vercel AI SDK, um Sprache aus Audio- und Videodateien zu transkribieren.

Anleitung · Setzt voraus, dass Sie den Speech to Text Schnellstart abgeschlossen und ein Vercel-Projekt eingerichtet haben.

ElevenLabs Provider

Der ElevenLabs Provider unterstützt die ElevenLabs Transcription API.

Einrichtung

Der ElevenLabs Provider ist im Modul @ai-sdk/elevenlabs verfügbar. Sie können ihn mit npm installieren:

npm install @ai-sdk/elevenlabs

Provider-Instanz

Sie können die Standard-Provider-Instanz elevenlabs aus @ai-sdk/elevenlabs importieren:

import { elevenlabs } from "@ai-sdk/elevenlabs";

Wenn Sie eine angepasste Einrichtung benötigen, können Sie createElevenLabs aus @ai-sdk/elevenlabs importieren und mit Ihren Einstellungen eine Provider-Instanz erstellen:

import { createElevenLabs } from "@ai-sdk/elevenlabs";
const elevenlabs = createElevenLabs({
// custom settings, e.g.
fetch: customFetch,
});

Mit den folgenden optionalen Einstellungen können Sie die ElevenLabs Provider-Instanz anpassen:

  • apiKey string

    API-Schlüssel, der über den Header Authorization gesendet wird. Standardmäßig wird die Umgebungsvariable ELEVENLABS_API_KEY verwendet.

  • headers Record<string,string>

    Benutzerdefinierte Header, die in die Anfragen aufgenommen werden.

  • fetch (input: RequestInfo, init?: RequestInit) => Promise<Response>

    Benutzerdefinierte fetch-Implementierung. Standardmäßig wird die globale Funktion fetch verwendet. Sie können sie als Middleware verwenden, um Anfragen abzufangen, oder etwa eine benutzerdefinierte Fetch-Implementierung für Tests bereitzustellen.

Transkriptionsmodelle

Mit der Factory-Methode .transcription() können Sie Modelle erstellen, die die ElevenLabs Transcription API aufrufen.

Das erste Argument ist die Modell-ID, z. B. scribe_v2.

const model = elevenlabs.transcription("scribe_v2");

Über das Argument providerOptions können Sie auch zusätzliche Provider-spezifische Optionen übergeben. Wenn die Eingabesprache im ISO-639-1-Format (z. B. en) im Voraus bekannt ist, kann ihre Angabe die Transkriptionsleistung mitunter verbessern.

import { elevenlabs } from "@ai-sdk/elevenlabs";
import { experimental_transcribe as transcribe } from "ai";
const result = await transcribe({
model: elevenlabs.transcription("scribe_v2"),
audio: new Uint8Array([1, 2, 3, 4]),
providerOptions: { elevenlabs: { languageCode: "en" } },
});

Folgende Provider-Optionen sind verfügbar:

  • languageCode string

    Ein ISO-639-1- oder ISO-639-3-Sprachcode, der der Sprache der Audiodatei entspricht. Kann die Transkriptionsleistung mitunter verbessern, wenn er im Voraus bekannt ist. Standardmäßig null; in diesem Fall wird die Sprache automatisch vorhergesagt.

  • tagAudioEvents boolean

    Gibt an, ob Audioereignisse wie (Lachen), (Schritte) usw. in der Transkription markiert werden. Standardmäßig true.

  • numSpeakers integer

    Die maximale Anzahl von Sprechern in der hochgeladenen Datei. Kann helfen vorherzusagen, wer wann spricht. Es können maximal 32 Sprecher vorhergesagt werden. Standardmäßig null; in diesem Fall wird die Sprecheranzahl auf den maximal vom Modell unterstützten Wert gesetzt.

  • timestampsGranularity enum

    Die Granularität der Zeitstempel in der Transkription. Standardmäßig 'word'. Zulässige Werte: 'none', 'word', 'character'.

  • diarize boolean

    Gibt an, ob markiert werden soll, welcher Sprecher gerade in der hochgeladenen Datei spricht. Standardmäßig true.

  • fileFormat enum

    Das Format des Eingabeaudios. Standardmäßig 'other'. Zulässige Werte: 'pcm_s16le_16', 'other'. Für 'pcm_s16le_16' muss das Eingabeaudio 16-Bit-PCM mit einer Abtastrate von 16 kHz, einem Kanal (Mono) und Little-Endian-Byte-Reihenfolge sein. Die Latenz ist geringer als beim Übergeben einer kodierten Wellenform.

Nächste Schritte