Vai al contenuto principale
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": {}
}
]
}

Parametri della query

speaker
integer
obbligatorio
core_version
string

Corpo

application/json

Score information.

notes
Note · object[]
obbligatorio

List of notes

Risposta

Successful Response

Frame-by-frame query for speech synthesis.

f0
number[]
obbligatorio

Frame-by-frame fundamental frequency

volume
number[]
obbligatorio

Frame-by-frame volume

phonemes
FramePhoneme · object[]
obbligatorio

List of phonemes

volumeScale
number
obbligatorio

Overall volume

outputSamplingRate
integer
obbligatorio

Output sampling rate of the audio data

outputStereo
boolean
obbligatorio

Whether to output audio data in stereo

Ultima modifica il 13 luglio 2026