Hoppa till navigering

Vercel AI SDK

Använd ElevenLabs Provider i Vercel AI SDK för att transkribera tal från ljud- och videofiler.

Guide · Förutsätter att du har slutfört Speech to Text- snabbstarten och har konfigurerat ett Vercel-projekt.

ElevenLabs Provider

ElevenLabs provider har stöd för ElevenLabs transkriberings-API.

Konfiguration

ElevenLabs provider finns i modulen @ai-sdk/elevenlabs. Du kan installera den med npm:

npm install @ai-sdk/elevenlabs

Provider-instans

Du kan importera standardinstansen elevenlabs från @ai-sdk/elevenlabs:

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

Om du behöver en anpassad konfiguration kan du importera createElevenLabs från @ai-sdk/elevenlabs och skapa en provider-instans med dina inställningar:

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

Du kan använda följande valfria inställningar för att anpassa ElevenLabs provider-instansen:

  • apiKey string

    API-nyckel som skickas med headern Authorization. Standardvärdet är miljövariabeln ELEVENLABS_API_KEY.

  • headers Record<string,string>

    Anpassade headers som ska inkluderas i begärandena.

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

    Anpassad implementering av fetch. Standardvärdet är den globala funktionen fetch. Du kan använda den som middleware för att fånga upp begäranden eller tillhandahålla en anpassad fetch-implementering, till exempel för testning.

Transkriberingsmodeller

Du kan skapa modeller som anropar ElevenLabs transkriberings-API med fabriksmetoden .transcription().

Det första argumentet är modell-ID:t, till exempel scribe_v2.

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

Du kan även skicka ytterligare providerspecifika alternativ med argumentet providerOptions. Om du till exempel anger inmatningsspråket i ISO-639-1-format (t.ex. en) kan transkriberingsprestandan ibland förbättras om språket är känt i förväg.

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

Följande provider-alternativ är tillgängliga:

  • languageCode string

    En ISO-639-1- eller ISO-639-3-språkkod som motsvarar språket i ljudfilen. Kan ibland förbättra transkriberingsprestandan om språket är känt i förväg. Standardvärdet är null, vilket innebär att språket förutsägs automatiskt.

  • tagAudioEvents boolean

    Om ljudhändelser som (skratt), (fotsteg) osv. ska taggas i transkriberingen. Standardvärdet är true.

  • numSpeakers integer

    Det maximala antalet talare i den uppladdade filen. Kan hjälpa till att förutsäga vem som talar när. Det maximala antalet talare som kan förutsägas är 32. Standardvärdet är null, vilket innebär att antalet talare sätts till det högsta värde som modellen stöder.

  • timestampsGranularity enum

    Detaljnivån för tidsstämplarna i transkriberingen. Standardvärdet är 'word'. Tillåtna värden: 'none', 'word', 'character'.

  • diarize boolean

    Om det ska anges vilken talare som för närvarande talar i den uppladdade filen. Standardvärdet är true.

  • fileFormat enum

    Formatet för inmatningsljud. Standardvärdet är 'other'. Tillåtna värden: 'pcm_s16le_16', 'other'. För 'pcm_s16le_16' måste inmatningsljudet vara 16-bitars PCM med samplingsfrekvensen 16 kHz, en kanal (mono) och little-endian-byteordning. Latensen blir lägre än när du skickar en kodad vågform.

Nästa steg