Vercel AI SDK

Use o provedor da ElevenLabs no Vercel AI SDK para transcrever fala de arquivos de áudio e vídeo.

Guia prático · Pressupõe que você concluiu o guia de início rápido do Speech to Text e configurou um projeto na Vercel.

Provedor da ElevenLabs

O provedor da ElevenLabs oferece suporte à API de transcrição da ElevenLabs.

Configuração

O provedor da ElevenLabs está disponível no módulo @ai-sdk/elevenlabs. Você pode instalá-lo com npm:

npm install @ai-sdk/elevenlabs

Instância do provedor

Você pode importar a instância padrão do provedor, elevenlabs, de @ai-sdk/elevenlabs:

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

Se precisar de uma configuração personalizada, você pode importar createElevenLabs de @ai-sdk/elevenlabs e criar uma instância do provedor com suas configurações:

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

Você pode usar as seguintes configurações opcionais para personalizar a instância do provedor da ElevenLabs:

  • apiKey string

    Chave de API enviada usando o cabeçalho Authorization. Por padrão, usa a variável de ambiente ELEVENLABS_API_KEY.

  • headers Record<string,string>

    Cabeçalhos personalizados para incluir nas solicitações.

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

    Implementação personalizada de fetch. Por padrão, usa a função global fetch. Você pode usá-la como middleware para interceptar solicitações ou para fornecer uma implementação personalizada de fetch, por exemplo, para testes.

Modelos de transcrição

Você pode criar modelos que chamam a API de transcrição da ElevenLabs usando o método de fábrica .transcription().

O primeiro argumento é o ID do modelo, por exemplo, scribe_v2.

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

Você também pode passar opções adicionais específicas do provedor usando o argumento providerOptions. Por exemplo, informar o idioma de entrada no formato ISO-639-1 (por exemplo, en) pode, às vezes, melhorar o desempenho da transcrição se ele for conhecido previamente.

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

As seguintes opções do provedor estão disponíveis:

  • languageCode string

    Um código de idioma ISO-639-1 ou ISO-639-3 correspondente ao idioma do arquivo de áudio. Às vezes, pode melhorar o desempenho da transcrição se for conhecido previamente. O padrão é null; nesse caso, o idioma é previsto automaticamente.

  • tagAudioEvents boolean

    Define se eventos de áudio como (risadas), (passos) etc. devem ser marcados na transcrição. O padrão é true.

  • numSpeakers integer

    A quantidade máxima de falantes no arquivo enviado. Pode ajudar a prever quem fala em cada momento. O número máximo de falantes que pode ser previsto é 32. O padrão é null; nesse caso, a quantidade de falantes é definida como o valor máximo compatível com o modelo.

  • timestampsGranularity enum

    A granularidade dos timestamps na transcrição. O padrão é 'word'. Valores permitidos: 'none', 'word', 'character'.

  • diarize boolean

    Define se deve ser anotado qual falante está falando no momento no arquivo enviado. O padrão é true.

  • fileFormat enum

    O formato do áudio de entrada. O padrão é 'other'. Valores permitidos: 'pcm_s16le_16', 'other'. Para 'pcm_s16le_16', o áudio de entrada deve ser PCM de 16 bits com taxa de amostragem de 16 kHz, canal único (mono) e ordem de bytes little-endian. A latência será menor do que ao enviar uma forma de onda codificada.

Próximas etapas