Zum Hauptinhalt springen
POST
/
sing_frame_audio_query
Create query for singing voice synthesis
curl --request POST \
  --url https://api.example.com/sing_frame_audio_query \
  --header 'Content-Type: application/json' \
  --data '
{
  "notes": [
    {
      "frame_length": 123,
      "lyric": "<string>",
      "id": "<string>",
      "key": 123
    }
  ]
}
'
import requests

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

payload = { "notes": [
{
"frame_length": 123,
"lyric": "<string>",
"id": "<string>",
"key": 123
}
] }
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({notes: [{frame_length: 123, lyric: '<string>', id: '<string>', key: 123}]})
};

fetch('https://api.example.com/sing_frame_audio_query', 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/sing_frame_audio_query",
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([
'notes' => [
[
'frame_length' => 123,
'lyric' => '<string>',
'id' => '<string>',
'key' => 123
]
]
]),
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/sing_frame_audio_query"

payload := strings.NewReader("{\n \"notes\": [\n {\n \"frame_length\": 123,\n \"lyric\": \"<string>\",\n \"id\": \"<string>\",\n \"key\": 123\n }\n ]\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/sing_frame_audio_query")
.header("Content-Type", "application/json")
.body("{\n \"notes\": [\n {\n \"frame_length\": 123,\n \"lyric\": \"<string>\",\n \"id\": \"<string>\",\n \"key\": 123\n }\n ]\n}")
.asString();
require 'uri'
require 'net/http'

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

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 \"notes\": [\n {\n \"frame_length\": 123,\n \"lyric\": \"<string>\",\n \"id\": \"<string>\",\n \"key\": 123\n }\n ]\n}"

response = http.request(request)
puts response.read_body
{
  "f0": [
    123
  ],
  "volume": [
    123
  ],
  "phonemes": [
    {
      "phoneme": "<string>",
      "frame_length": 123,
      "note_id": "<string>"
    }
  ],
  "volumeScale": 123,
  "outputSamplingRate": 123,
  "outputStereo": true
}
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}

Abfrageparameter

speaker
integer
erforderlich
core_version
string

Body

application/json

Score information.

notes
Note · object[]
erforderlich

List of notes

Antwort

Successful Response

Frame-by-frame query for speech synthesis.

f0
number[]
erforderlich

Frame-by-frame fundamental frequency

volume
number[]
erforderlich

Frame-by-frame volume

phonemes
FramePhoneme · object[]
erforderlich

List of phonemes

volumeScale
number
erforderlich

Overall volume

outputSamplingRate
integer
erforderlich

Output sampling rate of the audio data

outputStereo
boolean
erforderlich

Whether to output audio data in stereo

Zuletzt geändert am 13. Juli 2026