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 ja en. Puuttuessa oletetaan fi.
  • audioConfig
    • audioEncoding: string
      • Syntetisoidun äänen koodaus. Vaihtoehdot WAV/LINEAR16, MP3 ja RAW (WAV ilman headeriä). Oletuksena WAV.
    • speakingRate: number
      • Syntetisoidun äänen nopeuskerroin väliltä [0.5, 2.0]. Oletuksena 1.0.
    • volumeGainDb: number
      • Syntetisoidun äänen vahvistus desibeleinä. Oletuksena 0.0.
  • responseConfig
    • responseType: string
      • Vastaustyyppi. Vaihtoehdot JSON ja BINARY. Oletuksena JSON.
  • 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 ja en. Puuttuessa oletetaan fi.
  • audioConfig
    • audioEncoding: string
      • Syntetisoidun äänen koodaus. Vaihtoehdot WAV/LINEAR16, MP3 ja RAW (WAV ilman headeriä).
    • speakingRate: number
      • Syntetisoidun äänen nopeuskerroin väliltä [0.5, 2.0]. Oletuksena 1.0.
    • volumeGainDb: number
      • Syntetisoidun äänen vahvistus desibeleinä. Oletuksena 0.0.
  • responseConfig
    • responseType: string
      • Vastaustyyppi. Vaihtoehdot JSON ja BINARY. Oletuksena JSON.
  • 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..."
}