음성·음악
| 하는 일 | 엔드포인트 | 응답 |
|---|---|---|
| 글을 목소리로 (ElevenLabs) | POST /v1/speech | 바로 |
| 목소리 찾기 | GET /v1/voices | 바로 |
| 오디오를 글로 (Whisper) | POST /v1/transcriptions | 작업 |
| 가사로 노래 만들기 (MiniMax) | POST /v1/music | 작업 |
글을 목소리로
POST /v1/speech
요청
| 필드 | 형식 | 기본값 | 설명 |
|---|---|---|---|
text | 문자열 | 필수 | 읽을 글 |
model | 문자열 | devdive-tts-eleven | 음성 모델 ID |
voice_id | 문자열 | 기본 목소리 | 목소리 ID. GET /v1/voices에서 찾아요 |
voice_model | 문자열 | eleven_v4 | eleven_v4 또는 eleven_v4_turbo(더 빠름) |
voice_settings | 객체 | 없음 | 목소리 세부 조정(아래 표) |
language_code | 문자열 | 자동 | 읽을 언어(예: ko, en) |
output_format | 문자열 | 모델 기본값 | ElevenLabs 출력 형식 이름(예: mp3_44100_128) |
previous_text, next_text | 문자열 | 없음 | 앞뒤 문장. 읽지는 않고 억양만 이어지게 해요. 긴 원고를 나눠 읽을 때 써요 |
seed | 0~4294967295 | 없음 | 같은 값과 같은 설정이면 최대한 같은 음성을 만들어요 |
apply_text_normalization | 문자열 | auto | auto, on, off. 숫자·날짜를 말로 풀어 읽을지 |
voice_settings에 넣을 수 있는 값이에요. 모두 선택이에요.
| 필드 | 형식 | 설명 |
|---|---|---|
stability | 숫자 | 높을수록 일정하고 차분하게, 낮을수록 감정 폭이 크게 |
similarity_boost | 숫자 | 높을수록 원래 목소리에 가깝게 |
style | 숫자 | 말투의 개성을 얼마나 살릴지 |
speed | 숫자 | 읽는 속도 |
use_speaker_boost | 불리언 | 원래 목소리와 더 닮게 보정할지 |
응답
{
"id": "9f2c7a1e-3b4d-4e5f-8a6b-7c8d9e0f1a2b",
"object": "speech",
"model": "devdive-tts-eleven",
"audio": { "url": "https://api.devdive.ai/media/…/speech.mp3" },
"credits_used": 1.8
}
예시
curl https://api.devdive.ai/v1/speech \
-H "Authorization: Bearer $DEVDIVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "안녕하세요. 오늘의 주요 소식을 전해 드릴게요.",
"language_code": "ko",
"voice_settings": { "stability": 0.6, "speed": 1.0 }
}'
목소리 찾기
GET /v1/voices
voice_id로 쓸 목소리를 찾아요. ElevenLabs 공개 목소리 라이브러리나 내 계정의 목소리를 볼 수 있어요.
| 쿼리 | 기본값 | 설명 |
|---|---|---|
source | library | library(공개 라이브러리) 또는 account(내 계정) |
search | 없음 | 이름·설명으로 찾기 |
language | 없음 | 언어로 거르기(예: ko). library에서만 |
gender | 없음 | male, female, neutral. library에서만 |
page | 0 | 쪽 번호(0부터) |
page_size | 10 | 한 쪽의 개수(1~100) |
curl "https://api.devdive.ai/v1/voices?language=ko&page_size=1" \
-H "Authorization: Bearer $DEVDIVE_API_KEY"
{
"object": "list",
"data": [
{
"voice_id": "QWulBjupT2Vv5EHzQE0y",
"name": "Seonghyeon - Deep Korean Narrator",
"gender": "male",
"age": "middle_aged",
"accent": "seoul",
"language": "ko",
"description": "Mature, steady Korean male voice with a clear standard Seoul accent. …",
"preview_url": "https://storage.googleapis.com/…/preview.mp3"
}
],
"has_more": true,
"total": 7290
}
preview_url로 목소리를 미리 들어 볼 수 있어요.
오디오를 글로
POST /v1/transcriptions
오디오 파일의 말을 글로 옮겨요. 작업이라 결과는 GET /v1/jobs/{id}로 받아요.
| 필드 | 형식 | 기본값 | 설명 |
|---|---|---|---|
audio_url | 링크 | 필수 | 오디오 파일의 https 링크. 내 파일은 파일에서 먼저 올려요 |
language | 문자열 | ko | 말하는 언어(예: ko, en, ja) |
curl https://api.devdive.ai/v1/transcriptions \
-H "Authorization: Bearer $DEVDIVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"audio_url": "https://example.com/meeting.m4a", "language": "ko"}'
끝나면 result.text에 전체 글이, result.segments에 구간별 결과가 와요.
{
"object": "job",
"type": "transcription",
"status": "succeeded",
"result": { "text": "오늘 회의에서는 다음 분기 일정을 정했습니다. …", "segments": [] }
}
노래 만들기
POST /v1/music
가사로 노래를 만들어요. 작업이라 결과는 GET /v1/jobs/{id}로 받아요.
| 필드 | 형식 | 기본값 | 설명 |
|---|---|---|---|
lyrics | 문자열(1~3500자) | 필수 | 가사 |
prompt | 문자열(최대 2000자) | 없음 | 장르, 분위기, 악기, 목소리 |
version | 문자열 | music-2.5 | MiniMax 엔진 버전. music-2.5, music-3.0, music-2.0 |
model | 문자열 | devdive-music | 음악 모델은 하나라 보내지 않아도 돼요 |
audio_setting | 객체 | 없음 | 출력 오디오 설정(아래 표) |
audio_setting 필드 | 고를 수 있는 값 |
|---|---|
sample_rate | 16000, 24000, 32000, 44100 |
bitrate | 32000, 64000, 128000, 256000 |
format | mp3, wav, pcm |
curl https://api.devdive.ai/v1/music \
-H "Authorization: Bearer $DEVDIVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"lyrics": "창밖에 비가 내리면\n너와 걷던 길이 생각나",
"prompt": "잔잔한 어쿠스틱 발라드, 피아노와 기타, 따뜻한 여성 보컬",
"version": "music-2.5",
"audio_setting": { "format": "mp3", "sample_rate": 44100, "bitrate": 256000 }
}'
끝나면 result.audio.url에 노래 파일 링크가 와요. 링크는 3일 동안 열려요.