텍스트-오디오 LLM: 할 수 있는 것과 할 수 없는 것
텍스트-오디오 LLM은 일반적으로 두 가지 도구가 함께 작동합니다. 프롬프트를 작성하는 언어 모델과 이를 소리로 변환하는 오디오 모델입니다. 이 API는 첫 번째 단계인 프롬프트 작성을 담당합니다.

업데이트
주요 포인트
이 서비스는 텍스트 전용이며 오디오, 이미지 또는 비디오를 생성하지 않습니다.
오디오 워크플로우에서의 역할은 프롬프트, 가사, 장면 스크립트 및 메타데이터를 작성하는 것입니다.
오디오 도구에 연결하려면 짧은 스크립트와 JSON 출력이 필요합니다.
입력 토큰 약 600개, 출력 토큰 300개를 사용한 프롬프트 1,000개의 비용은 약 $0.24입니다.
짧게 답변하자면, LLM이 소리가 아닌 지시를 작성합니다.
사람들이 텍스트-오디오 LLM을 검색할 때, 문장을 읽고 소리 파일을 반환하는 단일 모델을 상상하는 경우가 많습니다. 대형 언어 모델은 그렇게 작동하지 않습니다. 텍스트를 읽고 씁니다. 소리는 텍스트 설명을 입력으로 받는 오디오 전용 별도 모델에서 생성됩니다.
이러한 분리는 설명의 품질이 매우 중요하기 때문에 유용합니다. "차분한 음악"과 같은 모호한 요청은 오디오 모델이 작업할 내용이 거의 없습니다. 장르, 템포, 악기, 분위기, 구조 및 길이를 명시한 구체적인 요청은 훨씬 많은 정보를 제공합니다. 이러한 구체적인 설명을 일관된 형식으로 대량으로 작성하는 것은 언어 모델에게 적합한 작업입니다.
이 사이트는 정확히 그 절반을 제공합니다. OpenAI 호환 텍스트 API입니다. 오디오 생성, 임베딩, 파인튜닝 기능이 없습니다. 소리 자체가 필요하다면, 소리를 생성하는 도구와 함께 사용하고 이 엔드포인트를 그 앞에 배치하여 작성 단계로 사용하십시오. 오디오 벤더 중 어느 곳과도 제휴 관계가 없으므로, 각 도구의 입력 규칙에 대해서는 해당 도구의 문서를 확인하십시오.
오디오 파이프라인에서 텍스트 모델이 도움이 되는 곳
출력이 단어인 작업에 적합합니다:
- 프롬프트 작성. 거친 아이디어를 장르, 템포, 편성, 분위기를 포함한 상세한 설명으로 변환하세요.
- 가사 및 대본. 노래의 절과 후렴구, 또는 팟캐스트 인트로나 오디오북 장을 위한 내레이션 대본을 작성하세요.
- 변형 생성. 하나의 컨셉에서 10개의 대체 프롬프트를 생성하여 여러 방향을 테스트하세요.
- 메타데이터. 오디오가 생성된 후 제목, 설명, 태그 및 트랙 노트를 작성하세요.
- 수정. 결과가 기대에 미치지 못했을 때, 어떤 부분이 잘못되었는지에 대한 메모를 사용하여 프롬프트를 다시 작성하세요.
이 모델은 합법적인 성인 용도에 대해 콘텐츠 거부 없이 답변하도록 조정되었습니다. 이는 더 엄격한 모델이 완벽히 합리적인 요청을 거부할 수 있는 다크 스토리텔링, 공포 드라마 또는 성숙한 게임 대화와 같은 픽션 중심 오디오에 중요합니다. 단, 미성년자가 관련된 성적인 맥락의 내용은 허용되지 않으며, 키도 그러한 용도로 사용할 수 없습니다.
비디오 프롬프트 페이지에서는 비디오 도구에 동일한 아이디어를 다룹니다. 먼저 구조화된 설명을 작성하고 두 번째로 생성기에 전달하는 패턴은 미디어 전반에 걸쳐 적용됩니다.
작동 예시: 하나의 아이디어 입력, 하나의 구조화된 프롬프트 출력
하위 도구로 데이터를 전달하는 가장 신뢰할 수 있는 방법은 구조화된 출력입니다. JSON 모드(response_format: {"type":"json_object"})는 모델이 JSON 객체를 반환하게 하므로, 스크립트가 단락을 구문 분석하는 대신 명명된 필드를 읽을 수 있습니다. 이 엔드포인트를 대상으로 OpenAI SDK를 사용하는 Python 스크립트입니다.
import json, os
from openai import OpenAI
client = OpenAI(
base_url="https://api.stableaudio.top/v1",
api_key=os.environ["UNCENSORED_API_KEY"],
)
system = (
"You write prompts for text-to-audio tools. Return a JSON object with keys: "
"genre, tempo_bpm, instruments (list), mood, structure, duration_seconds, prompt. "
"The prompt field is one paragraph, no more than 60 words."
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": system},
{"role": "user", "content": "A tense chase scene in a rain-soaked neon city."},
],
response_format={"type": "json_object"},
temperature=0.8,
)
spec = json.loads(resp.choices[0].message.content)
print(spec["prompt"])
시스템 메시지에 JSON 단어를 유지하고 원하는 키 목록을 지정하십시오. 그러면 모델이 명확한 목표를 갖게 됩니다. 전달하기 전에 결과를 검증하십시오: tempo_bpm이 숫자인지, instruments이 리스트인지 확인하고, 아니면 한 번 더 재시도하십시오.
빠른 확인에 유용한 curl 요청은 다음과 같습니다:
curl https://api.stableaudio.top/v1/chat/completions \
-H "Authorization: Bearer $UNCENSORED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"response_format": {"type": "json_object"},
"messages": [
{"role": "system", "content": "Return JSON with keys mood and prompt for a text-to-audio tool."},
{"role": "user", "content": "A quiet morning in a mountain village."}
]
}'오디오 모델이 사용할 수 있는 프롬프트 작성
언어 모델은 요청하는 프롬프트의 형태를 무엇이든 작성하므로, 실제 작업은 형태를 결정하는 것입니다. 대부분의 오디오 도구에서 다음 규칙이 유효합니다.
도구가 원하는 순서로 원하는 내용을 명시하세요
오디오 도구의 문서를 읽고 그 어휘를 복사하세요. 대괄호 섹션 태그 또는 쉼표로 구분된 설명 줄에 응답하는 경우, 시스템 메시지에 해당 형식의 예시를 넣으세요. 모델은 예시를 매우 정확하게 모방합니다.
구체적인 명사를 사용하세요
"간결한 피아노, 브러시드 드럼, 업라이트 베이스, 비닐 잡음"이 "좋은 재즈 느낌"보다 낫습니다. 모델에게 악기, 템포 범위, 질감을 명시하고 여분 형용사를 피하도록 지시하세요.
지시문에 길이 제한을 설정하세요
많은 오디오 도구가 프롬프트 길이를 제한합니다. 시스템 메시지에 제한을 명시하고("60단어 이하"), 코드에서도 이를 강제하세요. 모델은 단어 수에서 어긋나므로, 검증에 실패하면 잘라내거나 재시도하세요.
피드백 루프 유지
결과를 들은 후 메모를 피드백하세요: "두 번째 부분에서 너무 복잡함, 드럼이 너무 큼, 키 유지." 두 번째 호출로 이전 프롬프트를 해당 메모가 포함된 컨텍스트로 수정할 수 있습니다. 100,000 토큰의 창을 사용하면 원하는 경우 모델이 사용자가 계속 거부하는 내용을 학습할 수 있도록 긴 시도 이력을 유지할 수 있습니다.
오디오 생성기에 모델 연결
글루 코드는 짧습니다. 스펙을 생성하고 검증한 후, 사용하는 오디오 서비스에 prompt 필드를 전달하세요. 오디오 호출은 벤더마다 인터페이스가 다르므로 자리 표시자로 표시되었습니다. 매개변수는 해당 문서에서 확인하세요.
def make_spec(idea: str) -> dict:
r = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": system},
{"role": "user", "content": idea},
],
response_format={"type": "json_object"},
)
return json.loads(r.choices[0].message.content)
ideas = ["Lo-fi study beat", "Epic orchestral trailer hit", "Haunted music box"]
for idea in ideas:
spec = make_spec(idea)
# send spec["prompt"] to your audio generator here
print(idea, "->", spec["prompt"][:80])
이 목록을 병렬로 실행할 경우 제한 사항을 주의하십시오. 전체 키는 동시 요청 8개와 분당 300개를 허용하며, 체험 키는 동시 요청 2개와 분당 60개를 허용합니다. concurrency 관련 429 오류는 동시에 너무 많은 요청이 발생했음을 의미하며, rate_limited은 분당 너무 많은 요청이 발생했음을 의미합니다. Retry-After: 5 헤더는 5초 동안 대기한 후 다시 시도하라는 의미입니다. 제한 사항에 맞춰 조정된 작은 스레드 풀과 재시도 로직이면 충분합니다.
API 문서에는 temperature, top_p, stop 및 seed을 포함한 지원되는 매개변수가 나열되어 있습니다. 시스템 메시지를 조정하는 동안 반복 가능한 프롬프트가 필요할 때 고정 seed이 도움이 됩니다.
대규모 가사, 내레이션 및 메타데이터
프롬프트는 오디오 프로젝트가 필요로 하는 텍스트의 한 종류일 뿐입니다. 파이프라인이 실행되면 동일한 엔드포인트로 주변의 다른 텍스트를 작성할 수 있으며, 이전 스크립트의 클라이언트 객체를 재사용할 수 있습니다.
내레이션 대본
음성 오디오의 경우, 단락 사이에 일시 정지 마커와 화자가 천천히 읽어야 할 때의 메모가 포함된 고정 표기법의 스크립트를 요청하세요. 목표 읽기 시간을 모델에 알려주세요. 일반적인 경험칙은 내레이터가 분당 약 150단어를 읽는다는 것이므로, 2분 분량의 작품에는 약 300단어가 필요합니다. 해당 수치를 요청하고 코드에서 단어를 세세요.
고정 구조의 가사
명명된 섹션, 운율 구조 및 줄당 음절 범위를 요청하세요. 모델은 "좋은 운율의 시"보다 "4줄, ABAB, 각 줄 8~10 음절"을 훨씬 잘 따릅니다. 코드에서 검사를 실행한 후 실패한 섹션만 다시 작성하도록 요청하세요.
제목, 태그 및 설명
오디오가 생성된 후 최종 프롬프트와 가사를 모델에 다시 보내고 제목 옵션 3개, 태그 5개, 2문장 분량의 설명을 요청하세요. 이는 저렴하고 반복적인 작업으로 텍스트 모델에 매우 적합합니다.
스토리 및 게임
공포물 연재극, 인터랙티브 스토리, 게임의 대사 등 픽션 오디오에는 어둡거나 성숙한 주제가 자주 포함됩니다. 이 모델은 합법적인 성인 사용에 맞춰 콘텐츠 거부 없이 응답하도록 조정되었으므로, 장르에 맞는 요청은 장황한 설명으로 응답하지 않습니다. 미성년자가 포함된 성 콘텐츠 금지 규칙은 절대적입니다.
긴 스크립트를 화면에 스트리밍할 경우 stream: true를 설정하고 청크가 도착할 때마다 읽으세요. 스트림이 끝날 때 사용량이 보고됩니다.
프롬프트 1,000개를 작성하는 비용
텍스트는 오디오 단계에 비해 저렴합니다. 입력 토큰 1M당 $0.15, 출력 토큰 1M당 $0.50의 요금이 부과되며, 구독 없이 선불 크레딧에서 청구됩니다.
각 요청이 약 600개의 토큰(시스템 메시지 및 아이디어 포함)을 보내고 약 300개의 JSON 토큰을 반환한다고 가정해 봅시다. 1,000개의 요청의 경우:
- 입력: 600,000 토큰 x $0.15 / 1M = $0.09
- 출력: 300,000 토큰 x $0.50 / 1M = $0.15
- 합계: $0.24
따라서 완성된 프롬프트 1,000개의 비용은 약 24센트이며, 실패하거나 거부된 요청은 요금이 부과되지 않습니다. 새 계정은 키 페이지에서 한 번의 클릭으로 카드 없이 $0.50의 무료 체험 크레딧을 받을 수 있으며, 이는 유효 기간이 7일로, 위와 같은 크기의 프롬프트 약 2,000개에 해당합니다. 이후 충전은 $20부터 시작됩니다. 보너스 등급 및 결제 옵션은 가격을 참조하세요. 프롬프트는 학습에 사용되지 않습니다.
더 많은 가이드
질문과 답변
텍스트 LLM이 오디오를 생성할 수 있습니까?
아니요. 언어 모델은 텍스트를 생성합니다. 오디오는 별도의 오디오 모델에서 생성되며, LLM의 역할은 해당 모델이 필요한 프롬프트, 가사 또는 스크립트를 작성하는 것입니다.
이 API가 음악이나 음성을 생성합니까?
아니요. 오디오, 이미지 또는 비디오 생성 기능이 없는 텍스트 전용 모델입니다. 오디오 도구 이전 단계의 작성 단계로 설계되었습니다.
스크립트에 입력할 수 있는 구조화된 프롬프트는 어떻게 얻습니까?
JSON 모드에서 response_format을 json_object로 설정하고, 시스템 메시지에서 키 이름을 지정한 후 코드에서 파싱된 결과를 검증하세요.
많은 프롬프트를 생성하는 데 비용이 얼마나 듭니까?
입력 토큰 100만 개당 $0.15, 출력 토큰 100만 개당 $0.50이며, 입력 약 600개, 출력 약 300개인 프롬프트 1,000개의 비용은 약 $0.24입니다.
무료로 시도할 방법이 있나요?
새 사용자는 가입 후 한 번의 클릭으로 $0.50의 무료 체험 크레딧을 받을 수 있습니다. 카드가 필요 없으며 유효 기간은 7일입니다.