本指南将带您从获取 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。
前置条件
- 拥有 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 |
字符串 | — | 必填。最多 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 语音克隆快速入门
端点: 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 字段串联请求以传递上下文。
pcm 和 wav 输出有何区别?
PCM 是 24000 Hz 的原始音频字节,不带文件头。WAV 将相同音频封装在标准容器中,大多数库可直接读取。除非您的管道需要原始 PCM,否则请使用 WAV。
设置 watermark_enabled: false 是否始终有效?
仅当您已在账户设置中完成水印移除时才有效,否则该标志会被忽略。
