Vercel AI SDK

Vercel AI SDKのElevenLabs Providerを使用して、オーディオファイルとビデオファイルから音声を文字起こしします。

ハウツーガイド · スピーチtoテキストの クイックスタートを完了し、Vercelプロジェクトを設定済みであることを前提としています。

ElevenLabs Provider

ElevenLabs providerは、ElevenLabs文字起こしAPIをサポートします。

セットアップ

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

npm install @ai-sdk/elevenlabs

Providerインスタンス

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

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

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

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実装です。 デフォルトではグローバルのfetch関数が使用されます。 ミドルウェアとして使用してリクエストをインターセプトしたり、 たとえばテスト用にカスタムfetch実装を提供したりできます。

文字起こしモデル

.transcription()ファクトリメソッドを使用して、ElevenLabs文字起こしAPIを 呼び出すモデルを作成できます。

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

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

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

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である必要があります。 エンコード済み波形を渡す場合よりもレイテンシーが低くなります。

次のステップ