본문으로 건너뛰기

voice.getSpeakers()

그만큼getSpeakers()메서드는 음성 제공자로부터 사용 가능한 음성 옵션(스피커) 목록을 검색합니다. 애플리케이션은 사용자에게 음성 선택 사항을 제공하거나 다양한 상황에 가장 적합한 음성을 프로그래밍 방식으로 선택할 수 있습니다.

사용예
사용예에 대한 직접 링크

import { OpenAIVoice } from '@mastra/voice-openai'
import { ElevenLabsVoice } from '@mastra/voice-elevenlabs'

// Initialize voice providers
const openaiVoice = new OpenAIVoice()
const elevenLabsVoice = new ElevenLabsVoice({
apiKey: process.env.ELEVENLABS_API_KEY,
})

// Get available speakers from OpenAI
const openaiSpeakers = await openaiVoice.getSpeakers()
console.log('OpenAI voices:', openaiSpeakers)
// Example output: [{ voiceId: "alloy" }, { voiceId: "echo" }, { voiceId: "fable" }, ...]

// Get available speakers from ElevenLabs
const elevenLabsSpeakers = await elevenLabsVoice.getSpeakers()
console.log('ElevenLabs voices:', elevenLabsSpeakers)
// Example output: [{ voiceId: "21m00Tcm4TlvDq8ikWAM", name: "Rachel" }, ...]

// Use a specific voice for speech
const text = 'Hello, this is a test of different voices.'
await openaiVoice.speak(text, { speaker: openaiSpeakers[2].voiceId })
await elevenLabsVoice.speak(text, { speaker: elevenLabsSpeakers[0].voiceId })

매개변수
매개변수에 대한 직접 링크

이 메서드는 매개변수를 허용하지 않습니다.

반환 값
반환 값에 대한 직접 링크

Promise<Array<{ voiceId: string } & TSpeakerMetadata>>:

Promise
음성 옵션 배열로 완료되는 Promise입니다. 각 옵션에는 최소한 voiceId 속성이 포함되며 Provider별 추가 메타데이터가 포함될 수 있습니다.

제공자별 메타데이터
제공자별 메타데이터에 대한 직접 링크

음성 Provider마다 음성에 대해 서로 다른 메타데이터를 반환합니다.

voiceId:

string
음성의 고유 식별자(예: 'alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer')

메모
메모에 대한 직접 링크

  • 사용 가능한 음성은 Provider마다 크게 다릅니다.
  • 일부 Provider에서는 전체 음성 목록을 가져오기 위해 인증이 필요할 수 있습니다.
  • Provider가 이 메서드를 지원하지 않으면 기본 구현은 빈 배열을 반환합니다.
  • 성능을 위해 목록을 자주 표시해야 한다면 결과를 캐시하는 것이 좋습니다.
  • 모든 Provider에서 voiceId 속성은 반드시 제공되지만 추가 메타데이터는 다릅니다.