Producer tekst naar muziek
Gebruik het eindpunt voor tekst naar muziek om een asynchrone taak aan te maken.
Overzicht
Gebruik het eindpunt voor tekst naar muziek met een ondersteund model. Gebruik de geretourneerde taak-ID om de status op te halen, of geef callback_url op voor de hieronder gedocumenteerde leveringen.
Snelstart
- Maak een API-sleutel aan en stel deze in als RUNAPI_API_KEY.
- Kies een ondersteund model en stuur een POST-verzoek waarvan de body overeenkomt met het schema van dat model.
- Sla de geretourneerde taak-ID op en poll vervolgens totdat een eindstatus is bereikt, of verwerk de hieronder gedocumenteerde callbacks.
Eindpunt
- Basis-URL
https://runapi.ai- API-versie
v1- Authenticatie
Authorization: Bearer YOUR_API_TOKEN
Ondersteunde modellen
Open een modelpagina voor actuele prijzen, snelheidslimieten en details over commercieel gebruik.
Verzoekschema
Velden en toegestane waarden zijn afhankelijk van het geselecteerde model. Indien opgegeven, ontvangt callback_url de hieronder gedocumenteerde taakaflevering.
fuzz-0.86 velden
callback_urlstringWebhook-URL voor asynchrone meldingen.
lyricsstringExacte songteksten om te zingen.
modelstringModel-slug.
promptstringMuziekstijl en productiebriefing.
Bereik:1 - 200
titlestringMuziekitel.
vocal_modestringVocale generatiemodus.
Toegestane waarden:exact_lyrics, instrumental
fuzz-1.06 velden
callback_urlstringWebhook-URL voor asynchrone meldingen.
lyricsstringExacte songteksten om te zingen.
modelstringModel-slug.
promptstringMuziekstijl en productiebriefing.
Bereik:1 - 200
titlestringMuziekitel.
vocal_modestringVocale generatiemodus.
Toegestane waarden:exact_lyrics, instrumental
fuzz-1.0-pro6 velden
callback_urlstringWebhook-URL voor asynchrone meldingen.
lyricsstringExacte songteksten om te zingen.
modelstringModel-slug.
promptstringMuziekstijl en productiebriefing.
Bereik:1 - 200
titlestringMuziekitel.
vocal_modestringVocale generatiemodus.
Toegestane waarden:exact_lyrics, instrumental
fuzz-1.16 velden
callback_urlstringWebhook-URL voor asynchrone meldingen.
lyricsstringExacte songteksten om te zingen.
modelstringModel-slug.
promptstringMuziekstijl en productiebriefing.
Bereik:1 - 200
titlestringMuziekitel.
vocal_modestringVocale generatiemodus.
Toegestane waarden:exact_lyrics, instrumental
fuzz-1.1-pro6 velden
callback_urlstringWebhook-URL voor asynchrone meldingen.
lyricsstringExacte songteksten om te zingen.
modelstringModel-slug.
promptstringMuziekstijl en productiebriefing.
Bereik:1 - 200
titlestringMuziekitel.
vocal_modestringVocale generatiemodus.
Toegestane waarden:exact_lyrics, instrumental
fuzz-2.06 velden
callback_urlstringWebhook-URL voor asynchrone meldingen.
lyricsstringExacte songteksten om te zingen.
modelstringModel-slug.
promptstringMuziekstijl en productiebriefing.
Bereik:1 - 200
titlestringMuziekitel.
vocal_modestringVocale generatiemodus.
Toegestane waarden:exact_lyrics, instrumental
fuzz-2.0-pro6 velden
callback_urlstringWebhook-URL voor asynchrone meldingen.
lyricsstringExacte songteksten om te zingen.
modelstringModel-slug.
promptstringMuziekstijl en productiebriefing.
Bereik:1 - 200
titlestringMuziekitel.
vocal_modestringVocale generatiemodus.
Toegestane waarden:exact_lyrics, instrumental
fuzz-2.0-raw6 velden
callback_urlstringWebhook-URL voor asynchrone meldingen.
lyricsstringExacte songteksten om te zingen.
modelstringModel-slug.
promptstringMuziekstijl en productiebriefing.
Bereik:1 - 200
titlestringMuziekitel.
vocal_modestringVocale generatiemodus.
Toegestane waarden:exact_lyrics, instrumental
Voorwaardelijke regels
Deze vereisten zijn van toepassing wanneer alle vermelde voorwaarden overeenkomen.
-
Wanneer
vocal_mode = exact_lyrics- Vereist
lyrics- Niet geaccepteerd
-
Wanneer
vocal_mode = instrumental- Vereist
- Niet geaccepteerd
lyrics
Acceptatie aanmaken
POST /api/v1/producer/text_to_music
Responsschema
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"status": {
"enum": [
"processing"
],
"type": "string"
},
"task_replayed": {
"type": "boolean"
}
},
"required": [
"id",
"status",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "processing"
}
Pollen bezig
GET /api/v1/producer/text_to_music/:id
Responsschema
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"status": {
"enum": [
"processing"
],
"type": "string"
}
},
"required": [
"id",
"status",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "processing"
}
Pollen voltooid
GET /api/v1/producer/text_to_music/:id
Responsschema
{
"properties": {
"audios": {
"items": {
"properties": {
"audio_url": {
"type": "string",
"x-runapi-generated-media": true
},
"duration_seconds": {
"type": "number"
},
"id": {
"type": "string"
},
"image_url": {
"type": "string",
"x-runapi-generated-media": true
},
"lyrics": {
"type": "string"
},
"model_name": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"id",
"audio_url",
"model_name"
],
"type": "object",
"unevaluatedProperties": false
},
"type": "array"
},
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"generation_stage": {
"enum": [
"all_audios_ready"
],
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"completed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"generation_stage",
"audios",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"audios": [
{
"audio_url": "https://file.runapi.ai/reference-audio.mp3",
"duration_seconds": 78.36,
"id": "audio_reference",
"image_url": "https://cdn.runapi.ai/public/samples/image.jpg",
"lyrics": "[Instrumental]",
"model_name": "fuzz-2.0",
"title": "Soft Piano"
}
],
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"generation_stage": "all_audios_ready",
"id": "tsk_reference_demo",
"status": "completed"
}
Pollen mislukt
GET /api/v1/producer/text_to_music/:id
Responsschema
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"error": {
"type": "string"
},
"generation_stage": {
"enum": [
"failed"
],
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"failed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"error",
"generation_stage",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"error": "Task processing failed.",
"generation_stage": "failed",
"id": "tsk_reference_demo",
"status": "failed"
}
Callback van klant: voltooid
POST callback_url
Responsschema
{
"properties": {
"audios": {
"items": {
"properties": {
"audio_url": {
"type": "string",
"x-runapi-generated-media": true
},
"duration_seconds": {
"type": "number"
},
"id": {
"type": "string"
},
"image_url": {
"type": "string",
"x-runapi-generated-media": true
},
"lyrics": {
"type": "string"
},
"model_name": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"id",
"audio_url",
"model_name"
],
"type": "object",
"unevaluatedProperties": false
},
"type": "array"
},
"generation_stage": {
"enum": [
"all_audios_ready"
],
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"completed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"generation_stage",
"audios"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"audios": [
{
"audio_url": "https://file.runapi.ai/reference-audio.mp3",
"duration_seconds": 78.36,
"id": "audio_reference",
"image_url": "https://cdn.runapi.ai/public/samples/image.jpg",
"lyrics": "[Instrumental]",
"model_name": "fuzz-2.0",
"title": "Soft Piano"
}
],
"generation_stage": "all_audios_ready",
"id": "tsk_reference_demo",
"status": "completed"
}
Callback van klant: mislukt
POST callback_url
Responsschema
{
"properties": {
"error": {
"oneOf": [
{
"type": "string"
},
{
"properties": {
"code": {
"type": "string"
},
"limit_cents": {
"type": "integer"
},
"message": {
"type": "string"
},
"reset_at": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"used_cents": {
"type": "integer"
},
"window": {
"enum": [
"1h",
"1d",
"7d",
"daily",
"weekly",
"monthly",
"lifetime"
],
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object",
"unevaluatedProperties": false
}
]
},
"generation_stage": {
"enum": [
"failed"
],
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"failed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"error",
"generation_stage"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"error": {
"code": "generation_failed",
"message": "Task processing failed."
},
"generation_stage": "failed",
"id": "tsk_reference_demo",
"status": "failed"
}
Fouten
POST /api/v1/producer/text_to_music
Responsschema
{
"properties": {
"error": {
"description": "Leesbare foutmelding.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"error": "Authentication required"
}
Fouten
GET /api/v1/producer/text_to_music/:id
Responsschema
{
"properties": {
"error": {
"description": "Leesbare foutmelding.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"error": "Authentication required"
}
Fouten
POST /api/v1/producer/text_to_music
Responsschema
{
"oneOf": [
{
"properties": {
"error": {
"description": "Leesbare foutmelding.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
},
{
"properties": {
"error": {
"description": "Leesbare validatiesamenvatting.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Validatieberichten gekoppeld aan het openbare aanvraagveld, met een reeks leesbare tekenreeksen per veld.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
]
}
Responsvoorbeeld
{
"error": "model must be one of: fuzz-0.8, fuzz-1.0, fuzz-1.0-pro, fuzz-1.1, fuzz-1.1-pro, fuzz-2.0, fuzz-2.0-pro, fuzz-2.0-raw"
}
Fouten
POST /api/v1/producer/text_to_music
Responsschema
{
"properties": {
"error": {
"description": "Leesbare foutmelding.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"error": "Insufficient balance"
}
Fouten
POST /api/v1/producer/text_to_music
Responsschema
{
"properties": {
"error": {
"description": "Leesbare foutmelding.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"error": "API key credit limit exceeded"
}
Fouten
POST /api/v1/producer/text_to_music
Responsschema
{
"properties": {
"error": {
"description": "Leesbare foutmelding.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"error": "The request uses features that are not supported for the selected model"
}
Fouten
POST /api/v1/producer/text_to_music
Responsschema
{
"properties": {
"error": {
"description": "Leesbare foutmelding.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"error": "Rate limit reached. Please retry later."
}
Fouten
POST /api/v1/producer/text_to_music
Responsschema
{
"properties": {
"error": {
"description": "Leesbare foutmelding.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"error": "Service under maintenance, please try again later"
}
Fouten
POST /api/v1/producer/text_to_music
Responsschema
{
"properties": {
"error": {
"description": "Leesbare foutmelding.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"error": "The request timed out"
}
Fouten
GET /api/v1/producer/text_to_music/:id
Responsschema
{
"properties": {
"error": {
"description": "Leesbare foutmelding.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Responsvoorbeeld
{
"error": "Task with id 'tsk_reference_demo' not found"
}
Gegenereerde codevoorbeelden
Gebruik cURL rechtstreeks, of installeer een SDK voor uw taal. Elk voorbeeld dient het gevalideerde verzoek in dat in deze referentie wordt getoond.
Installeren
pip install runapi-producer
import os
from runapi.producer import ProducerClient
client = ProducerClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.text_to_music.create(
model="fuzz-2.0",
vocal_mode="instrumental",
prompt="Soft piano with gentle percussion."
)