Vai alla navigazione

Vercel AI SDK

Usa il provider ElevenLabs nel Vercel AI SDK per trascrivere il parlato da file audio e video.

Guida pratica · Presuppone che tu abbia completato la guida rapida di Speech to Text e abbia configurato un progetto Vercel.

Provider ElevenLabs

Il provider ElevenLabs supporta l’API di trascrizione ElevenLabs.

Configurazione

Il provider ElevenLabs è disponibile nel modulo @ai-sdk/elevenlabs. Puoi installarlo con npm:

npm install @ai-sdk/elevenlabs

Istanza del provider

Puoi importare l’istanza predefinita del provider elevenlabs da @ai-sdk/elevenlabs:

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

Se hai bisogno di una configurazione personalizzata, puoi importare createElevenLabs da @ai-sdk/elevenlabs e creare un’istanza del provider con le tue impostazioni:

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

Puoi usare le seguenti impostazioni facoltative per personalizzare l’istanza del provider ElevenLabs:

  • apiKey string

    Chiave API inviata tramite l’header Authorization. Per impostazione predefinita, usa la variabile d’ambiente ELEVENLABS_API_KEY.

  • headers Record<string,string>

    Header personalizzati da includere nelle richieste.

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

    Implementazione personalizzata di fetch. Per impostazione predefinita, usa la funzione globale fetch. Puoi usarla come middleware per intercettare le richieste oppure per fornire un’implementazione fetch personalizzata, ad esempio per i test.

Modelli di trascrizione

Puoi creare modelli che chiamano l’API di trascrizione ElevenLabs usando il metodo factory .transcription().

Il primo argomento è l’ID del modello, ad esempio scribe_v2.

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

Puoi anche passare opzioni aggiuntive specifiche del provider usando l’argomento providerOptions. Ad esempio, fornire la lingua di input nel formato ISO-639-1, ad esempio en, può talvolta migliorare le prestazioni di trascrizione se la conosci in anticipo.

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

Sono disponibili le seguenti opzioni del provider:

  • languageCode string

    Codice lingua ISO-639-1 o ISO-639-3 corrispondente alla lingua del file audio. Può talvolta migliorare le prestazioni di trascrizione se la conosci in anticipo. Per impostazione predefinita è null, nel qual caso la lingua viene prevista automaticamente.

  • tagAudioEvents boolean

    Indica se contrassegnare nella trascrizione eventi audio come (risate), (passi) e così via. Per impostazione predefinita è true.

  • numSpeakers integer

    Il numero massimo di persone che parlano nel file caricato. Può aiutare a prevedere chi parla e quando. Il numero massimo di parlanti che può essere previsto è 32. Per impostazione predefinita è null, nel qual caso il numero di parlanti è impostato sul valore massimo supportato dal modello.

  • timestampsGranularity enum

    La granularità dei timestamp nella trascrizione. Per impostazione predefinita è 'word'. Valori consentiti: 'none', 'word', 'character'.

  • diarize boolean

    Indica se annotare quale parlante sta parlando nel file caricato. Per impostazione predefinita è true.

  • fileFormat enum

    Il formato dell’audio di input. Per impostazione predefinita è 'other'. Valori consentiti: 'pcm_s16le_16', 'other'. Per 'pcm_s16le_16', l’audio di input deve essere PCM a 16 bit con frequenza di campionamento di 16 kHz, canale singolo (mono) e ordine dei byte little-endian. La latenza sarà inferiore rispetto al passaggio di una forma d’onda codificata.

Passaggi successivi