繁中 ▾
stableaudio.top

適用於您音訊管線的無審查文字 API

取得 API 金鑰

文字轉語音 LLM:能與不能

文字轉語音 LLM 通常是兩個工具協作:一個撰寫提示詞的語言模型,以及將其轉為聲音的音訊模型。此 API 涵蓋前半段。

等距插圖顯示文字面板轉為聲波,展示 LLM 為音訊工具撰寫提示詞

更新於

重點摘要

  1. 此服務僅限文字,不產生音訊、影像或影片。

  2. 其在音訊工作流程中的職責是撰寫提示詞、歌詞、場景腳本與元資料。

  3. 將其串連至音訊工具需要短腳本與 JSON 輸出。

  4. 1,000 個提示詞(輸入約 600 token,輸出 300)的成本約為 $0.24。

簡短回答:LLM 撰寫指令,而非聲音

當人們搜尋 文字轉語音 LLM 時,常想像有一個模型能讀取句子並回傳音訊檔。大型語言模型並非如此運作。它們讀寫文字。聲音來自專門為音訊設計的獨立模型,該模型以文字描述為輸入。

這種分工很有用,因為描述的品質至關重要。模糊的請求(如「放鬆音樂」)讓音訊模型難以發揮。具體的請求若指明流派、速度、樂器、情緒、結構與長度,則能提供更多資訊。大量且格式一致地撰寫具體描述,是語言模型的擅長領域。

本站提供正是這一半:相容 OpenAI 的文字 API。它無音訊生成、無嵌入(embeddings)與微調功能。若你需要音訊本身,請搭配能產生音訊的工具,並將此端點作為其前方的撰寫步驟。我們與任何音訊供應商無隸屬關係,請查閱各工具的官方文件以了解其輸入規則。

文字模型在音訊管線中的協助

適合的任務是輸出為文字的任務:

  • 提示詞撰寫。 將粗略概念轉為包含流派、速度、配器與情緒的詳細描述。
  • 歌詞與腳本。 歌曲的段落與副歌,或播客開場、有聲書章節的旁白腳本。
  • 變體。 從單一概念產生十個替代提示詞,以便測試多個方向。
  • 元資料。 音訊產生後的標題、描述、標籤與曲目註解。
  • 修訂。 當結果未達預期時,根據你的回饋筆記修訂提示詞。

此模型針對合法成人用途調整,可無內容審查地回答,這對於富含小說的音訊(如黑暗敘事、恐怖戲劇或成熟遊戲對話)很重要,因為較嚴格的模型可能會拒絕完全合理的請求。唯一的底線是,涉及未成年人的性內容絕對禁止,且金鑰不得用於此目的。

我們的 影片提示詞頁面 涵蓋了相同的概念用於影片工具;先撰寫結構化描述、再交給生成器的模式可跨媒體應用。

實作範例:輸入一個概念,輸出結構化提示詞

將資料餵給下游工具最可靠的方式是結構化輸出。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-token 的上下文視窗意味著你可以保留長長的嘗試歷史,讓模型學習你持續拒絕的內容。

將模型串連至音訊生成器

黏合程式碼很短。產生規格、驗證它,然後將 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 並在資料塊到達時讀取它們;用量會在串流結束時報告。

撰寫一千個提示詞的成本

文字成本遠低於音訊處理步驟。費率為每 1M 輸入 token $0.15,每 1M 輸出 token $0.50,從預付額度扣款,無訂閱費。

假設每個請求發送約 600 個 token(系統訊息加概念)並回傳約 300 個 token 的 JSON。對於 1,000 個請求:

  • 輸入:600,000 個 token x $0.15 / 1M = $0.09
  • 輸出:300,000 個 token x $0.50 / 1M = $0.15
  • 總計:$0.24

因此,一千個完成的提示詞成本約為二十四美分,失敗或被拒絕的請求不會計費。新帳戶可以在 金鑰頁面 上一鍵領取 $0.50 的試用額度,無需信用卡,有效期為 7 天,大約可執行兩千個上述大小的提示詞。此後,儲值從 $20 起跳;請參閱 定價 查看獎勵等級和付款方式。提示詞不會用於訓練。

問答

文字 LLM 能產生音訊嗎?

不能。語言模型產生文字。音訊來自獨立的音訊模型,LLM 的角色是撰寫該模型所需的提示詞、歌詞或腳本。

此 API 能產生音樂或語音嗎?

不能。它僅限文字,無音訊、影像或影片生成。它旨在作為音訊工具前的寫作步驟。

我如何取得可餵給腳本的結構化提示詞?

使用 JSON 模式,將 response_format 設為 json_object,在系統訊息中命名鍵,並在程式碼中驗證解析結果。

產生大量提示詞的成本是多少?

每 1M 輸入 token $0.15,每 1M 輸出 token $0.50,1,000 個提示詞(輸入約 600 個 token,輸出約 300 個 token)的成本約為 $0.24。

有免費方式可以試用嗎?

新用戶可在註冊後一鍵領取 $0.50 的免費試用額度。無需信用卡,有效期 7 天。

只需填寫表單即可取得金鑰

建立帳號、複製金鑰、更改基礎 URL。這就是整個設定過程。

取得 API 金鑰