Tavallinen syntetisointi
Syntetisoi ääntä ja palauttaa vastaavaan äänidatan suoraan pyynnön vastauksena. Tämä on tarkoitettu lyhyempien näytteiden tuottamiseen.
HTTP-pyyntö
POST https://api.aimater.com/tts/v1/synthesize
Pyynnön runko
Sisältää syntetisoitavan syötetekstin JSON-objektissa.
{
"input": {
"text": string,
"ssml": string
},
"voice": {
"languageCode": string
},
"audioConfig": {
"audioEncoding": string,
"speakingRate": number,
"volumeGainDb": number
},
"responseConfig": {
"responseType": string
},
"auth": {
"key": string
}
}
Kentät
input
Syöte voidaan antaa joko raakatekstinä tai SSML-muodossa.text: string
- Syntetisoitava raakateksti. Enintään 1000 merkkiä.
ssml: string
- Syöte SSML-muodossa. Enintään 1500 merkkiä. Katso SSML.
voice
languageCode: string
- Syntetisoitavan materiaalin kielikoodi. Vaihtoehdot
fi
,sv-fi
jaen
. Puuttuessa oletetaanfi
.
- Syntetisoitavan materiaalin kielikoodi. Vaihtoehdot
audioConfig
audioEncoding: string
- Syntetisoidun äänen koodaus. Vaihtoehdot
WAV
/LINEAR16
,MP3
jaRAW
(WAV ilman headeriä). Oletuksena WAV.
- Syntetisoidun äänen koodaus. Vaihtoehdot
speakingRate: number
- Syntetisoidun äänen nopeuskerroin väliltä [
0.5
,2.0
]. Oletuksena1.0
.
- Syntetisoidun äänen nopeuskerroin väliltä [
volumeGainDb: number
- Syntetisoidun äänen vahvistus desibeleinä. Oletuksena
0.0
.
- Syntetisoidun äänen vahvistus desibeleinä. Oletuksena
responseConfig
responseType: string
- Vastaustyyppi. Vaihtoehdot
JSON
jaBINARY
. OletuksenaJSON
.
- Vastaustyyppi. Vaihtoehdot
auth
key: string
- Rajapinnan todentamisavain. Puuttuessa tai avaimen ollessa väärä palautetaan HTTP-koodi 401.
Vastauksen runko
Jos pyyntö on onnistunut, vastauksen runko sisältää seuraavasti muotoiltua dataa.
Pyydetty vastaustyyppi vaikuttaa vastauksen runkoon. Vastaustyypin ollessa binääri, on runko suoraan syntetisoitu data.
Jos taas tyyppi on JSON, näyttää runko tältä:
{
"audioContent": string
}
Kentät
audioContent: string
- Äänidata base64-koodattuna.
Virhetilanteissa vastauksen runko sisältää virheviestin:
{
"error": string
}
Kentät
error: string
- Virheviesti, joka kertoo mikä annetuissa parametreissä ei ole sallittua.
Virhetilanteissa vastauksen runko on aina JSON:ia, vaikka pyydetty tyyppi olisikin binääri.
Eräsynteesi
Tämä on tarkoitettu pitkien tekstien syntetisointiin. Eräsynteesi tehdään kahdella eri pyynnöllä. Ensimmäisellä pyynnöllä annetaan syntetisoitava teksti, joka aloittaa syntetisoinnin taustalla. Syötteen pituudesta riippuen tässä voi kestää useita minuutteja. Toisella pyynnöllä pyydetään äänidata, kun se on valmistunut.
Eräsynteesin aloitus
HTTP-pyyntö
POST https://api.aimater.com/tts/v1/batch/synthesize
Pyynnön runko
Sisältää syntetisoitavan syötetekstin JSON-objektissa.
{
"input": {
"text": string,
"ssml": string
},
"voice": {
"languageCode": string
},
"audioConfig": {
"audioEncoding": string,
"speakingRate": number,
"volumeGainDb": number
},
"responseConfig": {
"responseType": string
},
"auth": {
"key": string
}
}
Kentät
input
Syöte voidaan antaa joko raakatekstinä tai SSML-muodossa.text: string
- Syntetisoitava raakateksti.
ssml: string
- Syöte SSML-muodossa. Katso SSML.
voice
languageCode: string
- Syntetisoitavan materiaalin kielikoodi. Vaihtoehdot
fi
,fi-sv
jaen
. Puuttuessa oletetaanfi
.
- Syntetisoitavan materiaalin kielikoodi. Vaihtoehdot
audioConfig
audioEncoding: string
- Syntetisoidun äänen koodaus. Vaihtoehdot
WAV
/LINEAR16
,MP3
jaRAW
(WAV ilman headeriä).
- Syntetisoidun äänen koodaus. Vaihtoehdot
speakingRate: number
- Syntetisoidun äänen nopeuskerroin väliltä [
0.5
,2.0
]. Oletuksena1.0
.
- Syntetisoidun äänen nopeuskerroin väliltä [
volumeGainDb: number
- Syntetisoidun äänen vahvistus desibeleinä. Oletuksena
0.0
.
- Syntetisoidun äänen vahvistus desibeleinä. Oletuksena
responseConfig
responseType: string
- Vastaustyyppi. Vaihtoehdot
JSON
jaBINARY
. OletuksenaJSON
.
- Vastaustyyppi. Vaihtoehdot
auth
key: string
- Rajapinnan todentamisavain. Puuttuessa tai avaimen ollessa väärä palautetaan HTTP-koodi 401.
Vastauksen runko
Jos pyyntö on onnistunut, vastauksen runko sisältää seuraavasti muotoiltua JSON-dataa:
{
"audioId": string
}
Kentät
audioId: string
- UUID-tunniste, jota käyttäen äänidata voidaan hakea.
Virhetilanteissa vastauksen runko sisältää virheviestin:
{
"error": string
}
Kentät
error: string
- Virheviesti, joka kertoo mikä annetuissa parametreissä ei ole sallittua.
Eräsynteesin valmiin äänidatan hakeminen
HTTP-pyyntö
POST https://api.aimater.com/tts/v1/batch/fetch
Pyynnön runko
Sisältää syntetisoidun äänidataa vastaavan UUID-tunnisteen JSON-objektissa.
{
"input": {
"audioId": string
},
"auth": {
"key": string
}
}
Kentät
input
audioId: string
- Vastaava UUID-tunniste, joka on saatu aikaisemmalla pyynnöllä.
auth
key: string
- Rajapinnan todentamisavain. Puuttuessa tai avaimen ollessa väärä palautetaan HTTP-koodi 401.
Vastauksen runko
Jos pyyntö on onnistunut, vastauksen runko sisältää seuraavasti muotoiltua dataa.
Pyydetty vastaustyyppi vaikuttaa vastauksen runkoon. Vastaustyypin ollessa binääri, on runko suoraan syntetisoitu data.
Jos taas tyyppi on JSON, näyttää runko tältä:
{
"audioContent": string
}
Kentät
audioContent: string
- Äänidata base64-koodattuna.
Jos syntetisointi on yhä kesken tai se on epäonnistunut, vastauksen rungossa on tästä virheviesti:
{
"error": string
}
Kentät
error: string
- Virheviesti. Tämä vaihtuu riippuen siitä, onko syntetisointi vielä kesken vai onko se epäonnistunut.
Vastauksen tilakoodeista näkee myös suoraan syntetisoinnin tilan:
valmis: 200
keskeneräinen: 202
epäonnistunut: 400
Virhetilanteissa tai ajon ollessa yhä keskeneräinen vastauksen runko on aina JSON:ia, vaikka pyydetty tyyppi olisikin binääri.
SSML
SSML-syötteen tulee olla <speak>
-tagien sisällä.
<speak> Testi. </speak>
Tuetut SSML-tagit
Tauko
<break>
Attribuutit:
- time
- Määirttelee tauon pituuden joko millisekunneissa (ms
) tai sekunneissa (s
).
Esimerkki:
<speak> Sekunnin tauko. <break time="1s" /> Puolen sekunnin tauko. <break time="500ms" /> </speak>
Esimerkit
Raakateksti
Syöte
{
"input": {
"text": "Tämä on testi."
},
"voice": {
"languageCode": "fi"
},
"auth": {
"key": "12345678-9abc-def1-2345-6789abcdef12"
}
}
Tuloste
{
"audioContent": "UklGRlYHAQBXQVZFZm10IBAAAAABAAEAwF0AAIC7AAACABAAZGF0YTIHAQAAAAAAAAA..."
}
SSML
Syöte
{
"input": {
"ssml": "<speak>Tämä on testi. <break time=\"1s\" /></speak>"
},
"voice": {
"languageCode": "fi"
},
"auth": {
"key": "12345678-9abc-def1-2345-6789abcdef12"
}
}
Tuloste
{
"audioContent": "UklGRlYHAQBXQVZFZm10IBAAAAABAAEAwF0AAIC7AAACABAAZGF0YTIHAQAAAAAAAAA..."
}
Eräsyntetisoinnin aloitus
Syöte
{
"input": {
"text": "Tämä on pitkä, monen tuhannen merkin mittainen teksti ...."
},
"voice": {
"languageCode": "fi"
},
"auth": {
"key": "12345678-9abc-def1-2345-6789abcdef12"
}
}
Tuloste
{
"audioId": "e8cb3912-543b-43a2-89c5-48b0867c54dd"
}
Eräsyntetisoidun äänen hakeminen
Syöte
{
"input": {
"audioId": "e8cb3912-543b-43a2-89c5-48b0867c54dd"
},
"auth": {
"key": "12345678-9abc-def1-2345-6789abcdef12"
}
}
Tuloste
{
"audioContent": "UklGRlYHAQBXQVZFZm10IBAAAAABAAEAwF0AAIC7AAACABAAZGF0YTIHAQAAAAAAAAA..."
}