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마다 음성에 대해 서로 다른 메타데이터를 반환합니다.
- OpenAI
- OpenAI Realtime
- Deepgram
- ElevenLabs
- Azure
- Murf
- PlayAI
- Speechify
- Sarvam
voiceId:
string
음성의 고유 식별자(예: 'alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer')
voiceId:
string
음성의 고유 식별자(예: 'alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer')
voiceId:
string
음성의 고유 식별자
language:
string
음성 ID에 포함된 언어 코드(예: 'en')
voiceId:
string
음성의 고유 식별자
name:
string
사람이 읽을 수 있는 음성 이름
category:
string
음성 카테고리(예: 'premade', 'cloned')
voiceId:
string
음성의 고유 식별자
languageCodes:
string[]
음성에서 지원하는 언어 코드 배열(예: ['en-US'])
voiceId:
string
음성의 고유 식별자
language:
string
음성 ID에서 추출한 언어 코드(예: 'en')
region:
string
음성 ID에서 추출한 지역 코드(예: 'US')
voiceId:
string
음성의 고유 식별자
name:
string
음성 이름(voiceId와 동일)
language:
string
음성 ID에서 추출한 언어 코드(예: 'en')
gender:
string
음성의 성별(현재 구현에서는 항상 'neutral')
voiceId:
string
음성의 고유 식별자(manifest.json의 S3 URL)
name:
string
사람이 읽을 수 있는 음성 이름(예: 'Angelo', 'Arsenio')
accent:
string
음성의 억양(예: 'US', 'Irish', 'US African American')
gender:
string
음성의 성별('M' 또는 'F')
age:
string
음성의 연령 카테고리(예: 'Young', 'Middle')
style:
string
음성의 말하기 스타일(예: 'Conversational')
voiceId:
string
음성의 고유 식별자
name:
string
사람이 읽을 수 있는 음성 이름
language:
string
음성의 언어 코드(예: 'en-US')
voiceId:
string
음성의 고유 식별자
name:
string
사람이 읽을 수 있는 음성 이름
language:
string
음성의 언어(예: 'english', 'hindi')
gender:
string
음성의 성별('male' 또는 'female')
메모메모에 대한 직접 링크
- 사용 가능한 음성은 Provider마다 크게 다릅니다.
- 일부 Provider에서는 전체 음성 목록을 가져오기 위해 인증이 필요할 수 있습니다.
- Provider가 이 메서드를 지원하지 않으면 기본 구현은 빈 배열을 반환합니다.
- 성능을 위해 목록을 자주 표시해야 한다면 결과를 캐시하는 것이 좋습니다.
- 모든 Provider에서
voiceId속성은 반드시 제공되지만 추가 메타데이터는 다릅니다.