Skip to navigation

Vercel AI SDK

Gebruik de ElevenLabs Provider in de Vercel AI SDK om spraak uit audio- en videobestanden te transcriberen.

Handleiding · Hierbij wordt ervan uitgegaan dat je de Speech to Text- quickstart hebt voltooid en een Vercel-project hebt ingesteld.

ElevenLabs Provider

De ElevenLabs provider biedt ondersteuning voor de ElevenLabs-transcriptie-API.

Instellen

De ElevenLabs provider is beschikbaar in de module @ai-sdk/elevenlabs. Je kunt deze met npm installeren:

npm install @ai-sdk/elevenlabs

Providerinstance

Je kunt de standaardproviderinstance elevenlabs importeren vanuit @ai-sdk/elevenlabs:

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

Als je een aangepaste configuratie nodig hebt, kun je createElevenLabs importeren vanuit @ai-sdk/elevenlabs en een providerinstance maken met je instellingen:

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

Je kunt de volgende optionele instellingen gebruiken om de ElevenLabs-providerinstance aan te passen:

  • apiKey string

    API-sleutel die via de header Authorization wordt verzonden. Standaard wordt de omgevingsvariabele ELEVENLABS_API_KEY gebruikt.

  • headers Record<string,string>

    Aangepaste headers die in de requests moeten worden opgenomen.

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

    Aangepaste implementatie van fetch. Standaard wordt de globale functie fetch gebruikt. Je kunt deze als middleware gebruiken om requests te onderscheppen, of om bijvoorbeeld een aangepaste fetch-implementatie voor tests te bieden.

Transcriptiemodellen

Je kunt modellen maken die de ElevenLabs-transcriptie-API aanroepen met de factorymethode .transcription().

Het eerste argument is de model-id, bijvoorbeeld scribe_v2.

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

Je kunt ook aanvullende providerspecifieke opties doorgeven met het argument providerOptions. Als je bijvoorbeeld vooraf de invoertaal in de indeling ISO-639-1 (bijv. en) opgeeft, kan dat de transcriptieprestaties soms verbeteren.

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" } },
});

De volgende provideropties zijn beschikbaar:

  • languageCode string

    Een ISO-639-1- of ISO-639-3-taalcode die overeenkomt met de taal van het audiobestand. Kan de transcriptieprestaties soms verbeteren als deze vooraf bekend is. Standaard is dit null; in dat geval wordt de taal automatisch voorspeld.

  • tagAudioEvents boolean

    Of audiogebeurtenissen zoals (gelach), (voetstappen) enzovoort in de transcriptie moeten worden getagd. Standaard is dit true.

  • numSpeakers integer

    Het maximale aantal sprekers in het geüploade bestand. Kan helpen voorspellen wie wanneer spreekt. Het maximale aantal sprekers dat kan worden voorspeld is 32. Standaard is dit null; in dat geval wordt het aantal sprekers ingesteld op de maximale waarde die het model ondersteunt.

  • timestampsGranularity enum

    De granulariteit van de tijdstempels in de transcriptie. Standaard is dit 'word'. Toegestane waarden: 'none', 'word', 'character'.

  • diarize boolean

    Of moet worden geannoteerd welke spreker momenteel in het geüploade bestand spreekt. Standaard is dit true.

  • fileFormat enum

    De indeling van de invoeraudio. Standaard is dit 'other'. Toegestane waarden: 'pcm_s16le_16', 'other'. Voor 'pcm_s16le_16' moet de invoeraudio 16-bits PCM met een samplefrequentie van 16 kHz, één kanaal (mono) en little-endian bytevolgorde zijn. De latency is lager dan bij het doorgeven van een gecodeerde waveform.

Volgende stappen