> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Vercel AI SDK

> **Note**
>
> **Guia prático** · Pressupõe que você concluiu o [guia de início rápido do Speech to Text ](/docs/pt/eleven-api/guides/cookbooks/speech-to-text) e configurou um projeto na Vercel.

# Provedor da ElevenLabs

O [provedor da ElevenLabs](https://ai-sdk.dev/providers/ai-sdk-providers/elevenlabs) oferece suporte à [API de transcrição da ElevenLabs](https://elevenlabs.io/speech-to-text).

## Configuração

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

```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`:

```ts
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:

```ts
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](https://developer.mozilla.org/en-US/docs/Web/API/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](https://elevenlabs.io/speech-to-text)
usando o método de fábrica `.transcription()`.

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

```ts
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.

```ts {7}
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

#### [Streaming no servidor](/docs/pt/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming)

Transcreva áudio em tempo real usando a API de streaming baseada em WebSocket.

#### [Referência da API](/docs/pt/api-reference/speech-to-text)

Referência e parâmetros completos da API de Speech to Text.