टेक्स्ट से ऑडियो LLM: यह क्या कर सकता है और क्या नहीं
टेक्स्ट से ऑडियो LLM आमतौर पर दो टूल्स का संयोजन होता है: एक भाषा मॉडल जो प्रॉम्प्ट लिखता है, और एक ऑडियो मॉडल जो उसे ध्वनि में बदलता है। यह API पहले आधे हिस्से को कवर करता है।

अपडेट किया गया
मुख्य बिंदु
यह सेवा केवल टेक्स्ट है और ऑडियो, छवियों या वीडियो उत्पन्न नहीं करती।
ऑडियो वर्कफ़्लो में इसका काम प्रॉम्प्ट, लिरिक्स, दृश्य स्क्रिप्ट और मेटाडेटा लिखना है।
इसे एक ऑडियो टूल से जोड़ने के लिए एक छोटा स्क्रिप्ट और JSON आउटपुट की आवश्यकता होती है।
लगभग 600 टोकन इनपुट और 300 आउटपुट वाले 1,000 प्रॉम्प्ट की लागत लगभग $0.24 आती है।
संक्षिप्त उत्तर: एक LLM निर्देश लिखता है, ध्वनि नहीं
जब लोग एक टेक्स्ट टू ऑडियो LLM की तलाश करते हैं, तो वे अक्सर एक ऐसे मॉडल की कल्पना करते हैं जो एक वाक्य पढ़ता है और एक साउंड फ़ाइल लौटाता है। बड़े भाषा मॉडल ऐसा नहीं करते। वे टेक्स्ट पढ़ते और लिखते हैं। ध्वनि एक अलग मॉडल से आती है जो ऑडियो के लिए बनाया गया है, जो टेक्स्ट विवरण को इनपुट के रूप में लेता है।
यह विभाजन उपयोगी है, क्योंकि विवरण की गुणवत्ता बहुत मायने रखती है। एक अस्पष्ट अनुरोध जैसे "रिलैक्सिंग म्यूजिक" ऑडियो मॉडल को काम करने के लिए बहुत कम देता है। एक विशिष्ट अनुरोध जो शैली, टेम्पो, वाद्ययंत्र, मूड, संरचना और लंबाई को नामित करता है, उसे बहुत अधिक देता है। उस विशिष्ट विवरण को लिखना, एक निरंतर प्रारूप में, एक भाषा मॉडल के लिए एक अच्छा काम है।
यह साइट ठीक उसी आधे हिस्से की पेशकश करती है: एक OpenAI-संगत पाठ API। इसमें कोई ऑडियो जनरेशन, कोई एम्बेडिंग और कोई फाइन-ट्यूनिंग नहीं है। यदि आपको स्वयं ध्वनि की आवश्यकता है, तो आप इसे एक ऐसे उपकरण के साथ जोड़ते हैं जो ध्वनि उत्पन्न करता है, और इस एंडपॉइंट को उस उपकरण के सामने लिखने के चरण के रूप में उपयोग करते हैं। हम किसी भी ऑडियो विक्रेता से संबद्ध नहीं हैं, इसलिए इनपुट नियमों के लिए प्रत्येक उपकरण की अपनी दस्तावेज़ी जांचें।
जब टेक्स्ट मॉडल ऑडियो पाइपलाइन में मदद करता है
वे कार्य जिनमें यह फिट बैठता है, वे वे हैं जहाँ आउटपुट शब्द हैं:
- प्रॉम्प्ट लेखन। एक अस्पष्ट विचार को शैली, टेम्पो, वाद्ययंत्र और मूड के साथ एक विस्तृत विवरण में बदलें।
- लिरिक्स और स्क्रिप्ट। एक गीत के लिए पंक्तियाँ और कोरस, या एक पॉडकास्ट परिचय या ऑडियोबुक चैप्टर के लिए नैरेशन स्क्रिप्ट।
- विविधताएँ। एक अवधारणा से दस वैकल्पिक प्रॉम्प्ट, ताकि आप कई दिशाओं का परीक्षण कर सकें।
- मेटाडेटा। शीर्षक, विवरण, टैग और ट्रैक नोट्स, जब ऑडियो मौजूद हो।
- संशोधन। परिणाम लक्ष्य से चूक जाने पर, आपकी टिप्पणियों के आधार पर प्रॉम्प्ट को फिर से लिखना।
यहाँ का मॉडल कानूनी वयस्क उपयोग के लिए बिना सामग्री अस्वीकृति के उत्तर देने के लिए ट्यून्ड है, जो फिक्शन-प्रधान ऑडियो के लिए महत्वपूर्ण है जैसे कि डार्क स्टोरीटेलिंग, हॉरर ड्रामा या परिपक्व गेम संवाद, जहाँ एक कठोर मॉडल एक बिल्कुल उचित अनुरोध को अस्वीकार कर सकता है। एक कठोर रेखा यह है कि यौन संदर्भ में नाबालिगों से जुड़ा कुछ भी अनुमत नहीं है, और कुंजियाँ उसी के लिए नहीं हैं।
हमारी वीडियो प्रॉम्प्ट पेज वीडियो टूल्स के लिए उसी विचार को कवर करती है; पहले संरचित विवरण लिखना और दूसरे में जनरेटर को देना, यह पैटर्न मीडिया में लागू होता है।
एक कार्यरत उदाहरण: एक विचार इन, एक संरचित प्रॉम्प्ट आउट
डाउनस्ट्रीम टूल को feed करने का सबसे विश्वसनीय तरीका स्ट्रक्चर्ड आउटपुट है। JSON मोड (response_format: {"type":"json_object"}) मॉडल को JSON ऑब्जेक्ट लौटाता है, ताकि आपका स्क्रिप्ट नामित फ़ील्ड्स पढ़ सके और पैराग्राफ़्स को parse करने की ज़रूरत न पड़े। यहाँ इस एंडपॉइंट के लिए 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."}
]
}'ऑडियो मॉडल द्वारा उपयोग किए जाने वाले प्रॉम्प्ट लिखना
एक भाषा मॉडल जो आप जो प्रॉम्प्ट मांगें, उसका कोई भी आकार लिखेगा, इसलिए असली काम आकार तय करना है। कुछ नियम अधिकांश ऑडियो टूल्स के पार टिकते हैं।
जो टूल चाहता है, उसे उसी क्रम में बताएं
ऑडियो उपकरण की दस्तावेज़ी पढ़ें और उसका शब्दावली कॉपी करें। यदि यह ब्रैकेटेड सेक्शन टैग्स या अल्पविराम से अलग किए गए विवरणकों की एक शैली पंक्ति का प्रतिक्रिया देता है, तो अपने सिस्टम संदेश में उसी सटीक प्रारूप का एक उदाहरण डालें। मॉडल उदाहरणों को निकटता से अनुकरण करते हैं।
स्पष्ट नामवाचक सर्वनाम (concrete nouns) दें
"Sparse piano, brushed drums, upright bass, vinyl crackle" "nice jazzy feel" से बेहतर है। मॉडल को वाद्ययंत्र, टेम्पो रेंज और टेक्सचर का नाम बताने को कहें, और फिलर एडजेक्टिव से बचने को कहें।
निर्देश में लंबाई की सीमा सेट करें
अक्सर ऑडियो टूल प्रॉम्प्ट लंबाई को कैप कर देते हैं। सिस्टम मेसेज में कैप डालें ("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 हेडर का मतलब है पाँच सेकंड प्रतीक्षा करें और फिर प्रयास करें। आपकी सीमा के अनुसार एक छोटा थ्रेड पूल, साथ में एक रीट्राई, काफी है।
API दस्तावेज़ समर्थित पैरामीटरों की सूची देते हैं, जिसमें temperature, top_p, stop और seed शामिल हैं। एक निश्चित seed तब मदद करता है जब आप सिस्टम संदेश को ट्यून करते समय दोहराए जा सकने वाले प्रॉम्प्ट चाहते हैं।
व्यापकता से लिरिक्स, नैरेशन और मेटाडेटा
प्रॉम्प्ट केवल एक प्रकार का टेक्स्ट है जिसकी एक ऑडियो प्रोजेक्ट को आवश्यकता होती है। एक बार जब पाइपलाइन चल जाती है, तो वही एंडपॉइंट इसके आसपास अन्य टुकड़े लिख सकता है, और आप पहले स्क्रिप्ट से क्लाइंट ऑब्जेक्ट को रीयूज़ कर सकते हैं।
नैरेशन स्क्रिप्ट
बोली गई ऑडियो के लिए, एक स्क्रिप्ट का अनुरोध करें जिसमें स्थिर प्रतीकों के साथ मंच निर्देश हों, जैसे कि पैराग्राफ़्स के बीच एक विराम चिह्न और एक नोट जब वक्ता को धीरे बोलना चाहिए। मॉडल को लक्ष्य पठन समय बताएं। एक सामान्य नियम यह है कि एक कथावाचक प्रति मिनट लगभग 150 शब्द पढ़ता है, इसलिए दो मिनट के टुकड़े के लिए लगभग 300 शब्दों की आवश्यकता होती है; उस संख्या का अनुरोध करें और फिर कोड में शब्दों की गणना करें।
फिक्स्ड स्ट्रक्चर के साथ लिरिक्स
नामांकित सेक्शन, राइम स्कीम और प्रति लाइन सिलेबल रेंज मांगें। मॉडल "चार लाइनें, ABAB, आठ से दस सिलेबल प्रत्येक" को "एक अच्छी राइमिंग वर्स" की तुलना में बेहतर फॉलो करता है। बाद में कोड में एक चेक चलाएं और केवल उस सेक्शन को रीराइट करने के लिए कहें जिसमें फेल हुआ।
टाइटल्स, टैग और डिस्क्रिप्शन
ऑडियो बनने के बाद, अंतिम प्रॉम्प्ट और लिरिक्स वापस मॉडल को भेजें और तीन टाइटल विकल्प, पांच टैग और एक दो-वाक्य डिस्क्रिप्शन मांगें। यह सस्ता, दोहराया जाने वाला काम है जो एक टेक्स्ट मॉडल के लिए अच्छा है।
कहानियाँ और गेम्स
काल्पनिक ऑडियो, जैसे एक हॉरर सीरियल, एक इंटरैक्टिव कहानी या एक गेम के लिए संवाद, अक्सर डार्क या परिपक्व विषयों को शामिल करते हैं। मॉडल कानूनी वयस्कों के उपयोग के लिए बिना सामग्री अस्वीकृति के उत्तर देने के लिए ट्यून्ड है, इसलिए एक अनुरोध जो शैली से फिट बैठता है, एक व्याख्यान के साथ नहीं देखा जाता है। नाबालिगों से जुड़ी यौन सामग्री के विरुद्ध नियम पूर्णतः अटल रहता है।
यदि आप लंबी स्क्रिप्ट को स्क्रीन पर स्ट्रीम करते हैं, तो stream: true सेट करें और चंक्स को आते ही पढ़ें; उपयोग स्ट्रीम के अंत में रिपोर्ट किया जाता है।
एक हजार प्रॉम्प्ट लिखने की लागत
ऑडियो चरण की तुलना में पाठ सस्ता है। दर $0.15 प्रति 1M इनपुट टोकन और $0.50 प्रति 1M आउटपुट टोकन है, जो प्रीपेड क्रेडिट से बिल किया जाता है, कोई सब्सक्रिप्शन नहीं।
मान लीजिए कि प्रत्येक अनुरोध लगभग 600 टोकन भेजता है (सिस्टम संदेश plus विचार) और JSON के लगभग 300 टोकन प्राप्त करता है। 1,000 अनुरोधों के लिए:
- इनपुट: 600,000 टोकन x $0.15 / 1M = $0.09
- आउटपुट: 300,000 टोकन x $0.50 / 1M = $0.15
- कुल: $0.24
तो एक हज़ार पूर्ण प्रॉम्प्ट्स की लागत लगभग चौबीस सेंट आती है, और जो अनुरोध फेल होते हैं या अस्वीकृत किए जाते हैं, उन पर चार्ज नहीं होता। एक नए खाते में कुंजी पृष्ठ पर एक क्लिक से $0.50 का ट्रायल क्रेडिट क्लेम किया जा सकता है, बिना कार्ड के, जो 7 दिनों के लिए मान्य है, जो ऊपर बताए गए आकार के लगभग दो हज़ार प्रॉम्प्ट्स के बराबर है। इसके बाद, टॉप-अप $20 से शुरू होते हैं; बोनस टियर्स और भुगतान विकल्पों के लिए मूल्य निर्धारण देखें। प्रॉम्प्ट्स को ट्रेनिंग के लिए उपयोग नहीं किया जाता।
अधिक गाइड
प्रश्न और उत्तर
क्या एक टेक्स्ट LLM ऑडियो जनरेट कर सकता है?
नहीं। एक भाषा मॉडल पाठ उत्पन्न करता है। ऑडियो एक अलग ऑडियो मॉडल से आता है, और LLM की भूमिका उस मॉडल को आवश्यक प्रॉम्प्ट, बोल या स्क्रिप्ट लिखने की है।
क्या यह API संगीत या वॉयस जनरेट करता है?
नहीं। यह केवल टेक्स्ट है, बिना ऑडियो, इमेज या वीडियो जनरेशन के। यह एक ऑडियो टूल के सामने लेखन चरण के रूप में बनाया गया है।
मुझे ऐसे स्ट्रक्चर्ड प्रॉम्प्ट्स कैसे मिलें जो मैं एक स्क्रिप्ट को फ़ीड कर सकूँ?
JSON मोड का उपयोग करें response_format को json_object सेट करके, अपने सिस्टम संदेश में कीज़ का नाम दें, और कोड में पार्स किए गए परिणाम की वैलिडेट करें।
बहुत सारे प्रॉम्प्ट्स जनरेट करने की लागत कितनी है?
$0.15 प्रति 1M इनपुट टोकन और $0.50 प्रति 1M आउटपुट टोकन की दर से, 1,000 प्रॉम्प्ट्स की, जिनमें लगभग 600 इनपुट टोकन और 300 आउटपुट टोकन हैं, की लागत लगभग $0.24 आती है।
क्या इसे आज़माने का कोई मुफ़्त तरीका है?
नए उपयोगकर्ता साइन-अप के बाद एक क्लिक से $0.50 का ट्रायल क्रेडिट क्लेम कर सकते हैं। इसके लिए कार्ड की आवश्यकता नहीं है और यह 7 दिनों के लिए मान्य है।
आपकी कुंजी बस एक फॉर्म दूर है
एक खाता बनाएँ, कुंजी कॉपी करें, बेस URL बदलें। यही पूरा सेटअप है।