Vercel AI SDK

Vercel AI SDK의 ElevenLabs Provider를 사용하여 오디오 및 비디오 파일의 음성을 텍스트로 변환하세요.

사용 방법 가이드 · 음성 텍스트 변환 빠른 시작을 완료했으며 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이어야 합니다. 인코딩된 파형을 전달하는 경우보다 지연 시간이 짧습니다.

다음 단계