GLM Voice Clone
curl --request POST \
--url https://api.myrouter.ai/v3/glm-tts-voice-clone \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"text": "<string>",
"input": "<string>",
"audio_url": "<string>",
"voice_name": "<string>"
}
'import requests
url = "https://api.myrouter.ai/v3/glm-tts-voice-clone"
payload = {
"text": "<string>",
"input": "<string>",
"audio_url": "<string>",
"voice_name": "<string>"
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
text: '<string>',
input: '<string>',
audio_url: '<string>',
voice_name: '<string>'
})
};
fetch('https://api.myrouter.ai/v3/glm-tts-voice-clone', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.myrouter.ai/v3/glm-tts-voice-clone",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => '<string>',
'input' => '<string>',
'audio_url' => '<string>',
'voice_name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.myrouter.ai/v3/glm-tts-voice-clone"
payload := strings.NewReader("{\n \"text\": \"<string>\",\n \"input\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"voice_name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.myrouter.ai/v3/glm-tts-voice-clone")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"text\": \"<string>\",\n \"input\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"voice_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.myrouter.ai/v3/glm-tts-voice-clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"text\": \"<string>\",\n \"input\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"voice_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"voice": "<string>",
"audio_url": "<string>"
}Audio
GLM Voice Clone
POST
/
v3
/
glm-tts-voice-clone
GLM Voice Clone
curl --request POST \
--url https://api.myrouter.ai/v3/glm-tts-voice-clone \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"text": "<string>",
"input": "<string>",
"audio_url": "<string>",
"voice_name": "<string>"
}
'import requests
url = "https://api.myrouter.ai/v3/glm-tts-voice-clone"
payload = {
"text": "<string>",
"input": "<string>",
"audio_url": "<string>",
"voice_name": "<string>"
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
text: '<string>',
input: '<string>',
audio_url: '<string>',
voice_name: '<string>'
})
};
fetch('https://api.myrouter.ai/v3/glm-tts-voice-clone', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.myrouter.ai/v3/glm-tts-voice-clone",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => '<string>',
'input' => '<string>',
'audio_url' => '<string>',
'voice_name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.myrouter.ai/v3/glm-tts-voice-clone"
payload := strings.NewReader("{\n \"text\": \"<string>\",\n \"input\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"voice_name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.myrouter.ai/v3/glm-tts-voice-clone")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"text\": \"<string>\",\n \"input\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"voice_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.myrouter.ai/v3/glm-tts-voice-clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"text\": \"<string>\",\n \"input\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"voice_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"voice": "<string>",
"audio_url": "<string>"
}Uses voice cloning technology to synthesize speech with a specified voice timbre and text content based on a sample audio.
Request Headers
string
required
Enum:
application/jsonstring
required
Bearer authentication format: Bearer {{API Key}}.
Request Body
string
Text content of the sample audio (optional).
string
required
Target text content for the generated preview audio.
string
required
URL of the sample audio. File size must not exceed 10MB. Recommended audio duration is between 3 and 30 seconds.
string
required
A unique voice name identifier.
Response
string
Voice timbre identifier.
string
URL of the generated preview audio file.
⌘I