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. 命令行示例需要 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 咚咚动物园 – 吉姆
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 声音克隆快速入门

端点: 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 / 百万字符
GLM ASR $0.021 / 百万字符
GLM 声音克隆 $0.83 / 百万字符

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 是否始终有效? 仅当你在账户设置中已完成水印移除时有效,否则该标志会被忽略。

推荐文章