GLM TTS 與 ASR API 快速入門

GLM TTS 與 ASR API 快速入門

本指南將帶您從取得 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 存取。

前置需求

  1. 一個 Novita AI 帳號。從 Novita AI 控制台 取得您的 API 金鑰。
  2. 用於 Shell 範例的 curl
  3. 用於 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 wavpcm。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 欄位鏈接請求以傳遞上下文。

pcmwav 輸出有什麼差別? PCM 是 24000 Hz 的原始音訊位元組,不含標頭。WAV 將相同的音訊包裝在標準容器中,大多數函式庫可直接讀取。除非您的管線需要原始 PCM,否則請使用 WAV。

watermark_enabled 設為 false 一定有效嗎? 僅當您在帳號設定中完成水印移除時才有效。否則該標誌會被忽略。

推薦文章