{
  "aboutHtml": "<p>Google Chirp 3 on monikielinen automaattinen puheentunnistusmalli, joka muuntaa puhutun äänen tekstiksi. Google dokumentoi sen Speech-to-Text V2 -perheensä Chirp 3 -litterointimallina, jonka mallitunniste on chirp_3. Sen tarkoitus on tunnistaa tallennettua tai suoratoistettua puhetta kielentunnistuksen ja litterointikohtaisten ominaisuuksien avulla. Tuloksena syntyy litterointi ja valitun tunnistusmenetelmän tukemat metatiedot, ei luotua puhetta tai avoin avustajavastaus.</p><p>Valmistaja erottaa suoratoistotunnistuksen, lyhyiden leikkeiden synkronisen tunnistuksen ja pidempien tallenteiden erätunnistuksen. Valitse tila lähdeäänen ja vaaditun tuloksen mukaan. Lyhyelle ääniviestille valmis tekstivastaus voi riittää. Haastattelussa tai tallennetussa puhelussa puhujatietoja sisältävä erätulos voi olla hyödyllisempi. Pidä reaaliaikaisessa tekstityksessä tai puhekomentorajapinnassa välivaiheen teksti erillään lopullisesta tunnistustuloksesta ja säilytä sen kuvaama ääniaikaväli.</p><p>Valmistele ääni tunnistustoteutuksen odottamaan koodaukseen. Googlen Chirp 3 -esimerkit käyttävät tallennetuille tiedostoille automaattisesti tunnistettua dekoodausta ja raakamuotoisen suoratoiston kokoonpanolle nimenomaisesti määritettyä dekoodausta. Asiaan liittyvä V2-dekooderiviite luettelee tuettujen koodausten joukossa WAV PCM -äänen tai kompandoidun äänen, FLACin, MP3:n, Ogg/WebM Opusin ja AAC:n MP4-, M4A- tai MOV-säiliöissä. Säiliön nimi ei korvaa todellista koodekkia ja näytteenottoasetuksia. Säilytä puheen selkeys ja vältä voimakasta leikkautumista tai tarpeetonta muunnosta, joka hävittää kuultavia yksityiskohtia.</p><p>Chirp 3 voi tunnistaa vallitsevan kielen ja litteroida sen automaattisesti, ja odotettujen kieli- ja alueasetusten joukko voi rajata tunnistusvaihtoehtoja. Kielten saatavuus vaihtelee menetelmän ja ominaisuuden mukaan. Litterointikielten luettelo on laajempi kuin puhujanerottelun kieliluettelo, joten kielen tunnistaminen ei osoita kaikkien puhuja- tai ajoitusominaisuuksien soveltuvan siihen. Käytä tallennetta vastaavaa kieli- ja alueasetusta ja säilytä kielenvaihtoa sisältävät nimet tai erikoistermit tarkistettaviksi. Tunnistetun kielen merkintä on osa tulosta, ei näyttö siitä, että kaikki epätavalliset sanat tunnistettiin oikein.</p><p>Puhujanerottelu ryhmittelee yksikanavaisen tallenteen puheen äänen perusteella. Google tarjoaa erälitterointiesimerkin, jossa jokaisella sanalla on puhujatiedot. Säilytä haastattelussa nämä merkinnät tunnistetun tekstin yhteydessä ja vertaa puhujanvaihdoksia tallenteeseen ennen oikeiden nimien tai roolien liittämistä niihin. Samankaltaiset äänet, keskeytykset ja päällekkäinen puhe voivat vaikeuttaa kohdistamista. Pidä lähteen kanavajärjestely ja tarkoitettu puhujien tarkistustehtävä selkeinä sen sijaan, että pitäisit merkintää itsenäisesti varmennettuna henkilöllisyytenä.</p><p>Myös ajoitus on menetelmäkohtaista. Suoratoistotunnistus tarjoaa lausumatasoiset aikaleimat, kun taas valmistajan tiedostontunnistusohje kuvaa valinnaisen sanakohtaisen ajoituksen ja siihen mahdollisesti liittyvän litterointilaadun heikkenemisen. Säilytä valitun menetelmän todellisuudessa palauttamat metatiedot ja tarkista kohdistus sanamuodon rinnalla. Tekstitystyönkulku tarvitsee molemmat: luettavan tunnistetun tekstin ja näytön siitä, että ajoitusraja vastaa oikeaa ääntä. Google varoittaa myös, ettei palautettu sanakohtainen luottamusarvo ole todellinen luottamuspistemäärä, joten sitä ei tule käyttää sanan oikeellisuuden vahvistamiseen.</p><p>Puheentunnistuksen mukauttamista varten annetaan ilmauksia ja erisnimiä, joita tallenteessa todennäköisesti esiintyy. Valmistaja dokumentoi enintään 1 000 ilmauksen sanaston ja suosittelee mahdollisimman pientä määrää olennaisia merkintöjä, jotta muiden termien tunnistus ei heikkene. Valmistele tekniseen esitykseen lyhyt luettelo todellisista tuotenimistä ja lyhenteistä ja tarkista ne sitten litteroinnista. Painotus auttaa tunnistusta ottamaan termin huomioon; se ei osoita, että termi lausuttiin, eikä korvaa tarkistusta ääntä vasten.</p><p>Malli tuottaa automaattiset välimerkit ja isot alkukirjaimet, jotka dokumentoidussa rajapinnassa voi poistaa käytöstä. Google kuvaa myös esiversio-ominaisuuden mukautetuille litterointimuotoilun ohjeille, kuten sille, miten tietty nimi tai päivämäärä tulee kirjoittaa. Rajaa nämä ohjeet tunnistetun puheen muotoiluun. Päivämäärän normalisoivan tai brändin isolla alkukirjaimella kirjoittavan litteroinnin on silti säilytettävä puhutun sisällön merkitys. Yhteenveto, käännös tai tosiasioiden analyysi on litteroinnin myöhempää käyttöä, ei tunnistustuloksen itsessään osoittama asia.</p><p>Sisäänrakennettu kohinanvaimennus on tarkoitettu vähentämään taustamusiikkia ja ympäristön ääniä, kuten sadetta tai katumelua. Google toteaa nimenomaisesti, ettei se pysty poistamaan taustalla kuuluvia ihmisääniä. Säilytä tämä ero, kun valmistelet päällekkäistä keskustelua sisältävää tallennetta. Tarkista meluisat ja hiljaiset osuudet lähdettä vasten sen sijaan, että olettaisit siistimmän näköisen litteroinnin todistavan häiritsevän äänen poistuneen. Hyödyllinen tulos pitää epävarmat kohdat tunnistettavina korjaamista varten.</p><p>Suoratoistotehtävissä puhejakson päättymisen tunnistusherkkyys muuttaa sitä, milloin lausuma katsotaan päättyneeksi. Valmistaja kuvaa standard-, short- ja supershort-asetukset yhä lyhyemmälle odotetulle puheelle. Nopeampi asetus voi katkaista puhujan, joka pitää tauon kesken ajatuksen. Sovita asetus luonnolliseen saneluun, lyhyeen lauseeseen tai hyvin lyhyeen komentoon ja säilytä lopullisen tuloksen tila litteroinnin yhteydessä. Tarkista valmiista tiedostosta nimet, määrät, kiellot ja puhujien rajat ja säilytä sitten valittu tila ja lähdeääni, jotta tulos voidaan tarkistaa tai käyttää uudelleen.</p>",
  "aboutText": "Google Chirp 3 on monikielinen automaattinen puheentunnistusmalli, joka muuntaa puhutun äänen tekstiksi. Google dokumentoi sen Speech-to-Text V2 -perheensä Chirp 3 -litterointimallina, jonka mallitunniste on chirp_3. Sen tarkoitus on tunnistaa tallennettua tai suoratoistettua puhetta kielentunnistuksen ja litterointikohtaisten ominaisuuksien avulla. Tuloksena syntyy litterointi ja valitun tunnistusmenetelmän tukemat metatiedot, ei luotua puhetta tai avoin avustajavastaus.\n\nValmistaja erottaa suoratoistotunnistuksen, lyhyiden leikkeiden synkronisen tunnistuksen ja pidempien tallenteiden erätunnistuksen. Valitse tila lähdeäänen ja vaaditun tuloksen mukaan. Lyhyelle ääniviestille valmis tekstivastaus voi riittää. Haastattelussa tai tallennetussa puhelussa puhujatietoja sisältävä erätulos voi olla hyödyllisempi. Pidä reaaliaikaisessa tekstityksessä tai puhekomentorajapinnassa välivaiheen teksti erillään lopullisesta tunnistustuloksesta ja säilytä sen kuvaama ääniaikaväli.\n\nValmistele ääni tunnistustoteutuksen odottamaan koodaukseen. Googlen Chirp 3 -esimerkit käyttävät tallennetuille tiedostoille automaattisesti tunnistettua dekoodausta ja raakamuotoisen suoratoiston kokoonpanolle nimenomaisesti määritettyä dekoodausta. Asiaan liittyvä V2-dekooderiviite luettelee tuettujen koodausten joukossa WAV PCM -äänen tai kompandoidun äänen, FLACin, MP3:n, Ogg/WebM Opusin ja AAC:n MP4-, M4A- tai MOV-säiliöissä. Säiliön nimi ei korvaa todellista koodekkia ja näytteenottoasetuksia. Säilytä puheen selkeys ja vältä voimakasta leikkautumista tai tarpeetonta muunnosta, joka hävittää kuultavia yksityiskohtia.\n\nChirp 3 voi tunnistaa vallitsevan kielen ja litteroida sen automaattisesti, ja odotettujen kieli- ja alueasetusten joukko voi rajata tunnistusvaihtoehtoja. Kielten saatavuus vaihtelee menetelmän ja ominaisuuden mukaan. Litterointikielten luettelo on laajempi kuin puhujanerottelun kieliluettelo, joten kielen tunnistaminen ei osoita kaikkien puhuja- tai ajoitusominaisuuksien soveltuvan siihen. Käytä tallennetta vastaavaa kieli- ja alueasetusta ja säilytä kielenvaihtoa sisältävät nimet tai erikoistermit tarkistettaviksi. Tunnistetun kielen merkintä on osa tulosta, ei näyttö siitä, että kaikki epätavalliset sanat tunnistettiin oikein.\n\nPuhujanerottelu ryhmittelee yksikanavaisen tallenteen puheen äänen perusteella. Google tarjoaa erälitterointiesimerkin, jossa jokaisella sanalla on puhujatiedot. Säilytä haastattelussa nämä merkinnät tunnistetun tekstin yhteydessä ja vertaa puhujanvaihdoksia tallenteeseen ennen oikeiden nimien tai roolien liittämistä niihin. Samankaltaiset äänet, keskeytykset ja päällekkäinen puhe voivat vaikeuttaa kohdistamista. Pidä lähteen kanavajärjestely ja tarkoitettu puhujien tarkistustehtävä selkeinä sen sijaan, että pitäisit merkintää itsenäisesti varmennettuna henkilöllisyytenä.\n\nMyös ajoitus on menetelmäkohtaista. Suoratoistotunnistus tarjoaa lausumatasoiset aikaleimat, kun taas valmistajan tiedostontunnistusohje kuvaa valinnaisen sanakohtaisen ajoituksen ja siihen mahdollisesti liittyvän litterointilaadun heikkenemisen. Säilytä valitun menetelmän todellisuudessa palauttamat metatiedot ja tarkista kohdistus sanamuodon rinnalla. Tekstitystyönkulku tarvitsee molemmat: luettavan tunnistetun tekstin ja näytön siitä, että ajoitusraja vastaa oikeaa ääntä. Google varoittaa myös, ettei palautettu sanakohtainen luottamusarvo ole todellinen luottamuspistemäärä, joten sitä ei tule käyttää sanan oikeellisuuden vahvistamiseen.\n\nPuheentunnistuksen mukauttamista varten annetaan ilmauksia ja erisnimiä, joita tallenteessa todennäköisesti esiintyy. Valmistaja dokumentoi enintään 1 000 ilmauksen sanaston ja suosittelee mahdollisimman pientä määrää olennaisia merkintöjä, jotta muiden termien tunnistus ei heikkene. Valmistele tekniseen esitykseen lyhyt luettelo todellisista tuotenimistä ja lyhenteistä ja tarkista ne sitten litteroinnista. Painotus auttaa tunnistusta ottamaan termin huomioon; se ei osoita, että termi lausuttiin, eikä korvaa tarkistusta ääntä vasten.\n\nMalli tuottaa automaattiset välimerkit ja isot alkukirjaimet, jotka dokumentoidussa rajapinnassa voi poistaa käytöstä. Google kuvaa myös esiversio-ominaisuuden mukautetuille litterointimuotoilun ohjeille, kuten sille, miten tietty nimi tai päivämäärä tulee kirjoittaa. Rajaa nämä ohjeet tunnistetun puheen muotoiluun. Päivämäärän normalisoivan tai brändin isolla alkukirjaimella kirjoittavan litteroinnin on silti säilytettävä puhutun sisällön merkitys. Yhteenveto, käännös tai tosiasioiden analyysi on litteroinnin myöhempää käyttöä, ei tunnistustuloksen itsessään osoittama asia.\n\nSisäänrakennettu kohinanvaimennus on tarkoitettu vähentämään taustamusiikkia ja ympäristön ääniä, kuten sadetta tai katumelua. Google toteaa nimenomaisesti, ettei se pysty poistamaan taustalla kuuluvia ihmisääniä. Säilytä tämä ero, kun valmistelet päällekkäistä keskustelua sisältävää tallennetta. Tarkista meluisat ja hiljaiset osuudet lähdettä vasten sen sijaan, että olettaisit siistimmän näköisen litteroinnin todistavan häiritsevän äänen poistuneen. Hyödyllinen tulos pitää epävarmat kohdat tunnistettavina korjaamista varten.\n\nSuoratoistotehtävissä puhejakson päättymisen tunnistusherkkyys muuttaa sitä, milloin lausuma katsotaan päättyneeksi. Valmistaja kuvaa standard-, short- ja supershort-asetukset yhä lyhyemmälle odotetulle puheelle. Nopeampi asetus voi katkaista puhujan, joka pitää tauon kesken ajatuksen. Sovita asetus luonnolliseen saneluun, lyhyeen lauseeseen tai hyvin lyhyeen komentoon ja säilytä lopullisen tuloksen tila litteroinnin yhteydessä. Tarkista valmiista tiedostosta nimet, määrät, kiellot ja puhujien rajat ja säilytä sitten valittu tila ja lähdeääni, jotta tulos voidaan tarkistaa tai käyttää uudelleen.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "8504fbc1f239a49696437a0a7541e5ef3102b49caf068da9209fd6e0e4fb21f5",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fi",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">G</span><h2 id=\"sheet-title\">Google: Chirp 3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Sulje\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/chirp-3</code><button type=\"button\" id=\"copy-id\">Kopioi ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Mallikortin osiot\"><button type=\"button\" data-card-jump=\"overview\">Aloitus</button><button type=\"button\" data-card-jump=\"methods\">Syötteet &amp; menetelmät</button><button type=\"button\" data-card-jump=\"pricing\">Hinnoittelu</button><button type=\"button\" data-card-jump=\"examples\">Esimerkit</button><button type=\"button\" data-card-jump=\"results\">Tulokset</button><button type=\"button\" data-card-jump=\"aliases\">Aliakset</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-menetelmät\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|transcriptions|/v1/audio/transcriptions|google%2Fchirp-3\">Tunnistus</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Aloitus</h3><p class=\"mdesc-full\">Google Chirp 3 on monikielinen puheentunnistusmalli suoratoistoon, lyhyisiin tallenteisiin ja pidempien tallenteiden erälitterointiin. Se tarjoaa automaattisen kielentunnistuksen, välimerkit, sanastomukautuksen ja tilasta riippuvia ajoitus- tai puhujatietoja. Sen kohinanvaimennus vähentää taustamelua mutta ei pysty poistamaan muiden ihmisten ääniä.</p><dl class=\"card-io\" data-card-io><div><dt>Hyväksytyt syötteet</dt><dd>Ääni</dd></div><div><dt>Tulokset</dt><dd>Teksti</dd></div></dl><details class=\"card-about\"><summary>Tietoa mallista</summary><p class=\"note-s\" data-model-method-boundary>Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.</p><div class=\"mabout\" id=\"m-about\"><p>Google Chirp 3 on monikielinen automaattinen puheentunnistusmalli, joka muuntaa puhutun äänen tekstiksi. Google dokumentoi sen Speech-to-Text V2 -perheensä Chirp 3 -litterointimallina, jonka mallitunniste on chirp_3. Sen tarkoitus on tunnistaa tallennettua tai suoratoistettua puhetta kielentunnistuksen ja litterointikohtaisten ominaisuuksien avulla. Tuloksena syntyy litterointi ja valitun tunnistusmenetelmän tukemat metatiedot, ei luotua puhetta tai avoin avustajavastaus.</p><p>Valmistaja erottaa suoratoistotunnistuksen, lyhyiden leikkeiden synkronisen tunnistuksen ja pidempien tallenteiden erätunnistuksen. Valitse tila lähdeäänen ja vaaditun tuloksen mukaan. Lyhyelle ääniviestille valmis tekstivastaus voi riittää. Haastattelussa tai tallennetussa puhelussa puhujatietoja sisältävä erätulos voi olla hyödyllisempi. Pidä reaaliaikaisessa tekstityksessä tai puhekomentorajapinnassa välivaiheen teksti erillään lopullisesta tunnistustuloksesta ja säilytä sen kuvaama ääniaikaväli.</p><p>Valmistele ääni tunnistustoteutuksen odottamaan koodaukseen. Googlen Chirp 3 -esimerkit käyttävät tallennetuille tiedostoille automaattisesti tunnistettua dekoodausta ja raakamuotoisen suoratoiston kokoonpanolle nimenomaisesti määritettyä dekoodausta. Asiaan liittyvä V2-dekooderiviite luettelee tuettujen koodausten joukossa WAV PCM -äänen tai kompandoidun äänen, FLACin, MP3:n, Ogg/WebM Opusin ja AAC:n MP4-, M4A- tai MOV-säiliöissä. Säiliön nimi ei korvaa todellista koodekkia ja näytteenottoasetuksia. Säilytä puheen selkeys ja vältä voimakasta leikkautumista tai tarpeetonta muunnosta, joka hävittää kuultavia yksityiskohtia.</p><p>Chirp 3 voi tunnistaa vallitsevan kielen ja litteroida sen automaattisesti, ja odotettujen kieli- ja alueasetusten joukko voi rajata tunnistusvaihtoehtoja. Kielten saatavuus vaihtelee menetelmän ja ominaisuuden mukaan. Litterointikielten luettelo on laajempi kuin puhujanerottelun kieliluettelo, joten kielen tunnistaminen ei osoita kaikkien puhuja- tai ajoitusominaisuuksien soveltuvan siihen. Käytä tallennetta vastaavaa kieli- ja alueasetusta ja säilytä kielenvaihtoa sisältävät nimet tai erikoistermit tarkistettaviksi. Tunnistetun kielen merkintä on osa tulosta, ei näyttö siitä, että kaikki epätavalliset sanat tunnistettiin oikein.</p><p>Puhujanerottelu ryhmittelee yksikanavaisen tallenteen puheen äänen perusteella. Google tarjoaa erälitterointiesimerkin, jossa jokaisella sanalla on puhujatiedot. Säilytä haastattelussa nämä merkinnät tunnistetun tekstin yhteydessä ja vertaa puhujanvaihdoksia tallenteeseen ennen oikeiden nimien tai roolien liittämistä niihin. Samankaltaiset äänet, keskeytykset ja päällekkäinen puhe voivat vaikeuttaa kohdistamista. Pidä lähteen kanavajärjestely ja tarkoitettu puhujien tarkistustehtävä selkeinä sen sijaan, että pitäisit merkintää itsenäisesti varmennettuna henkilöllisyytenä.</p><p>Myös ajoitus on menetelmäkohtaista. Suoratoistotunnistus tarjoaa lausumatasoiset aikaleimat, kun taas valmistajan tiedostontunnistusohje kuvaa valinnaisen sanakohtaisen ajoituksen ja siihen mahdollisesti liittyvän litterointilaadun heikkenemisen. Säilytä valitun menetelmän todellisuudessa palauttamat metatiedot ja tarkista kohdistus sanamuodon rinnalla. Tekstitystyönkulku tarvitsee molemmat: luettavan tunnistetun tekstin ja näytön siitä, että ajoitusraja vastaa oikeaa ääntä. Google varoittaa myös, ettei palautettu sanakohtainen luottamusarvo ole todellinen luottamuspistemäärä, joten sitä ei tule käyttää sanan oikeellisuuden vahvistamiseen.</p><p>Puheentunnistuksen mukauttamista varten annetaan ilmauksia ja erisnimiä, joita tallenteessa todennäköisesti esiintyy. Valmistaja dokumentoi enintään 1 000 ilmauksen sanaston ja suosittelee mahdollisimman pientä määrää olennaisia merkintöjä, jotta muiden termien tunnistus ei heikkene. Valmistele tekniseen esitykseen lyhyt luettelo todellisista tuotenimistä ja lyhenteistä ja tarkista ne sitten litteroinnista. Painotus auttaa tunnistusta ottamaan termin huomioon; se ei osoita, että termi lausuttiin, eikä korvaa tarkistusta ääntä vasten.</p><p>Malli tuottaa automaattiset välimerkit ja isot alkukirjaimet, jotka dokumentoidussa rajapinnassa voi poistaa käytöstä. Google kuvaa myös esiversio-ominaisuuden mukautetuille litterointimuotoilun ohjeille, kuten sille, miten tietty nimi tai päivämäärä tulee kirjoittaa. Rajaa nämä ohjeet tunnistetun puheen muotoiluun. Päivämäärän normalisoivan tai brändin isolla alkukirjaimella kirjoittavan litteroinnin on silti säilytettävä puhutun sisällön merkitys. Yhteenveto, käännös tai tosiasioiden analyysi on litteroinnin myöhempää käyttöä, ei tunnistustuloksen itsessään osoittama asia.</p><p>Sisäänrakennettu kohinanvaimennus on tarkoitettu vähentämään taustamusiikkia ja ympäristön ääniä, kuten sadetta tai katumelua. Google toteaa nimenomaisesti, ettei se pysty poistamaan taustalla kuuluvia ihmisääniä. Säilytä tämä ero, kun valmistelet päällekkäistä keskustelua sisältävää tallennetta. Tarkista meluisat ja hiljaiset osuudet lähdettä vasten sen sijaan, että olettaisit siistimmän näköisen litteroinnin todistavan häiritsevän äänen poistuneen. Hyödyllinen tulos pitää epävarmat kohdat tunnistettavina korjaamista varten.</p><p>Suoratoistotehtävissä puhejakson päättymisen tunnistusherkkyys muuttaa sitä, milloin lausuma katsotaan päättyneeksi. Valmistaja kuvaa standard-, short- ja supershort-asetukset yhä lyhyemmälle odotetulle puheelle. Nopeampi asetus voi katkaista puhujan, joka pitää tauon kesken ajatuksen. Sovita asetus luonnolliseen saneluun, lyhyeen lauseeseen tai hyvin lyhyeen komentoon ja säilytä lopullisen tuloksen tila litteroinnin yhteydessä. Tarkista valmiista tiedostosta nimet, määrät, kiellot ja puhujien rajat ja säilytä sitten valittu tila ja lähdeääni, jotta tulos voidaan tarkistaa tai käyttää uudelleen.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Saatavilla Ailootissa · syötteet &amp; menetelmät</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Litterointi</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Syötetyypit</dt><dd><code>audio</code></dd></div><div><dt>Tulostyypit</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Kenttä</th><th>Tyyppi</th><th>Vaatimus</th><th>Arvot &amp; rajat</th><th>Oletus</th></tr></thead><tbody><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>google/chirp-3</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>object</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Menetelmän parametrit ja elinkaari</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametri</th><th>Sopimus</th></tr></thead><tbody><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>content_type</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>application/json</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>required</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>model, input_audio</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>material_types</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>audio</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>material_conditions</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>Esimerkki lukee todellisen, ei-tyhjän PCM WAV -tiedostosi, koodaa tiedoston kaikki tavut base64-muotoon ja lähettää input_audio.format-kentän arvona wav.</td></tr></tbody></table></div><p>Elinkaari: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · täsmällinen task_id olemassa olevasta käyttäjälle kuuluvasta mediatietueesta</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Hinnoittelu</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.</p><dl data-price-conditions><dt>Nopea tila</dt><dd>Ei määritetty <span class=\"note-s\">Kun nopea tila on valittu</span></dd><dt>Flex-tila</dt><dd>Ei määritetty <span class=\"note-s\">Kun flex-tila on valittu</span></dd><dt>Päättelyn enimmäisteho</dt><dd>Ei määritetty <span class=\"note-s\">Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-hinnat</h4><h4>Hinnat asetusten mukaan</h4><p class=\"note-s\">Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Asetukset</th><th>Hinnasto</th><th>Laskutusyksikkö</th><th>Veloitus</th></tr></thead><tbody><tr><th data-cell-label=\"Asetukset\" scope=\"row\"><span class=\"card-cell-label\">Asetukset</span>Tokenien perushinnat</th><td data-cell-label=\"Hinnasto\"><span class=\"card-cell-label\">Hinnasto</span>Perushinta</td><td data-cell-label=\"Laskutusyksikkö\"><span class=\"card-cell-label\">Laskutusyksikkö</span>—</td><td data-cell-label=\"Veloitus\"><span class=\"card-cell-label\">Veloitus</span><div><span>Syöte · Syötetokenit</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Tuloste · Tulostokenit</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Syöte · Välimuistin luku</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Syöte · Välimuistiin kirjoitus</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Syöte · Välimuistiin kirjoitus, 1 tunti</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div></td></tr><tr><th data-cell-label=\"Asetukset\" scope=\"row\"><span class=\"card-cell-label\">Asetukset</span>äänisyötteen sekunti</th><td data-cell-label=\"Hinnasto\"><span class=\"card-cell-label\">Hinnasto</span>—</td><td data-cell-label=\"Laskutusyksikkö\"><span class=\"card-cell-label\">Laskutusyksikkö</span>syöteäänen sekuntia kohden</td><td data-cell-label=\"Veloitus\"><span class=\"card-cell-label\">Veloitus</span><div><span>Syöte · äänisyötteen sekunti</span> <b>$0.000533333333334</b> <span class=\"price-unit\">syöteäänen sekuntia kohden</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. <a href=\"/docs/fi/billing/reserve/\">Varauksen ja lopullisen veloituksen toiminta →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Esimerkkipyynnöt</h3><h4>Ailoot Ultra · Litterointi</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Koodivaihtoehdot\"><button class=\"cg-tab\" id=\"model-code-1435-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1435-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · todellinen WAV-tiedosto ja koko alkuperäinen tulos</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopioi koodi\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1435-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1435-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;google/chirp-3&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#39;}}\nPath(&#39;request.json&#39;).write_text(json.dumps(request, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Vastaanota ja tallenna tulokset</h3><h4>Ailoot Ultra · Litterointi</h4><p class=\"note-s\">Koko alkuperäinen vastaussisältö, tila ja välitetyt otsakkeet. Tämä käsittelijä ei lisää yleistä JSON-rakennetta, tekstikenttää tai tehtävän käärettä.</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>Säilytä kaikki valmistuneet tulokset</h5><p class=\"note-s\">Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.</p><p class=\"note-s\">Säilytä koko vastaus ja otsakkeet, jokainen todellinen tuloste, alkuperäiset palautetut tunnisteet ja kaikki käyttötietokentät. Selvitä alkuperäisen operaation tila lähettämättä luontipyyntöä uudelleen.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jos alkuperäinen vastaus on tarkistettava</h5><p class=\"note-s\">Säilytä todellinen X-Client-Request-ID ja koko vastaus. Lue alkuperäisiä käyttäjälle kuuluvia aineistoja ja niiden täsmällisiä allekirjoitettuja sisällön URL-osoitteita; älä koskaan lähetä epävarmaa luontipyyntöä uudelleen.</p></div><details class=\"card-about\" data-output-fields><summary>Vastauksen kentät</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Kenttä</th><th>Tyyppi</th></tr></thead><tbody><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">text (when present)</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span></td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">usage (when present)</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span></td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Virheet ja seuraavat vaiheet</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Vastaus</th><th>Ehto</th><th>Seuraava vaihe</th></tr></thead><tbody><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>JSON-sisältö tai nimenomainen kanoninen mallin tunniste on virheellinen.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Säilytä vastaus ja korjaa ilmoitettu pyyntökenttä.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Ailoot API -avain on virheellinen.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Käytä käyttöön oikeutettua Ailoot API -avaintasi.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>403 · <code>permission_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Avaimen ryhmällä ei ole käyttöoikeutta tähän menetelmään.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Säilytä palautetut virheen lisätiedot.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Valitulla menetelmällä ei ole käyttöön hyväksyttyä reittiä.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Säilytä palautetut virheen lisätiedot.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Hyväksytyn hinnaston edellyttämää syötemäärää tai sen rajaa ei saada selville.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Säilytä vastaus; käytä hyväksytyn hinnaston edellyttämää syötteen esitysmuotoa.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>503 · <code></code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Vaadittu tallennustila, reitti, menetelmän hinta tai katevaraus ei ole saatavilla.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Säilytä koko alkuperäinen vastaus. Epävarma katevaraus ei oikeuta uudelleenlähetykseen.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>502 · <code>server_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Alkuperäinen tulos, käyttötiedot tai veloituksen lopullinen kirjaus on tarkistettava.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Säilytä todellinen pyynnön tunniste ja alkuperäinen vastaus. Lue olemassa olevaa käyttäjälle kuuluvaa tietuetta; älä lähetä luontipyyntöä uudelleen.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliakset</h3><h4>Mallin aliakset</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=google%2Fchirp-3&amp;route=Ultra&amp;caller=google%2Fchirp-3&amp;fmt=transcriptions\"><code>google/chirp-3</code></a></span></p><h4>Menetelmäpolkujen aliakset</h4><p class=\"note-s\">Käytä yllä näytettyjä menetelmäpolkuja.</p><h4>Liittyvät kutsujan ID:t</h4><p class=\"note-s\"><a href=\"#m=google%2Fchirp-3&amp;route=Ultra&amp;caller=google%2Fchirp-3&amp;fmt=transcriptions\"><code>google/chirp-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/chirp-3",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|google%2Fchirp-3",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "JSON-sisältö tai nimenomainen kanoninen mallin tunniste on virheellinen.",
                "http_status": 400,
                "recovery": "Säilytä vastaus ja korjaa ilmoitettu pyyntökenttä.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Ailoot API -avain on virheellinen.",
                "http_status": 401,
                "recovery": "Käytä käyttöön oikeutettua Ailoot API -avaintasi.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Avaimen ryhmällä ei ole käyttöoikeutta tähän menetelmään.",
                "http_status": 403,
                "recovery": "Säilytä palautetut virheen lisätiedot.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Valitulla menetelmällä ei ole käyttöön hyväksyttyä reittiä.",
                "http_status": 404,
                "recovery": "Säilytä palautetut virheen lisätiedot.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Hyväksytyn hinnaston edellyttämää syötemäärää tai sen rajaa ei saada selville.",
                "http_status": 422,
                "recovery": "Säilytä vastaus; käytä hyväksytyn hinnaston edellyttämää syötteen esitysmuotoa.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Vaadittu tallennustila, reitti, menetelmän hinta tai katevaraus ei ole saatavilla.",
                "http_status": 503,
                "recovery": "Säilytä koko alkuperäinen vastaus. Epävarma katevaraus ei oikeuta uudelleenlähetykseen.",
                "type": null
              },
              {
                "code": null,
                "condition": "Alkuperäinen tulos, käyttötiedot tai veloituksen lopullinen kirjaus on tarkistettava.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Säilytä todellinen pyynnön tunniste ja alkuperäinen vastaus. Lue olemassa olevaa käyttäjälle kuuluvaa tietuetta; älä lähetä luontipyyntöä uudelleen.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Säilytä todellinen X-Client-Request-ID ja koko vastaus. Lue alkuperäisiä käyttäjälle kuuluvia aineistoja ja niiden täsmällisiä allekirjoitettuja sisällön URL-osoitteita; älä koskaan lähetä epävarmaa luontipyyntöä uudelleen."
            },
            "outputs": {
              "all_results": "Säilytä koko vastaus ja otsakkeet, jokainen todellinen tuloste, alkuperäiset palautetut tunnisteet ja kaikki käyttötietokentät. Selvitä alkuperäisen operaation tila lähettämättä luontipyyntöä uudelleen.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Koko alkuperäinen vastaussisältö, tila ja välitetyt otsakkeet. Tämä käsittelijä ei lisää yleistä JSON-rakennetta, tekstikenttää tai tehtävän käärettä."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "google/chirp-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "google/chirp-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "google/chirp-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Esimerkki lukee todellisen, ei-tyhjän PCM WAV -tiedostosi, koodaa tiedoston kaikki tavut base64-muotoon ja lähettää input_audio.format-kentän arvona wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "täsmällinen task_id olemassa olevasta käyttäjälle kuuluvasta mediatietueesta",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'google/chirp-3', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Litterointi",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.000533333333334
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.000533333333334",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000533333333334",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "google/chirp-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "214b3f218dd84f28633e62e8c0078cc8644cf970686e3905f5e46f5a929af9c1",
    "input_html_sha256": "cb051f40fcfd0dabe6206608544d2d4a21c24ab83056f39b818f5008c296d24a",
    "private_audit_sha256": "f16fab29842fb111377b6d2488dd7932fb86919cbff6e059576858e93e7964ec",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fi/google-chirp-3/",
    "description": "Google Chirp 3 on monikielinen puheentunnistusmalli suoratoistoon, lyhyisiin tallenteisiin ja pidempien tallenteiden erälitterointiin. Se tarjoaa automaattisen kielentunnistuksen, välimerkit, sanastomukautuksen ja tilasta riippuvia ajoitus- tai puhujatietoja. Sen kohinanvaimennus vähentää taustamelua mutta ei pysty poistamaan muiden ihmisten ääniä.",
    "locale": "fi",
    "md_url": "https://ailoot.ai/models/fi/google-chirp-3/index.md",
    "title": "Google: Chirp 3 — Ailoot",
    "url": "https://ailoot.ai/models/fi/google-chirp-3/"
  },
  "rawModel": {
    "about": "Google Chirp 3 on monikielinen automaattinen puheentunnistusmalli, joka muuntaa puhutun äänen tekstiksi. Google dokumentoi sen Speech-to-Text V2 -perheensä Chirp 3 -litterointimallina, jonka mallitunniste on chirp_3. Sen tarkoitus on tunnistaa tallennettua tai suoratoistettua puhetta kielentunnistuksen ja litterointikohtaisten ominaisuuksien avulla. Tuloksena syntyy litterointi ja valitun tunnistusmenetelmän tukemat metatiedot, ei luotua puhetta tai avoin avustajavastaus.\n\nValmistaja erottaa suoratoistotunnistuksen, lyhyiden leikkeiden synkronisen tunnistuksen ja pidempien tallenteiden erätunnistuksen. Valitse tila lähdeäänen ja vaaditun tuloksen mukaan. Lyhyelle ääniviestille valmis tekstivastaus voi riittää. Haastattelussa tai tallennetussa puhelussa puhujatietoja sisältävä erätulos voi olla hyödyllisempi. Pidä reaaliaikaisessa tekstityksessä tai puhekomentorajapinnassa välivaiheen teksti erillään lopullisesta tunnistustuloksesta ja säilytä sen kuvaama ääniaikaväli.\n\nValmistele ääni tunnistustoteutuksen odottamaan koodaukseen. Googlen Chirp 3 -esimerkit käyttävät tallennetuille tiedostoille automaattisesti tunnistettua dekoodausta ja raakamuotoisen suoratoiston kokoonpanolle nimenomaisesti määritettyä dekoodausta. Asiaan liittyvä V2-dekooderiviite luettelee tuettujen koodausten joukossa WAV PCM -äänen tai kompandoidun äänen, FLACin, MP3:n, Ogg/WebM Opusin ja AAC:n MP4-, M4A- tai MOV-säiliöissä. Säiliön nimi ei korvaa todellista koodekkia ja näytteenottoasetuksia. Säilytä puheen selkeys ja vältä voimakasta leikkautumista tai tarpeetonta muunnosta, joka hävittää kuultavia yksityiskohtia.\n\nChirp 3 voi tunnistaa vallitsevan kielen ja litteroida sen automaattisesti, ja odotettujen kieli- ja alueasetusten joukko voi rajata tunnistusvaihtoehtoja. Kielten saatavuus vaihtelee menetelmän ja ominaisuuden mukaan. Litterointikielten luettelo on laajempi kuin puhujanerottelun kieliluettelo, joten kielen tunnistaminen ei osoita kaikkien puhuja- tai ajoitusominaisuuksien soveltuvan siihen. Käytä tallennetta vastaavaa kieli- ja alueasetusta ja säilytä kielenvaihtoa sisältävät nimet tai erikoistermit tarkistettaviksi. Tunnistetun kielen merkintä on osa tulosta, ei näyttö siitä, että kaikki epätavalliset sanat tunnistettiin oikein.\n\nPuhujanerottelu ryhmittelee yksikanavaisen tallenteen puheen äänen perusteella. Google tarjoaa erälitterointiesimerkin, jossa jokaisella sanalla on puhujatiedot. Säilytä haastattelussa nämä merkinnät tunnistetun tekstin yhteydessä ja vertaa puhujanvaihdoksia tallenteeseen ennen oikeiden nimien tai roolien liittämistä niihin. Samankaltaiset äänet, keskeytykset ja päällekkäinen puhe voivat vaikeuttaa kohdistamista. Pidä lähteen kanavajärjestely ja tarkoitettu puhujien tarkistustehtävä selkeinä sen sijaan, että pitäisit merkintää itsenäisesti varmennettuna henkilöllisyytenä.\n\nMyös ajoitus on menetelmäkohtaista. Suoratoistotunnistus tarjoaa lausumatasoiset aikaleimat, kun taas valmistajan tiedostontunnistusohje kuvaa valinnaisen sanakohtaisen ajoituksen ja siihen mahdollisesti liittyvän litterointilaadun heikkenemisen. Säilytä valitun menetelmän todellisuudessa palauttamat metatiedot ja tarkista kohdistus sanamuodon rinnalla. Tekstitystyönkulku tarvitsee molemmat: luettavan tunnistetun tekstin ja näytön siitä, että ajoitusraja vastaa oikeaa ääntä. Google varoittaa myös, ettei palautettu sanakohtainen luottamusarvo ole todellinen luottamuspistemäärä, joten sitä ei tule käyttää sanan oikeellisuuden vahvistamiseen.\n\nPuheentunnistuksen mukauttamista varten annetaan ilmauksia ja erisnimiä, joita tallenteessa todennäköisesti esiintyy. Valmistaja dokumentoi enintään 1 000 ilmauksen sanaston ja suosittelee mahdollisimman pientä määrää olennaisia merkintöjä, jotta muiden termien tunnistus ei heikkene. Valmistele tekniseen esitykseen lyhyt luettelo todellisista tuotenimistä ja lyhenteistä ja tarkista ne sitten litteroinnista. Painotus auttaa tunnistusta ottamaan termin huomioon; se ei osoita, että termi lausuttiin, eikä korvaa tarkistusta ääntä vasten.\n\nMalli tuottaa automaattiset välimerkit ja isot alkukirjaimet, jotka dokumentoidussa rajapinnassa voi poistaa käytöstä. Google kuvaa myös esiversio-ominaisuuden mukautetuille litterointimuotoilun ohjeille, kuten sille, miten tietty nimi tai päivämäärä tulee kirjoittaa. Rajaa nämä ohjeet tunnistetun puheen muotoiluun. Päivämäärän normalisoivan tai brändin isolla alkukirjaimella kirjoittavan litteroinnin on silti säilytettävä puhutun sisällön merkitys. Yhteenveto, käännös tai tosiasioiden analyysi on litteroinnin myöhempää käyttöä, ei tunnistustuloksen itsessään osoittama asia.\n\nSisäänrakennettu kohinanvaimennus on tarkoitettu vähentämään taustamusiikkia ja ympäristön ääniä, kuten sadetta tai katumelua. Google toteaa nimenomaisesti, ettei se pysty poistamaan taustalla kuuluvia ihmisääniä. Säilytä tämä ero, kun valmistelet päällekkäistä keskustelua sisältävää tallennetta. Tarkista meluisat ja hiljaiset osuudet lähdettä vasten sen sijaan, että olettaisit siistimmän näköisen litteroinnin todistavan häiritsevän äänen poistuneen. Hyödyllinen tulos pitää epävarmat kohdat tunnistettavina korjaamista varten.\n\nSuoratoistotehtävissä puhejakson päättymisen tunnistusherkkyys muuttaa sitä, milloin lausuma katsotaan päättyneeksi. Valmistaja kuvaa standard-, short- ja supershort-asetukset yhä lyhyemmälle odotetulle puheelle. Nopeampi asetus voi katkaista puhujan, joka pitää tauon kesken ajatuksen. Sovita asetus luonnolliseen saneluun, lyhyeen lauseeseen tai hyvin lyhyeen komentoon ja säilytä lopullisen tuloksen tila litteroinnin yhteydessä. Tarkista valmiista tiedostosta nimet, määrät, kiellot ja puhujien rajat ja säilytä sitten valittu tila ja lähdeääni, jotta tulos voidaan tarkistaa tai käyttää uudelleen.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.000533333333334",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000533333333334",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "Konfiguraation täydet hintatiedot lisätiedoissa."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "google/chirp-3",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "JSON-sisältö tai nimenomainen kanoninen mallin tunniste on virheellinen.",
                "http_status": 400,
                "recovery": "Säilytä vastaus ja korjaa ilmoitettu pyyntökenttä.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Ailoot API -avain on virheellinen.",
                "http_status": 401,
                "recovery": "Käytä käyttöön oikeutettua Ailoot API -avaintasi.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Avaimen ryhmällä ei ole käyttöoikeutta tähän menetelmään.",
                "http_status": 403,
                "recovery": "Säilytä palautetut virheen lisätiedot.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Valitulla menetelmällä ei ole käyttöön hyväksyttyä reittiä.",
                "http_status": 404,
                "recovery": "Säilytä palautetut virheen lisätiedot.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Hyväksytyn hinnaston edellyttämää syötemäärää tai sen rajaa ei saada selville.",
                "http_status": 422,
                "recovery": "Säilytä vastaus; käytä hyväksytyn hinnaston edellyttämää syötteen esitysmuotoa.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Vaadittu tallennustila, reitti, menetelmän hinta tai katevaraus ei ole saatavilla.",
                "http_status": 503,
                "recovery": "Säilytä koko alkuperäinen vastaus. Epävarma katevaraus ei oikeuta uudelleenlähetykseen.",
                "type": null
              },
              {
                "code": null,
                "condition": "Alkuperäinen tulos, käyttötiedot tai veloituksen lopullinen kirjaus on tarkistettava.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Säilytä todellinen pyynnön tunniste ja alkuperäinen vastaus. Lue olemassa olevaa käyttäjälle kuuluvaa tietuetta; älä lähetä luontipyyntöä uudelleen.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Säilytä todellinen X-Client-Request-ID ja koko vastaus. Lue alkuperäisiä käyttäjälle kuuluvia aineistoja ja niiden täsmällisiä allekirjoitettuja sisällön URL-osoitteita; älä koskaan lähetä epävarmaa luontipyyntöä uudelleen."
            },
            "outputs": {
              "all_results": "Säilytä koko vastaus ja otsakkeet, jokainen todellinen tuloste, alkuperäiset palautetut tunnisteet ja kaikki käyttötietokentät. Selvitä alkuperäisen operaation tila lähettämättä luontipyyntöä uudelleen.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Koko alkuperäinen vastaussisältö, tila ja välitetyt otsakkeet. Tämä käsittelijä ei lisää yleistä JSON-rakennetta, tekstikenttää tai tehtävän käärettä."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "google/chirp-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "google/chirp-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "google/chirp-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Esimerkki lukee todellisen, ei-tyhjän PCM WAV -tiedostosi, koodaa tiedoston kaikki tavut base64-muotoon ja lähettää input_audio.format-kentän arvona wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "täsmällinen task_id olemassa olevasta käyttäjälle kuuluvasta mediatietueesta",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'google/chirp-3', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Litterointi",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.000533333333334
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.000533333333334",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000533333333334",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "google/chirp-3",
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra"
      }
    ],
    "name": "Google: Chirp 3",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Google Chirp 3 on monikielinen puheentunnistusmalli suoratoistoon, lyhyisiin tallenteisiin ja pidempien tallenteiden erälitterointiin. Se tarjoaa automaattisen kielentunnistuksen, välimerkit, sanastomukautuksen ja tilasta riippuvia ajoitus- tai puhujatietoja. Sen kohinanvaimennus vähentää taustamelua mutta ei pysty poistamaan muiden ihmisten ääniä."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Google Chirp 3 on monikielinen puheentunnistusmalli suoratoistoon, lyhyisiin tallenteisiin ja pidempien tallenteiden erälitterointiin. Se tarjoaa automaattisen kielentunnistuksen, välimerkit, sanastomukautuksen ja tilasta riippuvia ajoitus- tai puhujatietoja. Sen kohinanvaimennus vähentää taustamelua mutta ei pysty poistamaan muiden ihmisten ääniä.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "59c23cbe152e482e9f40631e2482edb73e5e6497d1e047ff79592d4225f96457",
    "renderer_sha256": "303a59603e2bc29ba8fda690e95fd32cec68de223d92e26054a88babff801dd7"
  },
  "sourceRevision": "ff68690857601e7d5cf0c85689f50dd373905584af6abeb2e070b9e6732da536"
}
