Vercel AI SDK

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

Poradnik · Zakłada, że masz za sobą szybki start ze Speech to Text i skonfigurowany projekt Vercel.

Provider ElevenLabs

Provider ElevenLabs obsługuje API transkrypcji ElevenLabs.

Konfiguracja

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

npm install @ai-sdk/elevenlabs

Instancja providera

Możesz zaimportować domyślną instancję providera 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ę providera z wybranymi ustawieniami:

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

Aby dostosować instancję providera 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żywa globalnej funkcji 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().

Pierwszy argument to identyfikator modelu, np. scribe_v2.

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

Możesz też przekazać dodatkowe opcje specyficzne dla providera 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 z góry.

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

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

  • 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 z góry. Domyślnie: null, wtedy język jest wykrywany automatycznie.

  • tagAudioEvents boolean

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

  • numSpeakers integer

    Maksymalna liczba mówców w przesłanym pliku. Może pomóc przewidzieć, kto mówi w danym momencie. Maksymalna liczba wykrywanych mówców 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 o częstotliwości próbkowania 16 kHz, z jednym kanałem (mono) i kolejnością bajtów little-endian. Opóźnienie będzie mniejsze niż przy przesyłaniu zakodowanego przebiegu.

Kolejne kroki