本指南將引導您從取得 API 金鑰到生成可運作的音訊,涵蓋 GLM 音訊 API — GLM TTS 用於文字轉語音、GLM ASR 用於語音轉錄,以及 GLM Voice Clone 用於自訂語音合成。所有功能皆為同步 REST 端點,無需輪詢或 Webhook 步驟。如果您正在建構語音功能、轉錄管道或中文語音應用程式,這是達成整合最快途徑。
何時使用本快速入門
當您需要以下功能時,請參考本指南:
- 使用
POST /v3/glm-tts,以中文優化語音將文字轉為語音 - 使用
POST /v3/glm-asr,轉錄.wav或.mp3音訊檔案 - 使用
POST /v3/glm-tts-voice-clone,從短音訊樣本複製語音並合成新的語音
所有端點均透過位於 https://api.novita.ai 的 Novita AI API 提供。
前置條件
- 一個 Novita AI 帳號。從 Novita AI 控制台 取得您的 API 金鑰。
curl用於命令列範例。- 安裝了
requests套件的 Python 3.8+ 用於 Python 範例。
將您的金鑰設定為環境變數:
export NOVITA_API_KEY="your_api_key_here"
GLM TTS 快速入門
端點: POST https://api.novita.ai/v3/glm-tts
將最多 1024 個字元的文字轉換為語音。回應為二進位音訊 — 直接寫入檔案即可。
參數
| 參數 | 類型 | 預設值 | 說明 |
|---|---|---|---|
input |
字串 | — | 必填。最多 1024 個字元。 |
voice |
字串 | tongtong |
系統語音 ID 或已複製的語音名稱。 |
speed |
數字 | 1.0 | 範圍:0.5–2.0 |
volume |
數字 | 1.0 | 範圍:0–10 |
response_format |
字串 | pcm |
wav 或 pcm。WAV 包含標準音訊標頭;PCM 為 24000 Hz 的原始位元組。 |
watermark_enabled |
布林值 | 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 |
字串 | 必填。音訊的 URL 或 base64 編碼。僅限 .wav 或 .mp3。 |
prompt |
字串 | 選填。先前的轉錄上下文,最多 8000 個字元。用於分段轉錄的連續性。 |
hotwords |
陣列 | 選填。最多 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 |
字串 | 必填。樣本音訊的 URL。≤ 10 MB,建議 3–30 秒。 |
input |
字串 | 必填。要使用複製語音合成的文字。 |
voice_name |
字串 | 必填。您為此語音指定的唯一名稱。 |
text |
字串 | 選填。樣本音訊的文字轉錄 — 有助於提升複製品質。 |
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 / 1M 字元 |
| GLM ASR | $0.021 / 1M 字元 |
| GLM Voice Clone | $0.83 / 1M 字元 |
GLM TTS 非常適合需要大量中文語音合成且重視成本的場景。如果您需要更廣泛的多語言 TTS(支援 30 種以上語言)或長篇內容的非同步處理,建議評估 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 是否一定有效?
僅當您在帳號設定中已完成水印移除功能才有效,否則此標誌將被忽略。
