> 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**
>
> **Guía práctica** · Da por hecho que has completado la [guía de inicio rápido de Voz a Texto ](/docs/es/eleven-api/guides/cookbooks/speech-to-text) y que tienes un proyecto de Vercel configurado.

# Proveedor de ElevenLabs

El [proveedor de ElevenLabs](https://ai-sdk.dev/providers/ai-sdk-providers/elevenlabs) ofrece compatibilidad con la [API de transcripción de ElevenLabs](https://elevenlabs.io/speech-to-text).

## Configuración

El proveedor de ElevenLabs está disponible en el módulo `@ai-sdk/elevenlabs`. Puedes instalarlo con npm:

```npm
npm install @ai-sdk/elevenlabs
```

## Instancia del proveedor

Puedes importar la instancia predeterminada del proveedor, `elevenlabs`, desde `@ai-sdk/elevenlabs`:

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

Si necesitas una configuración personalizada, puedes importar `createElevenLabs` desde `@ai-sdk/elevenlabs` y crear una instancia del proveedor con tus ajustes:

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

const elevenlabs = createElevenLabs({
  // custom settings, e.g.
  fetch: customFetch,
});
```

Puedes usar los siguientes ajustes opcionales para personalizar la instancia del proveedor de ElevenLabs:

* **apiKey** *string*

  Clave de API que se envía mediante la cabecera `Authorization`.
  De forma predeterminada, usa la variable de entorno `ELEVENLABS_API_KEY`.

* **headers** *Record\<string,string>*

  Cabeceras personalizadas que se incluirán en las solicitudes.

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

  Implementación personalizada de [fetch](https://developer.mozilla.org/en-US/docs/Web/API/fetch).
  De forma predeterminada, usa la función global `fetch`.
  Puedes usarla como middleware para interceptar solicitudes
  o para proporcionar una implementación personalizada de fetch, por ejemplo, para pruebas.

## Modelos de transcripción

Puedes crear modelos que llamen a la [API de transcripción de ElevenLabs](https://elevenlabs.io/speech-to-text)
mediante el método de fábrica `.transcription()`.

El primer argumento es el ID del modelo, por ejemplo, `scribe_v2`.

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

También puedes pasar opciones adicionales específicas del proveedor mediante el argumento `providerOptions`. Por ejemplo, indicar el idioma de entrada en formato ISO-639-1 (por ejemplo, `en`) puede mejorar a veces el rendimiento de la transcripción si se conoce de antemano.

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

Están disponibles las siguientes opciones del proveedor:

* **languageCode** *string*

  Un código de idioma ISO-639-1 o ISO-639-3 correspondiente al idioma del archivo de audio.
  Puede mejorar a veces el rendimiento de la transcripción si se conoce de antemano.
  De forma predeterminada, es `null`, en cuyo caso el idioma se predice automáticamente.

* **tagAudioEvents** *boolean*

  Indica si se deben etiquetar eventos de audio como (risas), (pasos), etc. en la transcripción.
  De forma predeterminada, es `true`.

* **numSpeakers** *integer*

  El número máximo de hablantes que intervienen en el archivo subido.
  Puede ayudar a predecir quién habla en cada momento.
  El número máximo de hablantes que se puede predecir es 32.
  De forma predeterminada, es `null`, en cuyo caso el número de hablantes se establece en el valor máximo compatible con el modelo.

* **timestampsGranularity** *enum*

  La granularidad de las marcas de tiempo en la transcripción.
  De forma predeterminada, es `'word'`.
  Valores permitidos: `'none'`, `'word'`, `'character'`.

* **diarize** *boolean*

  Indica si se debe anotar qué hablante está hablando en ese momento en el archivo subido.
  De forma predeterminada, es `true`.

* **fileFormat** *enum*

  El formato del audio de entrada.
  De forma predeterminada, es `'other'`.
  Valores permitidos: `'pcm_s16le_16'`, `'other'`.
  Para `'pcm_s16le_16'`, el audio de entrada debe ser PCM de 16 bits con una frecuencia de muestreo de 16 kHz, un solo canal (mono) y orden de bytes little-endian.
  La latencia será menor que al pasar una forma de onda codificada.

## Próximos pasos

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

Transcribe audio en tiempo real con la API de streaming basada en WebSocket.

#### [Referencia de la API](/docs/es/api-reference/speech-to-text)

Referencia y parámetros completos de la API de Voz a Texto.