이 가이드는 API 키부터 실제 작동하는 오디오까지 GLM 오디오 API — 텍스트 음성 변환을 위한 GLM TTS, 전사를 위한 GLM ASR, 맞춤형 음성 합성을 위한 GLM Voice Clone — 를 사용하는 방법을 알려줍니다. 세 가지 API 모두 폴링이나 웹훅 단계가 없는 동기식 REST 엔드포인트입니다. 음성 기능, 전사 파이프라인 또는 중국어 오디오 애플리케이션을 구축한다면, 이 가이드가 가장 빠른 통합 경로입니다.
빠른 시작 활용 시점
다음과 같은 경우에 이 가이드를 사용하세요:
- 중국어에 최적화된 음성으로 텍스트를 음성으로 변환 (
POST /v3/glm-tts) .wav또는.mp3오디오 파일을 전사 (POST /v3/glm-asr)- 짧은 오디오 샘플로 음성을 복제하고 새로운 음성을 합성 (
POST /v3/glm-tts-voice-clone)
모든 엔드포인트는 https://api.novita.ai의 Novita AI API를 통해 사용할 수 있습니다.
사전 준비 사항
- Novita AI 계정. Novita AI 콘솔에서 API 키를 발급받으세요.
- 셸 예제 실행을 위한
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 |
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 Hz의 원시 바이트입니다. |
watermark_enabled |
boolean | true | 계정에서 워터마크 제거가 활성화된 경우에만 false로 설정하세요. |
시스템 음성
| 음성 ID | 표시 이름 |
|---|---|
tongtong |
Tongtong (기본값) |
chuichui |
Chuichui |
xiaochen |
Xiaochen |
jam |
Dongdong Zoo – Jam |
kazi |
Dongdong Zoo – Kazi |
douji |
Dongdong Zoo – Douji |
luodo |
Dongdong Zoo – 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"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 | 100만 자당 $0.28 |
| GLM ASR | 100만 자당 $0.021 |
| GLM Voice Clone | 100만 자당 $0.83 |
GLM TTS는 비용이 중요한 대규모 중국어 음성 합성에 적합합니다. 30개 이상의 언어를 지원하는 광범위한 다국어 TTS 또는 장문 콘텐츠의 비동기 처리가 필요하다면 MiniMax Speech를 대안으로 고려하세요.
FAQ
GLM TTS는 어떤 언어를 지원하나요? 중국어(표준어)에 최적화되어 있습니다. 중국어-영어 혼합 입력을 처리할 수 있습니다. 광범위한 다국어 지원이 필요하다면 MiniMax Speech를 사용하세요.
복제된 음성을 GLM TTS에서 재사용할 수 있나요?
네. Voice Clone 호출에서 지정한 voice_name을 GLM TTS의 voice 파라미터로 전달하면 됩니다. 샘플을 다시 업로드할 필요가 없습니다.
GLM ASR에 30초 제한이 있는 이유는 무엇인가요?
모델이 오디오를 동기식으로 처리하기 때문입니다. 더 긴 녹음은 문장 경계에서 분할하고 prompt 필드를 사용하여 컨텍스트를 전달하며 요청을 연결하세요.
pcm과 wav 출력의 차이는 무엇인가요?
PCM은 헤더가 없는 24000 Hz의 원시 오디오 바이트입니다. WAV는 대부분의 라이브러리에서 직접 읽을 수 있는 표준 컨테이너로 동일한 오디오를 감쌉니다. 파이프라인에서 원시 PCM이 필요한 경우가 아니라면 WAV를 사용하세요.
watermark_enabled: false 설정이 항상 작동하나요?
계정 설정에서 워터마크 제거를 완료한 경우에만 작동합니다. 그렇지 않으면 이 플래그는 무시됩니다.
