GLM TTS 和 ASR API 快速入门

GLM TTS 和 ASR API 快速入门

本指南将带您从获取 API 密钥到生成可用的音频,涵盖 GLM 系列音频 API——GLM TTS(文字转语音)、GLM ASR(语音转文字)和 GLM 语音克隆(定制语音合成)。这三个均为同步 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 字符串 必填。最多 1024 个字符。
voice 字符串 tongtong 系统语音 ID 或克隆语音名称。
speed 数字 1.0 范围:0.5–2.0
volume 数字 1.0 范围:0–10
response_format 字符串 pcm wavpcm。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 语音克隆快速入门

端点: 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"Voice timbre: {data['voice']}")
print(f"Audio 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 非常适用于对成本敏感的高并发中文语音合成场景。如果您需要支持 30+ 语言的多语种 TTS 或异步处理长文本内容,建议评估 MiniMax Speech

常见问题

GLM TTS 支持哪些语言? 针对中文(普通话)优化。可处理中英混合输入。如需广泛的多语种覆盖,请使用 MiniMax Speech。

克隆的声音能在 GLM TTS 中重复使用吗? 可以。将您在语音克隆调用中指定的 voice_name 作为 GLM TTS 的 voice 参数传入即可,无需重新上传样本。

为什么 GLM ASR 有 30 秒限制? 该模型以同步方式处理音频。请在句子边界分割较长的录音,并使用 prompt 字段串联请求以传递上下文。

pcmwav 输出有何区别? PCM 是 24000 Hz 的原始音频字节,不带文件头。WAV 将相同音频封装在标准容器中,大多数库可直接读取。除非您的管道需要原始 PCM,否则请使用 WAV。

设置 watermark_enabled: false 是否始终有效? 仅当您已在账户设置中完成水印移除时才有效,否则该标志会被忽略。

推荐阅读