> 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**
>
> **ハウツーガイド** · [スピーチtoテキストの クイックスタート](/docs/ja/eleven-api/guides/cookbooks/speech-to-text)を完了し、Vercelプロジェクトを設定済みであることを前提としています。

# ElevenLabs Provider

[ElevenLabs provider](https://ai-sdk.dev/providers/ai-sdk-providers/elevenlabs)は、[ElevenLabs文字起こしAPI](https://elevenlabs.io/speech-to-text)をサポートします。

## セットアップ

ElevenLabs providerは`@ai-sdk/elevenlabs`モジュールで利用できます。npmでインストールできます。

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

## Providerインスタンス

`@ai-sdk/elevenlabs`からデフォルトのproviderインスタンス`elevenlabs`をインポートできます。

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

カスタマイズした設定が必要な場合は、`@ai-sdk/elevenlabs`から`createElevenLabs`をインポートし、設定に応じたproviderインスタンスを作成できます。

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

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

ElevenLabs providerインスタンスは、以下のオプション設定でカスタマイズできます。

* **apiKey** *string*

  `Authorization`ヘッダーで送信するAPIキーです。
  デフォルトでは`ELEVENLABS_API_KEY`環境変数が使用されます。

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

  リクエストに含めるカスタムヘッダーです。

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

  カスタム[fetch](https://developer.mozilla.org/en-US/docs/Web/API/fetch)実装です。
  デフォルトではグローバルの`fetch`関数が使用されます。
  ミドルウェアとして使用してリクエストをインターセプトしたり、
  たとえばテスト用にカスタムfetch実装を提供したりできます。

## 文字起こしモデル

`.transcription()`ファクトリメソッドを使用して、[ElevenLabs文字起こしAPI](https://elevenlabs.io/speech-to-text)を
呼び出すモデルを作成できます。

最初の引数は、`scribe_v2`などのモデルIDです。

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

`providerOptions`引数を使用して、追加のprovider固有オプションを渡すこともできます。たとえば、入力言語が事前にわかっている場合、ISO-639-1形式（例：`en`）で指定すると、文字起こしのパフォーマンスが向上することがあります。

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

以下のproviderオプションを利用できます。

* **languageCode** *string*

  オーディオファイルの言語に対応するISO-639-1またはISO-639-3言語コードです。
  事前にわかっている場合、文字起こしのパフォーマンスが向上することがあります。
  デフォルトは`null`で、その場合は言語が自動的に推定されます。

* **tagAudioEvents** *boolean*

  文字起こし内で（笑い声）、（足音）などのオーディオイベントにタグを付けるかどうかです。
  デフォルトは`true`です。

* **numSpeakers** *integer*

  アップロードしたファイル内で話している話者の最大数です。
  誰がいつ話しているかの推定に役立ちます。
  推定できる話者の最大数は32です。
  デフォルトは`null`で、その場合は話者数がモデルでサポートされる最大値に設定されます。

* **timestampsGranularity** *enum*

  文字起こし内のタイムスタンプの粒度です。
  デフォルトは`'word'`です。
  使用できる値：`'none'`、`'word'`、`'character'`。

* **diarize** *boolean*

  アップロードしたファイルで現在話している話者に注釈を付けるかどうかです。
  デフォルトは`true`です。

* **fileFormat** *enum*

  入力オーディオの形式です。
  デフォルトは`'other'`です。
  使用できる値：`'pcm_s16le_16'`、`'other'`。
  `'pcm_s16le_16'`の場合、入力オーディオは16kHzのサンプルレート、シングルチャンネル（モノラル）、リトルエンディアンのバイトオーダーによる16ビットPCMである必要があります。
  エンコード済み波形を渡す場合よりもレイテンシーが低くなります。

## 次のステップ

#### [サーバーサイドストリーミング](/docs/ja/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming)

WebSocketベースのストリーミングAPIを使用して、オーディオをリアルタイムで文字起こしします。

#### [APIリファレンス](/docs/ja/api-reference/speech-to-text)

スピーチtoテキストAPIの完全なリファレンスとパラメータ。