Hume 프로바이더

Hume 프로바이더

Hume의 텍스트-음성(TTS) API를 AI SDK에서 쓸 수 있게 해주는 프로바이더예요. 감정이 풍부한 음성 합성을 간편하게 사용할 수 있어요.

출처: 문서

본문

Hume 프로바이더는 Hume 텍스트-음성(TTS) API에 대한 지원을 제공해요.

설정 (Setup)

Hume 프로바이더는 @ai-sdk/hume 모듈에서 사용할 수 있어요. 다음과 같이 설치할 수 있어요:

프로바이더 인스턴스 (Provider Instance)

@ai-sdk/hume에서 기본 프로바이더 인스턴스 hume을 불러올 수 있어요:

import { hume } from '@ai-sdk/hume';

커스터마이즈가 필요하다면 @ai-sdk/hume에서 createHume을 불러와 원하는 설정으로 프로바이더 인스턴스를 만들 수 있어요:

import { createHume } from '@ai-sdk/hume';

const hume = createHume({
  // custom settings, e.g.
  fetch: customFetch,
});

Hume 프로바이더 인스턴스를 커스터마이즈할 때 사용할 수 있는 선택적 설정은 다음과 같아요:

  • apiKey string

    X-Hume-Api-Key 헤더로 보내는 API 키예요. 기본값은 HUME_API_KEY 환경 변수예요.

  • headers Record<string,string>

    요청에 포함할 커스텀 헤더예요.

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

    커스텀 fetch 구현이에요. 기본값은 전역 fetch 함수예요. 요청을 가로채는 미들웨어로 쓸 수도 있고, 예를 들어 테스트용으로 커스텀 fetch 구현을 제공할 수도 있어요.

음성 모델 (Speech Models)

.speech() 팩토리 메서드로 Hume 음성 API를 호출하는 모델을 만들 수 있어요.

const model = hume.speech();

voice, speed, instructions, outputFormat 같은 표준 음성 생성 옵션을 전달할 수 있어요:

import { generateSpeech } from 'ai';
import { hume } from '@ai-sdk/hume';

const result = await generateSpeech({
  model: hume.speech(),
  text: 'Hello, world!',
  voice: 'd8ab67c6-953d-4bd8-9370-8fa53a0f1453',
  speed: 1.0,
  instructions: 'Speak in a friendly, conversational tone.',
  outputFormat: 'mp3',
});

지원 파라미터 (Supported Parameters)

  • text string (필수)

    음성으로 변환할 텍스트예요.

  • voice string

    생성된 오디오에 사용할 음성 ID예요. 기본값은 'd8ab67c6-953d-4bd8-9370-8fa53a0f1453'이에요.

  • speed number

    말하기 속도 배수예요.

  • instructions string

    텍스트를 어떻게 말해야 하는지에 대한 설명이나 지시예요.

  • outputFormat string

    생성할 오디오 형식이에요. 지원 값: 'mp3', 'pcm', 'wav'. 기본값은 'mp3'이에요.

`language` 파라미터는 Hume 음성 모델에서 지원되지 않으며 경고와 함께 무시돼요.

프로바이더 옵션 (Provider Options)

providerOptions 인자로 프로바이더별 추가 옵션을 전달할 수 있어요:

import { generateSpeech } from 'ai';
import { hume } from '@ai-sdk/hume';
import { type HumeSpeechModelOptions } from '@ai-sdk/hume';

const result = await generateSpeech({
  model: hume.speech(),
  text: 'Hello, world!',
  providerOptions: {
    hume: {
      context: {
        generationId: 'previous-generation-id',
      },
    } satisfies HumeSpeechModelOptions,
  },
});

다음 프로바이더 옵션을 사용할 수 있어요:

  • context object

    음성 합성 요청의 컨텍스트예요. 다음 중 하나일 수 있어요:

    • { generationId: string } - 컨텍스트로 사용할 이전에 생성된 음성 합성의 ID예요.
    • { utterances: Utterance[] } - 컨텍스트를 위한 발화(utterance) 객체 배열이에요. 각 발화는 다음을 가져요:
      • text string (필수) - 텍스트 내용이에요.
      • description string - 텍스트를 어떻게 말해야 하는지에 대한 지시예요.
      • speed number - 말하기 속도 배수예요.
      • trailingSilence number - 발화 후 추가할 침묵의 길이(초)예요.
      • voice object - 음성 구성이에요. { id: string, provider?: 'HUME_AI' | 'CUSTOM_VOICE' } 또는 { name: string, provider?: 'HUME_AI' | 'CUSTOM_VOICE' } 중 하나예요.

모델 기능 (Model Capabilities)

Model Instructions Speed Output Formats
default mp3, pcm, wav

더 알아보기 (Learn more)

전체 사이트맵