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": {}
}
]
}Create query for singing voice synthesis
Get initial values for singing voice synthesis query. The query obtained here can be used directly for Singing Voice Synthesis. Refer to Schemas for the meaning of each value.
Laravel Implementation Status: ✅ Fully supported by Core (fallback implemented)
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": {}
}
]
}ボディ
application/json
Score information.
List of notes
Show child attributes
Show child attributes
レスポンス
Successful Response
Frame-by-frame query for speech synthesis.
Frame-by-frame fundamental frequency
Frame-by-frame volume
List of phonemes
Show child attributes
Show child attributes
Overall volume
Output sampling rate of the audio data
Whether to output audio data in stereo
最終更新日 2026年8月2日
関連トピック
Get frame-by-frame volume from a score / singing voice synthesis queryGet frame-by-frame fundamental frequency from a score / singing voice synthesis queryCreate query for speech synthesisCreate query for speech synthesis using presetEngine API Mode: Song (Singing Synthesis) - VOICEVOX for Laravel⌘I