Help us improve
Share bugs, ideas, or general feedback.
From media-fx
Lists available ElevenLabs voices with optional filters for category, gender, accent, age, use-case. Outputs as table (default) or JSON, optionally to file.
npx claudepluginhub dandacompany/dantelabs-agentic-school --plugin media-fxHow this command is triggered — by the user, by Claude, or both
Slash command
/media-fx:list-voicesFiles this command reads when invoked
The summary Claude sees in its command listing — used to decide when to auto-load this command
# List Voices Command ElevenLabs에서 사용 가능한 모든 음성을 조회하고 필터링하는 명령어입니다. ## 사용 방법 ### 기본 사용 (전체 목록) ### 포맷 지정 ### 필터링 ### JSON 파일로 저장 ## 실행 단계 1. **인증 확인**: `~/.claude/auth/elevenlabs.env`에서 API 키 로드 2. **API 호출**: ElevenLabs Voices API로 GET 요청 3. **필터 적용**: 지정된 필터 조건에 맞는 음성만 선택 4. **포맷팅**: 테이블 또는 JSON 형식으로 포맷 5. **출력**: 콘솔 출력 및 파일 저장 (선택사항) ## API 요청 예시 ## 응답 예시 ### 테이블 형식 ### JSON 형식 ## 음성 카테고리 ### Premade (사전 제작) ElevenLabs에서 제공하는 프로페셔널 음성들 **인기 음성:** - **Rachel**: 차분한 여성 음성, 내레이션 - **Adam**: 깊은 남성 음성, 내레이션 - **Domi**: 활기찬 여성 음성, 게임 - **Bella**: 부드러운 여성 음성, 오디오북 -...
/elevenlabs-agentsBuilds a conversational AI voice agent with ElevenLabs. Provide optional [agent-name] or describe the agent's purpose when prompted.
/speakEnables, disables, or configures voice feedback: set voice (e.g., azelma), toggle enabled state, add custom prompts. Manages ~/.claude/voice.local.md YAML config.
Share bugs, ideas, or general feedback.
ElevenLabs에서 사용 가능한 모든 음성을 조회하고 필터링하는 명령어입니다.
/list-voices
# 테이블 형식 (기본값)
/list-voices --format table
# JSON 형식
/list-voices --format json
# 여성 음성만
/list-voices --gender female
# 미국 억양, 내레이션용
/list-voices --accent american --use-case narration
# 젊은 남성 음성
/list-voices --age young --gender male
# 프로페셔널 클론 음성
/list-voices --category professional
/list-voices --format json --output voices.json
~/.claude/auth/elevenlabs.env에서 API 키 로드# 전체 음성 목록
curl -X GET "https://api.elevenlabs.io/v1/voices" \
-H "xi-api-key: $ELEVENLABS_API_KEY"
# 특정 음성 ID로 상세 정보 조회
curl -X GET "https://api.elevenlabs.io/v1/voices/21m00Tcm4TlvDq8ikWAM" \
-H "xi-api-key: $ELEVENLABS_API_KEY"
┌────────────────────────┬──────────┬───────────┬──────────┬─────────┬───────────────┐
│ Name │ Voice ID │ Category │ Gender │ Accent │ Use Case │
├────────────────────────┼──────────┼───────────┼──────────┼─────────┼───────────────┤
│ Rachel │ 21m00... │ premade │ female │ american│ narration │
│ Adam │ pNInz... │ premade │ male │ american│ narration │
│ Domi │ AZnzl... │ premade │ female │ american│ video_games │
│ Bella │ EXAVI... │ premade │ female │ american│ audiobook │
│ Antoni │ ErXwo... │ premade │ male │ american│ narration │
└────────────────────────┴──────────┴───────────┴──────────┴─────────┴───────────────┘
{
"voices": [
{
"voice_id": "21m00Tcm4TlvDq8ikWAM",
"name": "Rachel",
"category": "premade",
"labels": {
"accent": "american",
"description": "calm",
"age": "young",
"gender": "female",
"use case": "narration"
},
"samples": [
{
"sample_id": "sample1",
"file_name": "rachel_sample1.mp3",
"mime_type": "audio/mpeg",
"size_bytes": 123456,
"hash": "abc123..."
}
],
"preview_url": "https://storage.googleapis.com/...",
"settings": {
"stability": 0.5,
"similarity_boost": 0.75,
"style": 0.0,
"use_speaker_boost": true
}
}
],
"has_more": false,
"next_page_token": null
}
ElevenLabs에서 제공하는 프로페셔널 음성들
인기 음성:
사용자가 Instant Voice Cloning으로 생성한 음성들
ElevenLabs 팀이 직접 처리한 고품질 클론 음성들
male: 남성female: 여성american: 미국 영어british: 영국 영어australian: 호주 영어indian: 인도 영어young: 젊은middle_aged: 중년old: 노년narration: 내레이션video_games: 비디오 게임audiobook: 오디오북conversational: 대화형characters: 캐릭터news: 뉴스meditation: 명상animation: 애니메이션calm: 차분한raspy: 거친soft: 부드러운deep: 깊은warm: 따뜻한strong: 강한특정 음성의 샘플을 다운로드하려면:
# 음성 정보 조회 (샘플 ID 확인)
curl -X GET "https://api.elevenlabs.io/v1/voices/21m00Tcm4TlvDq8ikWAM" \
-H "xi-api-key: $ELEVENLABS_API_KEY"
# 샘플 다운로드
curl -X GET "https://api.elevenlabs.io/v1/voices/21m00Tcm4TlvDq8ikWAM/samples/sample_id/audio" \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
--output voice_sample.mp3
curl -X POST "https://api.elevenlabs.io/v1/voices/add" \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
-F "name=My Voice" \
-F "description=커스텀 음성" \
-F "files=@sample1.mp3" \
-F "files=@sample2.mp3"
요구 사항:
고품질 음성 클론을 원하면 PVC 서비스 신청:
curl -X POST "https://api.elevenlabs.io/v1/voices/{voice_id}/edit" \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "새 이름",
"description": "새 설명"
}'
curl -X DELETE "https://api.elevenlabs.io/v1/voices/{voice_id}" \
-H "xi-api-key: $ELEVENLABS_API_KEY"
많은 수의 음성이 있을 경우 페이지네이션 사용:
# 첫 페이지
curl -X GET "https://api.elevenlabs.io/v1/voices?page_size=30" \
-H "xi-api-key: $ELEVENLABS_API_KEY"
# 다음 페이지
curl -X GET "https://api.elevenlabs.io/v1/voices?page_size=30&page_token=next_token_here" \
-H "xi-api-key: $ELEVENLABS_API_KEY"
import requests
import json
api_key = "your_api_key"
url = "https://api.elevenlabs.io/v1/voices"
headers = {"xi-api-key": api_key}
response = requests.get(url, headers=headers)
voices = response.json()
# 테이블 형식 출력
print(f"{'Name':<20} {'Voice ID':<25} {'Category':<12} {'Gender':<8}")
print("-" * 70)
for voice in voices["voices"]:
name = voice["name"]
voice_id = voice["voice_id"]
category = voice.get("category", "N/A")
gender = voice.get("labels", {}).get("gender", "N/A")
print(f"{name:<20} {voice_id:<25} {category:<12} {gender:<8}")
const apiKey = "your_api_key";
const url = "https://api.elevenlabs.io/v1/voices";
fetch(url, {
headers: { "xi-api-key": apiKey }
})
.then(res => res.json())
.then(data => {
console.log("Available Voices:");
data.voices.forEach(voice => {
console.log(`- ${voice.name} (${voice.voice_id})`);
console.log(` Category: ${voice.category}`);
console.log(` Labels:`, voice.labels);
});
});