Deepgram: Flux TTS
Deepgram Flux TTS는 영어 텍스트를 대화 차례 사이에도 일관된 어조를 유지하는 대화체 음성으로 변환합니다. 스트리밍 모드는 발화 중 끼어들기를 처리하며, 배치 합성은 동일한 목소리 목록으로 재사용 가능한 오디오를 생성합니다.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
Flux TTS는 실시간 대화와 고정된 음성 콘텐츠를 위한 Deepgram의 텍스트 음성 변환 계열입니다. 핵심 특징은 대화의 연속성입니다. 스트리밍 모델이 대화 차례 사이에 운율을 이어 가므로 상호작용이 계속되어도 일관된 어조를 유지할 수 있습니다. 작성된 텍스트를 받아 음성 오디오를 반환합니다. Flux TTS와 별도의 Flux 음성 인식 모델은 음성 대화의 서로 다른 부분을 담당합니다.
영어 목소리 선택
문서에 명시된 Flux 목소리 목록은 영어를 사용하며 미국, 영국, 아일랜드, 호주, 인도, 싱가포르, 필리핀 억양을 제공합니다. 목소리 설명을 참고하면 고객 서비스, 전화 메뉴, 내레이션, 편안한 대화에 맞는 화자를 선택할 수 있습니다. 예를 들어 제조사는 Haley를 차분한 미국 목소리, Jack을 전문적인 영국 목소리로 소개합니다. 청중과 읽을 문구의 성격에 맞춰 목소리를 선택하고 작품이나 대화 내내 일관되게 유지하세요. 다른 언어의 음성을 사용하려면 별도로 문서화된 모델을 선택해야 합니다.
실시간 대화 차례와 끼어들기
제조사의 스트리밍 워크플로에서는 애플리케이션이 응답을 작성하는 동안 텍스트가 들어오고 오디오가 점진적으로 반환될 수 있습니다. 각 대화 차례에는 자체 시작·완료 이벤트가 있으며, 차례를 종료하면 남은 합성이 완료됩니다. 차례 간 맥락은 해당 세션 안에서 운율을 유지합니다. 선택지를 설명한 다음 추가 질문에 답할 때도 목소리의 성격을 바꾸지 않는 음성 어시스턴트에 유용합니다.
끼어들기가 발생하면 진행 중인 대화 차례가 취소되고 이미 말한 부분과 남은 텍스트가 반환됩니다. 이 구분은 애플리케이션이 청취자가 실제로 들은 내용부터 이어 가는 데 도움이 됩니다. 실용적인 상호작용에서는 중요한 안내를 먼저 말하고 설명을 뒤에 붙인 짧은 답변을 준비하세요. 청취자가 첫 안내 뒤에 끼어들면 다음 응답은 설명 전체가 전달되었다고 가정하지 않고 새 질문을 다룰 수 있습니다.
고정 오디오와 출력 형식
배치 합성은 완성된 텍스트 블록을 받아 한 번의 응답으로 오디오를 반환합니다. 스트리밍과 같은 목소리 목록을 사용하며, 미리 녹음할 전화 안내, 알림, 내레이션에 적합합니다. 배치 요청은 서로 독립적이며 스트리밍의 대화 차례 상태와 끼어들기 이벤트는 고정 클립에 적용되지 않습니다.
스트리밍 출력은 파일 컨테이너가 없는 원시 오디오인 16비트 PCM, mu-law 또는 A-law입니다. 제조사가 명시한 PCM 샘플 레이트는 8, 16, 24, 32, 44.1, 48 kHz이며 mu-law와 A-law는 8 또는 16 kHz를 사용합니다. 배치 출력은 MP3, Opus, FLAC, AAC도 지원합니다. 원시 샘플 스트림을 일반 오디오 파일로 취급하지 말고, 사용할 플레이어나 전화 경로가 해석할 수 있는 인코딩과 컨테이너를 선택하세요.
표현 제어와 범위
제조사는 말하기 속도를 0.5~1.5 범위에서 0.05 단위로 설정할 수 있다고 설명합니다. 스트리밍 속도 변경은 세그먼트 경계에서 적용됩니다. 별도의 베타 표현력 제어는 차분한 표현부터 생동감 있는 표현까지 조절합니다. 일반 SSML과 인식되는 경쟁사 태그는 표현 지시로 사용되지 않고 제거됩니다. Flux 고유 제어에는 별도의 의미가 있습니다.
텍스트 안의 일시 정지는 배치 합성에 속하며, 500~3,000 ms를 100 ms 단위로 지정할 수 있고 요청당 최대 8개의 표시를 사용할 수 있습니다. 인접한 정지 사이에는 텍스트가 있어야 하며, 정지가 있으면 속도 상한은 1.15입니다. 발음 재정의는 IPA를 사용하며 Early Access 단계입니다. 제조사는 요청한 발음이 생성마다 달라질 수 있다고 설명합니다. 발음 제어는 기본값이 아닌 속도 또는 일시 정지 제어와 함께 사용할 수 없습니다. 전문적인 이름이 포함된 대본에서는 선택한 목소리로 해당 용어를 들어 보고 실제로 읽을 문구를 명확히 하세요.
Deepgram 문서에 따르면 스트리밍 세션은 최대 1시간 지속되며, 지원되는 연결 유지 방식으로 활성 상태를 유지하지 않는 한 수신 메시지가 없는 상태가 60초 이어지면 닫힙니다. 이러한 세션 한도는 실시간 합성 워크플로에 관한 것입니다. 유용한 결과물은 의도에 맞게 고른 목소리, 듣기 좋은 텍스트, 사용 환경에 적합한 오디오이며, 실시간 애플리케이션은 대화 차례가 중단될 때 실제로 말한 내용을 추적해야 합니다.
Ailoot Ultra · 음성 합성 POST /v1/audio/speech deepgram/flux-tts
deepgram/flux-tts시작하기
Deepgram Flux TTS는 영어 텍스트를 대화 차례 사이에도 일관된 어조를 유지하는 대화체 음성으로 변환합니다. 스트리밍 모드는 발화 중 끼어들기를 처리하며, 배치 합성은 동일한 목소리 목록으로 재사용 가능한 오디오를 생성합니다.
- 허용 입력
- 텍스트
- 결과
- 오디오
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · 음성 합성 POST /v1/audio/speech
- 입력
text- 출력
audio- 출력 형식
- mp3
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 deepgram/flux-tts | 기본값— |
필드input | 유형string | 요건필수 | 값과 한도 최소 길이: 1 단위: Unicode 문자 | 기본값— |
필드voice | 유형string | 요건필수 | 값과 한도 flux-alexis-en, flux-bree-en, flux-brittany-en, flux-brooke-en, flux-bruce-en, flux-cliff-en, flux-cole-en, flux-colin-en, flux-conor-en, flux-donovan-en, flux-drew-en, flux-elise-en, flux-gemma-en, flux-haley-en, flux-hannah-en, flux-heather-en, flux-jack-en, flux-kai-en, flux-kelsey-en, flux-kit-en, flux-maeve-en, flux-marcelo-en, flux-marcus-en, flux-meena-en, flux-meghan-en, flux-miles-en, flux-naveen-en, flux-paige-en, flux-priya-en, flux-rufus-en, flux-sean-en, flux-sharon-en, flux-sienna-en, flux-tanner-en, flux-wade-en, flux-wes-en | 기본값— |
필드response_format | 유형string | 요건필수 | 값과 한도 mp3 | 기본값— |
입력 자료 조합
text_to_speech · 필수: input
메서드 매개변수와 수명 주기
| 매개변수 | 명세 |
|---|---|
매개변수content_type | 명세application/json |
매개변수required | 명세model, input, voice, response_format |
매개변수voice_ids | 명세flux-alexis-en, flux-bree-en, flux-brittany-en, flux-brooke-en, flux-bruce-en, flux-cliff-en, flux-cole-en, flux-colin-en, flux-conor-en, flux-donovan-en, flux-drew-en, flux-elise-en, flux-gemma-en, flux-haley-en, flux-hannah-en, flux-heather-en, flux-jack-en, flux-kai-en, flux-kelsey-en, flux-kit-en, flux-maeve-en, flux-marcelo-en, flux-marcus-en, flux-meena-en, flux-meghan-en, flux-miles-en, flux-naveen-en, flux-paige-en, flux-priya-en, flux-rufus-en, flux-sean-en, flux-sharon-en, flux-sienna-en, flux-tanner-en, flux-wade-en, flux-wes-en |
매개변수response_format | 명세mp3 |
매개변수max_input_characters | 명세null |
매개변수other_options | 명세false |
매개변수input | 명세정확한 UTF-8 텍스트; 정규화 없이 계산한 유니코드 문자 수 |
매개변수material_types | 명세text |
수명 주기: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · 실제로 반환된 task_id 또는 미디어 라이브러리 기록
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
이 모델 프로필에 있는 정확한 음성을 선택하세요.
입력 문자 수와 오디오 초는 서로 다른 측정 단위입니다.
요금
요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.
- 빠른 모드
- 미지정 빠른 모드를 선택한 경우
- Flex 모드
- 미지정 flex 모드를 선택한 경우
- 최대 추론 수준
- 미지정 최대 추론 수준에 default 조정값을 적용하는 경우
Ailoot 요금
설정별 가격
각 요금을 표시된 조건과 대조하세요. 서로 대체되는 설정 묶음마다 하나의 요금만 적용하세요.
| 설정 | 요금표 | 과금 단위 | 요금 |
|---|---|---|---|
| 설정기본 토큰 요금 | 요금표기본 요금 | 과금 단위— | 요금 입력 · 입력 토큰 — / 1K 토큰 출력 · 출력 토큰 — / 1K 토큰 입력 · 캐시 읽기 — / 1K 토큰 입력 · 캐시 쓰기 — / 1K 토큰 입력 · 캐시 쓰기, 1시간 — / 1K 토큰 |
| 설정입력 문자 | 요금표— | 과금 단위입력 문자당 | 요금 입력 · 입력 문자 $0.00009 입력 문자당 |
참조 요금 상세 정보
모델 수준의 참조 요금표는 메서드 선택, 견적 또는 요금을 변경하지 않습니다. 실제 과금에는 선택한 Ailoot 메서드 요금이 적용됩니다.
Deepgram: Flux TTS
설정별 가격
| 설정 | 과금 조건 | 요금 |
|---|---|---|
| 설정Deepgram: Flux TTS · 기본 설정 | 과금 조건기본 설정 | 요금 입력 · 입력 문자 수 US$0.00009 입력 문자당 |
Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →
요청 예제
Ailoot Ultra · 음성 합성
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}"
export AILOOT_VOICE_ID
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "deepgram/flux-tts", "input": "Good afternoon! This is a short voice take."}')
voice=os.environ["AILOOT_VOICE_ID"]
allowed=json.loads('["flux-alexis-en", "flux-bree-en", "flux-brittany-en", "flux-brooke-en", "flux-bruce-en", "flux-cliff-en", "flux-cole-en", "flux-colin-en", "flux-conor-en", "flux-donovan-en", "flux-drew-en", "flux-elise-en", "flux-gemma-en", "flux-haley-en", "flux-hannah-en", "flux-heather-en", "flux-jack-en", "flux-kai-en", "flux-kelsey-en", "flux-kit-en", "flux-maeve-en", "flux-marcelo-en", "flux-marcus-en", "flux-meena-en", "flux-meghan-en", "flux-miles-en", "flux-naveen-en", "flux-paige-en", "flux-priya-en", "flux-rufus-en", "flux-sean-en", "flux-sharon-en", "flux-sienna-en", "flux-tanner-en", "flux-wade-en", "flux-wes-en"]')
if voice not in allowed: raise SystemExit("Choose an accepted voice ID from this exact model profile")
p["voice"]=voice
p["response_format"]="mp3"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o speech.mp3
결과 수신 및 저장
Ailoot Ultra · 음성 합성
mp3
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
기타 콘텐츠 조회
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-assets.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_MEDIA_TASK_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_MEDIA_TASK_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/tasks/$resource_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-task.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-task.json").read_text())))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_ASSET_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_ASSET_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/assets/$resource_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-asset.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-asset.json").read_text())))
PY_RESULT
완료된 결과 모두 보관
반환된 완전한 응답, 파일, 콘텐츠 부분을 모두 보관하세요.
바이너리 결과 전체와 헤더를 보관하세요. JSON 또는 여러 출력이 반환되면 모든 데이터 항목을 보관하고 실제로 반환된 서명된 자산 URL을 각각 조회하세요.
원래 응답을 확인해야 할 경우
다시 제출하지 말고 정산 대조를 위해 최초 operation_id/X-Client-Request-ID를 보관하세요. 전용 오디오 폴링 라우트는 없습니다.
응답 필드
| 필드 | 유형 |
|---|---|
필드binary audio | 유형bytes |
필드response headers | 유형headers |
오류와 다음 단계
| 응답 | 조건 | 다음 단계 |
|---|---|---|
응답400 · invalid_request_error | 조건필수 필드, 자료 표현 방식 또는 파라미터 값이 올바르지 않음 | 다음 단계새 생성 요청 전에 표시된 필드를 수정하세요. |
응답server_error | 조건반환된 응답에 작업 또는 결과 확인이 필요하다고 표시되어 있습니다 | 다음 단계최초로 반환된 작업/태스크 ID, 요청 헤더와 응답을 보관하고, 지원되는 조회 방식으로 해당 최초 작업을 계속 조회하세요. 생성 요청을 다시 제출하지 마세요. |
별칭
모델 별칭
Ailoot Ultra deepgram/flux-tts
메서드 경로 별칭
위에 표시된 메서드 경로를 사용하세요.
관련 호출용 ID
FAQ · Deepgram: Flux TTS
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/audio/speech·deepgram/flux-tts:text→audio- 요청은 어떤 필드를 사용하나요?
POST /v1/audio/speech·deepgram/flux-tts:model,input,voice,response_format