本指南將帶您從取得 API 金鑰到實際使用 GLM 音訊 API 產出音檔——包含用於文字轉語音的 GLM TTS、用於語音轉錄的 GLM ASR,以及用於自訂語音合成的 GLM Voice Clone。這三個 API 都是同步 REST 端點,無需輪詢或 Webhook 步驟。如果您正在建構語音功能、轉錄管道或中文音訊應用程式,這是邁向整合的最快路徑。
何時使用此快速入門
當您需要以下功能時,請參考本指南:
- 透過
POST /v3/glm-tts使用針對中文最佳化的語音,將文字轉換為語音 - 透過
POST /v3/glm-asr轉錄.wav或.mp3音訊檔案 - 透過
POST /v3/glm-tts-voice-clone從短音訊樣本克隆語音,並合成新的語音內容
所有端點均可透過 Novita AI API 在 https://api.novita.ai 存取。
前置需求
- 一個 Novita AI 帳號。從 Novita AI 控制台 取得您的 API 金鑰。
- 用於 Shell 範例的
curl。 - 用於 Python 範例的 Python 3.8+ 以及已安裝的
requests套件。
將您的金鑰設定為環境變數:
export NOVITA_API_KEY="your_api_key_here"
GLM TTS 快速入門
端點: POST https://api.novita.ai/v3/glm-tts
將最多 1024 個字元的文字轉換為語音。回應為二進位音訊——請直接寫入檔案。
參數
| 參數 | 類型 | 預設值 | 備註 |
|---|---|---|---|
input |
string | — | 必填。最多 1024 個字元。 |
voice |
string | tongtong |
系統語音 ID 或已克隆的語音名稱。 |
speed |
number | 1.0 | 範圍:0.5–2.0 |
volume |
number | 1.0 | 範圍:0–10 |
response_format |
string | pcm |
wav 或 pcm。WAV 包含標準音訊標頭;PCM 為 24000 Hz 的原始位元組。 |
watermark_enabled |
boolean | true | 僅在您的帳號已啟用水印移除功能時,才能設為 false。 |
系統語音
| 語音 ID | 顯示名稱 |
|---|---|
tongtong |
彤彤(預設) |
chuichui |
吹吹 |
xiaochen |
曉辰 |
jam |
動物園之東東——Jam |
kazi |
動物園之東東——Kazi |
douji |
動物園之東東——豆幾 |
luodo |
動物園之東東——羅多 |
curl
curl -s -X POST https://api.novita.ai/v3/glm-tts \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "你好,歡迎使用 Novita AI 語音合成介面。",
"voice": "tongtong",
"speed": 1.0,
"volume": 5,
"response_format": "wav"
}' \
--output output.wav
Python
import requests, os
response = requests.post(
"https://api.novita.ai/v3/glm-tts",
headers={
"Authorization": f"Bearer {os.environ['NOVITA_API_KEY']}",
"Content-Type": "application/json",
},
json={
"input": "你好,歡迎使用 Novita AI 語音合成介面。",
"voice": "tongtong",
"speed": 1.0,
"volume": 5,
"response_format": "wav",
},
)
response.raise_for_status()
with open("output.wav", "wb") as f:
f.write(response.content)
限制: 每個請求最多 1024 個字元。對於較長文字,請在句子邊界處分割,並銜接音訊。建議播放取樣率:24000 Hz。語音名稱區分大小寫。
GLM ASR 快速入門
端點: POST https://api.novita.ai/v3/glm-asr
使用 GLM-ASR-2512 模型轉錄 .wav 或 .mp3 音訊。音訊可以 URL 或 base64 字串形式傳遞。限制:檔案 ≤ 25 MB,時長 ≤ 30 秒。
參數
| 參數 | 類型 | 備註 |
|---|---|---|
file |
string | 必填。URL 或 base64 編碼的音訊。僅限 .wav 或 .mp3。 |
prompt |
string | 選填。先前的轉錄上下文,最多 8000 個字元。用於分段轉錄時的連續性。 |
hotwords |
array | 選填。最多 100 個領域特定詞彙,用於提升辨識準確度。 |
curl(URL 輸入)
curl -s -X POST https://api.novita.ai/v3/glm-asr \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"file": "https://example.com/sample.wav",
"hotwords": ["Novita", "GLM"]
}'
Python(base64 輸入)
import requests, base64, os
with open("sample.wav", "rb") as f:
audio_b64 = base64.b64encode(f.read()).decode()
response = requests.post(
"https://api.novita.ai/v3/glm-asr",
headers={
"Authorization": f"Bearer {os.environ['NOVITA_API_KEY']}",
"Content-Type": "application/json",
},
json={"file": audio_b64, "hotwords": ["Novita", "GLM"]},
)
response.raise_for_status()
print(response.json()["text"])
回應
{ "text": "你好,歡迎使用 Novita AI 語音合成介面。" }
處理時長超過 30 秒的音訊: 分割成 ≤ 30 秒的區塊,並使用 prompt 欄位在區塊之間傳遞轉錄上下文以鏈接請求:
payload = {
"file": next_chunk_b64,
"prompt": previous_transcript,
}
GLM Voice Clone 快速入門
端點: POST https://api.novita.ai/v3/glm-tts-voice-clone
接受一段音訊樣本,並以該語音合成新的語音內容。為克隆的語音指定一個名稱;之後可在 GLM TTS 中將此名稱作為 voice 參數重複使用,無需重新上傳樣本。
參數
| 參數 | 類型 | 備註 |
|---|---|---|
audio_url |
string | 必填。樣本音訊的 URL。≤ 10 MB,建議 3–30 秒。 |
input |
string | 必填。要以克隆語音合成的文字。 |
voice_name |
string | 必填。您為此語音指定的唯一名稱。 |
text |
string | 選填。樣本音訊的文字轉錄——可提升克隆品質。 |
curl
curl -s -X POST https://api.novita.ai/v3/glm-tts-voice-clone \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://example.com/voice-sample.wav",
"input": "這是用克隆聲音合成的語音範例。",
"voice_name": "my-custom-voice",
"text": "範例音訊的文字內容"
}'
Python
import requests, os
response = requests.post(
"https://api.novita.ai/v3/glm-tts-voice-clone",
headers={
"Authorization": f"Bearer {os.environ['NOVITA_API_KEY']}",
"Content-Type": "application/json",
},
json={
"audio_url": "https://example.com/voice-sample.wav",
"input": "這是用克隆聲音合成的語音範例。",
"voice_name": "my-custom-voice",
"text": "範例音訊的文字內容",
},
)
response.raise_for_status()
data = response.json()
print(f"語音音色:{data['voice']}")
print(f"音訊 URL:{data['audio_url']}")
回應
{
"voice": "my-custom-voice-timbre-id",
"audio_url": "https://..."
}
這裡回傳的 voice 值可以直接傳遞給 GLM TTS 的 voice 參數,用於後續的合成請求。
提示: 使用乾淨的 5–15 秒樣本,避免背景噪音。提供樣本的 text 轉錄內容有助於改善音素對齊。
價格與使用說明
價格資訊截至 2026 年 6 月,取自 novita.ai/pricing:
| API | 價格 |
|---|---|
| GLM TTS | $0.28 / 100 萬字元 |
| GLM ASR | $0.021 / 100 萬字元 |
| GLM Voice Clone | $0.83 / 100 萬字元 |
GLM TTS 非常適合需要大量中文語音合成且重視成本的場景。如果您需要涵蓋 30 種以上語言的廣泛多語言 TTS,或需要非同步處理長篇內容,可以評估 MiniMax Speech 作為替代方案。
常見問題
GLM TTS 支援哪些語言? 針對中文(普通話)最佳化。可處理中英文混合輸入。如需廣泛的多語言支援,請使用 MiniMax Speech。
我可以在 GLM TTS 中重複使用已克隆的語音嗎?
可以。將您在 Voice Clone 呼叫中指定的 voice_name 作為 GLM TTS 的 voice 參數傳入即可。無需重新上傳樣本。
為什麼 GLM ASR 有 30 秒的限制?
該模型以同步方式處理音訊。請在句子邊界處分割較長的錄音,並使用 prompt 欄位鏈接請求以傳遞上下文。
pcm 和 wav 輸出有什麼差別?
PCM 是 24000 Hz 的原始音訊位元組,不含標頭。WAV 將相同的音訊包裝在標準容器中,大多數函式庫可直接讀取。除非您的管線需要原始 PCM,否則請使用 WAV。
將 watermark_enabled 設為 false 一定有效嗎?
僅當您在帳號設定中完成水印移除時才有效。否則該標誌會被忽略。
