Это руководство проведёт вас от получения API-ключа до рабочего аудио с помощью аудио API от GLM — GLM TTS для преобразования текста в речь, GLM ASR для транскрибации и GLM Voice Clone для синтеза речи на основе клонированного голоса. Все три являются синхронными REST-эндпоинтами без необходимости опроса или вебхуков. Если вы разрабатываете функции с голосом, пайплайны транскрибации или аудиоприложения на китайском языке, это самый быстрый путь к рабочей интеграции.
Когда использовать это руководство
Используйте это руководство, если вам нужно:
- Преобразовать текст в речь с голосами, оптимизированными для китайского языка, через
POST /v3/glm-tts - Транскрибировать аудиофайлы
.wavили.mp3черезPOST /v3/glm-asr - Клонировать голос из короткого аудиосэмпла и синтезировать новую речь через
POST /v3/glm-tts-voice-clone
Все эндпоинты доступны через API Novita AI по адресу https://api.novita.ai.
Предварительные требования
- Учётная запись Novita AI. Получите API-ключ в консоли Novita AI.
curlдля примеров в командной строке.- Python 3.8+ с установленным
requestsдля примеров на Python.
Установите ключ как переменную окружения:
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 |
wav или pcm. WAV включает стандартный аудиозаголовок; PCM — сырые байты при 24000 Гц. |
watermark_enabled |
boolean | true | Установите false только если в вашей учётной записи отключено наложение водяного знака. |
Системные голоса
| ID голоса | Отображаемое имя |
|---|---|
tongtong |
Тунтун (по умолчанию) |
chuichui |
Чуйчуй |
xiaochen |
Сяочэнь |
jam |
Дундун Зоопарк – Jam |
kazi |
Дундун Зоопарк – Kazi |
douji |
Дундун Зоопарк – Douji |
luodo |
Дундун Зоопарк – 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 Гц. Имена голосов чувствительны к регистру.
Быстрый старт GLM ASR
Эндпоинт: POST https://api.novita.ai/v3/glm-asr
Транскрибирует аудио .wav или .mp3 с помощью модели GLM-ASR-2512. Аудио можно передать как URL или строку в кодировке base64. Ограничения: файл ≤ 25 МБ, длительность ≤ 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
Принимает аудиосэмпл и синтезирует новую речь этим голосом. Присвойте имя клонированному голосу; используйте его как параметр voice в GLM TTS без повторной загрузки сэмпла.
Параметры
| Параметр | Тип | Примечания |
|---|---|---|
audio_url |
string | Обязательно. URL аудиосэмпла. ≤ 10 МБ, рекомендуется 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, возвращённое здесь, можно напрямую передать в параметр voice GLM TTS для последующих вызовов синтеза.
Советы: Используйте чистый сэмпл длительностью 5–15 секунд без фонового шума. Укажите транскрипцию text сэмпла для улучшения фонемного выравнивания.
Цены и примечания по использованию
Цены по состоянию на июнь 2026 г., с 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_name, который вы задали при вызове Voice Clone, как параметр voice в GLM TTS. Повторно загружать сэмпл не нужно.
Почему существует ограничение в 30 секунд для GLM ASR?
Модель обрабатывает аудио синхронно. Разбивайте длинные записи по границам предложений и объединяйте запросы, используя поле prompt для передачи контекста.
В чём разница между выводом pcm и wav?
PCM — это сырые аудиобайты с частотой 24000 Гц без заголовка. WAV оборачивает то же аудио в стандартный контейнер, который большинство библиотек могут прочитать напрямую. Используйте WAV, если ваш конвейер не требует сырого PCM.
Всегда ли работает установка watermark_enabled: false?
Только если вы отключили наложение водяного знака в настройках учётной записи. В противном случае флаг игнорируется.
