> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # voice.getSpeakers() 그만큼`getSpeakers()`메서드는 음성 제공자로부터 사용 가능한 음성 옵션(스피커) 목록을 검색합니다. 애플리케이션은 사용자에게 음성 선택 사항을 제공하거나 다양한 상황에 가장 적합한 음성을 프로그래밍 방식으로 선택할 수 있습니다. ## 사용예 ```typescript 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\>** (`Promise`): 음성 옵션 배열로 완료되는 Promise입니다. 각 옵션에는 최소한 voiceId 속성이 포함되며 Provider별 추가 메타데이터가 포함될 수 있습니다. ## 제공자별 메타데이터 음성 Provider마다 음성에 대해 서로 다른 메타데이터를 반환합니다. **OpenAI**: **voiceId** (`string`): 음성의 고유 식별자(예: 'alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer') **OpenAI Realtime**: **voiceId** (`string`): 음성의 고유 식별자(예: 'alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer') **Deepgram**: **voiceId** (`string`): 음성의 고유 식별자 **language** (`string`): 음성 ID에 포함된 언어 코드(예: 'en') **ElevenLabs**: **voiceId** (`string`): 음성의 고유 식별자 **name** (`string`): 사람이 읽을 수 있는 음성 이름 **category** (`string`): 음성 카테고리(예: 'premade', 'cloned') **Google**: **voiceId** (`string`): 음성의 고유 식별자 **languageCodes** (`string[]`): 음성에서 지원하는 언어 코드 배열(예: \['en-US']) **Azure**: **voiceId** (`string`): 음성의 고유 식별자 **language** (`string`): 음성 ID에서 추출한 언어 코드(예: 'en') **region** (`string`): 음성 ID에서 추출한 지역 코드(예: 'US') **Murf**: **voiceId** (`string`): 음성의 고유 식별자 **name** (`string`): 음성 이름(voiceId와 동일) **language** (`string`): 음성 ID에서 추출한 언어 코드(예: 'en') **gender** (`string`): 음성의 성별(현재 구현에서는 항상 'neutral') **PlayAI**: **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') **Speechify**: **voiceId** (`string`): 음성의 고유 식별자 **name** (`string`): 사람이 읽을 수 있는 음성 이름 **language** (`string`): 음성의 언어 코드(예: 'en-US') **Sarvam**: **voiceId** (`string`): 음성의 고유 식별자 **name** (`string`): 사람이 읽을 수 있는 음성 이름 **language** (`string`): 음성의 언어(예: 'english', 'hindi') **gender** (`string`): 음성의 성별('male' 또는 'female') ## 메모 - 사용 가능한 음성은 Provider마다 크게 다릅니다. - 일부 Provider에서는 전체 음성 목록을 가져오기 위해 인증이 필요할 수 있습니다. - Provider가 이 메서드를 지원하지 않으면 기본 구현은 빈 배열을 반환합니다. - 성능을 위해 목록을 자주 표시해야 한다면 결과를 캐시하는 것이 좋습니다. - 모든 Provider에서 `voiceId` 속성은 반드시 제공되지만 추가 메타데이터는 다릅니다.