Przejdź do nawigacji

Vercel AI SDK

Użyj dostawcy ElevenLabs w Vercel AI SDK, aby transkrybować mowę z plików audio i wideo.

Przewodnik krok po kroku · Zakłada, że masz już za sobą krótki przewodnik po Speech to Text i skonfigurowany projekt Vercel.

Dostawca ElevenLabs

Dostawca ElevenLabs obsługuje API transkrypcji ElevenLabs.

Konfiguracja

Dostawca ElevenLabs jest dostępny w module @ai-sdk/elevenlabs. Możesz go zainstalować przez npm:

npm install @ai-sdk/elevenlabs

Instancja dostawcy

Możesz zaimportować domyślną instancję dostawcy elevenlabs z @ai-sdk/elevenlabs:

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

Jeśli potrzebujesz własnej konfiguracji, możesz zaimportować createElevenLabs z @ai-sdk/elevenlabs i utworzyć instancję dostawcy z własnymi ustawieniami:

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

Do dostosowania instancji dostawcy ElevenLabs możesz użyć tych opcjonalnych ustawień:

  • apiKey string

    Klucz API wysyłany w nagłówku Authorization. Domyślnie używana jest zmienna środowiskowa ELEVENLABS_API_KEY.

  • headers Record<string,string>

    Własne nagłówki do uwzględnienia w żądaniach.

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

    Własna implementacja fetch. Domyślnie używana jest globalna funkcja fetch. Możesz użyć jej jako middleware do przechwytywania żądań lub zapewnić własną implementację fetch, na przykład do testów.

Modele transkrypcji

Możesz tworzyć modele wywołujące API transkrypcji ElevenLabs za pomocą metody fabrycznej .transcription().

Pierwszym argumentem jest identyfikator modelu, np. scribe_v3.

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

Możesz też przekazać dodatkowe opcje specyficzne dla dostawcy przez argument providerOptions. Na przykład podanie języka wejściowego w formacie ISO-639-1 (np. en) może czasem poprawić jakość transkrypcji, jeśli znasz go wcześniej.

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

Dostępne są następujące opcje dostawcy:

  • languageCode string

    Kod języka ISO-639-1 lub ISO-639-3 odpowiadający językowi pliku audio. Może czasem poprawić jakość transkrypcji, jeśli znasz go wcześniej. Domyślnie null, wtedy język jest wykrywany automatycznie.

  • tagAudioEvents boolean

    Określa, czy oznaczać w transkrypcji zdarzenia audio, takie jak (śmiech), (kroki) itp. Domyślnie true.

  • numSpeakers integer

    Maksymalna liczba osób mówiących w przesłanym pliku. Może pomóc przewidzieć, kto mówi w danym momencie. Maksymalna liczba mówców, którą można przewidzieć, to 32. Domyślnie null, wtedy liczba mówców jest ustawiana na maksymalną wartość obsługiwaną przez model.

  • timestampsGranularity enum

    Szczegółowość znaczników czasu w transkrypcji. Domyślnie 'word'. Dozwolone wartości: 'none', 'word', 'character'.

  • diarize boolean

    Określa, czy oznaczać, który mówca aktualnie mówi w przesłanym pliku. Domyślnie true.

  • fileFormat enum

    Format wejściowego audio. Domyślnie 'other'. Dozwolone wartości: 'pcm_s16le_16', 'other'. Dla 'pcm_s16le_16' wejściowe audio musi być 16-bitowym PCM z częstotliwością próbkowania 16 kHz, jednym kanałem (mono) i kolejnością bajtów little-endian. Opóźnienie będzie mniejsze niż przy przekazywaniu zakodowanego przebiegu audio.

Kolejne kroki