このガイドでは、API キーから GLM 音声 API(テキスト読み上げ用 GLM TTS、文字起こし用 GLM ASR、カスタム音声合成用 GLM 音声クローン)を使用した音声出力を得るまでの手順を説明します。3 つの 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) から利用できます。
前提条件
- Novita AI アカウント。API キーは Novita AI コンソール から取得してください。
- シェル例で使用する
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 |
トントン(デフォルト) |
chuichui |
チュイチュイ |
xiaochen |
シャオチェン |
jam |
ドンドン Zoo – Jam |
kazi |
ドンドン Zoo – Kazi |
douji |
ドンドン Zoo – Douji |
luodo |
ドンドン 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)
制限: 1 リクエストあたり 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 | $0.28 / 100 万文字 |
| GLM ASR | $0.021 / 100 万文字 |
| GLM 音声クローン | $0.83 / 100 万文字 |
GLM TTS は、コストが重要な大量の中国語合成に適しています。30 以上の言語に対応する多言語 TTS や長尺コンテンツの非同期処理が必要な場合は、MiniMax Speech を評価対象として検討してください。
FAQ
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 を設定すれば常に機能しますか?
アカウント設定で透かし除去が完了している場合のみ機能します。そうでない場合、このフラグは無視されます。
