Zum Hauptinhalt springen
POST
/
synthesis
Perform speech synthesis
curl --request POST \
  --url https://api.example.com/synthesis \
  --header 'Content-Type: application/json' \
  --data '
{
  "accent_phrases": [
    {
      "moras": [
        {
          "text": "<string>",
          "vowel": "<string>",
          "vowel_length": 123,
          "pitch": 123,
          "consonant": "<string>",
          "consonant_length": 123
        }
      ],
      "accent": 123,
      "is_interrogative": false
    }
  ],
  "speedScale": 123,
  "pitchScale": 123,
  "intonationScale": 123,
  "volumeScale": 123,
  "prePhonemeLength": 123,
  "postPhonemeLength": 123,
  "outputSamplingRate": 123,
  "outputStereo": true,
  "pauseLength": 123,
  "pauseLengthScale": 1,
  "kana": "<string>"
}
'
import requests

url = "https://api.example.com/synthesis"

payload = {
"accent_phrases": [
{
"moras": [
{
"text": "<string>",
"vowel": "<string>",
"vowel_length": 123,
"pitch": 123,
"consonant": "<string>",
"consonant_length": 123
}
],
"accent": 123,
"is_interrogative": False
}
],
"speedScale": 123,
"pitchScale": 123,
"intonationScale": 123,
"volumeScale": 123,
"prePhonemeLength": 123,
"postPhonemeLength": 123,
"outputSamplingRate": 123,
"outputStereo": True,
"pauseLength": 123,
"pauseLengthScale": 1,
"kana": "<string>"
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
accent_phrases: [
{
moras: [
{
text: '<string>',
vowel: '<string>',
vowel_length: 123,
pitch: 123,
consonant: '<string>',
consonant_length: 123
}
],
accent: 123,
is_interrogative: false
}
],
speedScale: 123,
pitchScale: 123,
intonationScale: 123,
volumeScale: 123,
prePhonemeLength: 123,
postPhonemeLength: 123,
outputSamplingRate: 123,
outputStereo: true,
pauseLength: 123,
pauseLengthScale: 1,
kana: '<string>'
})
};

fetch('https://api.example.com/synthesis', 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.example.com/synthesis",
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([
'accent_phrases' => [
[
'moras' => [
[
'text' => '<string>',
'vowel' => '<string>',
'vowel_length' => 123,
'pitch' => 123,
'consonant' => '<string>',
'consonant_length' => 123
]
],
'accent' => 123,
'is_interrogative' => false
]
],
'speedScale' => 123,
'pitchScale' => 123,
'intonationScale' => 123,
'volumeScale' => 123,
'prePhonemeLength' => 123,
'postPhonemeLength' => 123,
'outputSamplingRate' => 123,
'outputStereo' => true,
'pauseLength' => 123,
'pauseLengthScale' => 1,
'kana' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);

$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.example.com/synthesis"

payload := strings.NewReader("{\n \"accent_phrases\": [\n {\n \"moras\": [\n {\n \"text\": \"<string>\",\n \"vowel\": \"<string>\",\n \"vowel_length\": 123,\n \"pitch\": 123,\n \"consonant\": \"<string>\",\n \"consonant_length\": 123\n }\n ],\n \"accent\": 123,\n \"is_interrogative\": false\n }\n ],\n \"speedScale\": 123,\n \"pitchScale\": 123,\n \"intonationScale\": 123,\n \"volumeScale\": 123,\n \"prePhonemeLength\": 123,\n \"postPhonemeLength\": 123,\n \"outputSamplingRate\": 123,\n \"outputStereo\": true,\n \"pauseLength\": 123,\n \"pauseLengthScale\": 1,\n \"kana\": \"<string>\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "application/json")

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.example.com/synthesis")
.header("Content-Type", "application/json")
.body("{\n \"accent_phrases\": [\n {\n \"moras\": [\n {\n \"text\": \"<string>\",\n \"vowel\": \"<string>\",\n \"vowel_length\": 123,\n \"pitch\": 123,\n \"consonant\": \"<string>\",\n \"consonant_length\": 123\n }\n ],\n \"accent\": 123,\n \"is_interrogative\": false\n }\n ],\n \"speedScale\": 123,\n \"pitchScale\": 123,\n \"intonationScale\": 123,\n \"volumeScale\": 123,\n \"prePhonemeLength\": 123,\n \"postPhonemeLength\": 123,\n \"outputSamplingRate\": 123,\n \"outputStereo\": true,\n \"pauseLength\": 123,\n \"pauseLengthScale\": 1,\n \"kana\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.example.com/synthesis")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"accent_phrases\": [\n {\n \"moras\": [\n {\n \"text\": \"<string>\",\n \"vowel\": \"<string>\",\n \"vowel_length\": 123,\n \"pitch\": 123,\n \"consonant\": \"<string>\",\n \"consonant_length\": 123\n }\n ],\n \"accent\": 123,\n \"is_interrogative\": false\n }\n ],\n \"speedScale\": 123,\n \"pitchScale\": 123,\n \"intonationScale\": 123,\n \"volumeScale\": 123,\n \"prePhonemeLength\": 123,\n \"postPhonemeLength\": 123,\n \"outputSamplingRate\": 123,\n \"outputStereo\": true,\n \"pauseLength\": 123,\n \"pauseLengthScale\": 1,\n \"kana\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
"<string>"
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}

Abfrageparameter

speaker
integer
erforderlich
enable_interrogative_upspeak
boolean
Standard:true

Automatically adjust sentence-final intonation when the text is interrogative

core_version
string

Body

application/json

Query for speech synthesis.

accent_phrases
AccentPhrase · object[]
erforderlich

List of accent phrases

speedScale
number
erforderlich

Overall speech speed

pitchScale
number
erforderlich

Overall pitch

intonationScale
number
erforderlich

Overall intonation

volumeScale
number
erforderlich

Overall volume

prePhonemeLength
number
erforderlich

Silence duration before the audio

postPhonemeLength
number
erforderlich

Silence duration after the audio

outputSamplingRate
integer
erforderlich

Output sampling rate of the audio data

outputStereo
boolean
erforderlich

Whether to output audio data in stereo

pauseLength
number | null

Silence duration for punctuation etc. Ignored when null. Default value is null.

pauseLengthScale
number
Standard:1

Silence duration for punctuation etc. (multiplier). Default value is 1.

kana
string

[Read-only] Text in AquesTalk-style notation. Ignored as a query for speech synthesis.

Antwort

Successful Response

The response is of type file.

Zuletzt geändert am 13. Juli 2026