{
  "aboutHtml": "<p>Qwen-Audio-3.0-TTS-Flash omvandlar ett tillhandahållet manus till tal, med Flash-versionens fokus på interaktion i realtid. Qwen anger röstassistenter, interaktiv dialog och intelligent kundservice som de främsta användningsområdena. Jämfört med föregående version beskriver tillverkaren ett bredare stöd för språk med begränsade språkresurser och kinesiska dialekter, mer autentiskt dialektuttryck samt bättre styrning av känsla, ton, karaktär, hastighet, volym och talstil. Tillverkaren rapporterar också förbättrad tydlighet och robusthet i akustiska miljöer med buller eller efterklang. Detta är syntes från text till ljud, inte igenkänning av inkommande tal eller en modell för röstdialog.</p><p>Flash prioriterar att talet kommer i gång snabbt i ett interaktivt utbyte. Qwen rapporterar en latens på högst 200 millisekunder till det första paketet för modellens realtidssyntes; användarguiden påpekar också att den inledande anslutningen bidrar till den uppmätta fördröjningen vid den första textinlämningen. Förbered de ord som faktiskt ska sägas separat från det önskade framförandet. För ett svar från en röstassistent kan ett exempel på en instruktion kombinera ett kortfattat svar med ett lugnt och tydligt framförande. Det relevanta resultatet är det genererade talet för den texten, medan applikationen hanterar uppspelningen och den omgivande konversationen.</p><p>Tillverkarens lista över systemröster innehåller modellspecifika alternativ som Long An Feng Yue för ett naturligt, vänligt framförande och Long An Xiao Xin för ett vänligt, livligt framförande, båda angivna för mandarin och engelska. Den innehåller också engelska röster som loongmary med brittisk accent och loongjohn med lugn, vänlig amerikansk accent. Varje modell har dessutom fler än 500 basröster. Qwen rekommenderar att börja med systemröster för ett konsekvent resultat och att bedöma förhandslyssningar när en basröst väljs. Rösten måste tillhöra den valda modellen och manuset måste vara på ett språk som rösten stöder.</p><p>Klonade röster utökar det dokumenterade språkstödet till kinesiska, engelska, japanska, koreanska, ryska, franska, tyska, portugisiska, thailändska, indonesiska, vietnamesiska, spanska, italienska, malajiska, filipino och arabiska. Stödet för kinesiska omfattar mandarin och kantonesiska samt varieteter från Chongqing, nordöstra Kina, Gansu, Guizhou, Zhejiang, Hebei, Henan, Hubei, Hunan, Jiangxi, Ningbo, Ningxia, Qingdao, Shaanxi, Shanxi, Shandong, Shanghai, Sichuan och Yunnan, med dialektval genom instruktioner. Modelltabellen stöder röstkloning från ljudprov och skiljer det från att skapa en ny röst enbart utifrån en textbeskrivning, vilket denna version inte stöder.</p><p>För kloning rekommenderar tillverkaren en inspelning på 10–20 sekunder, med en maximal längd på 60 sekunder och en filstorlek på högst 10 MB. Referensformaten som stöds är 16-bitars WAV, MP3 och M4A, med en samplingsfrekvens på minst 16 kHz. Inspelningen behöver innehålla minst fem sekunders sammanhängande, tydligt tal; övriga pauser bör vara högst två sekunder långa. Undvik bakgrundsljud, andra röster och sång. Stereo accepteras, men bara den första kanalen bearbetas. Kloningsflödet returnerar en röstidentifierare som är bunden till den exakta målmodellen, och syntesen använder identifieraren när rösten är klar. Samma inspelning kräver separata klonade röster för Flash och Plus.</p><p>Instruktioner på naturligt språk styr framförandet för både systemröster och klonade röster. Beskriv hörbara egenskaper som en mjuk ton, tydlig artikulation eller ett något långsammare tempo. Infogade taggar ger en annan typ av styrning: [empathetic] eller [serious] anger en stil för efterföljande text, medan [laughing] eller [sighing] infogar en rösteffekt på en viss plats. En styrtagg gäller fram till en annan styrtagg eller automatisk meningssegmentering. Dessa känslo- och uttryckstaggar dokumenteras endast för enkelriktad strömning, inte för det dubbelriktade textinmatningsläget. Förbered en uttrycksfull replik i det läge som passar dessa kontroller.</p><p>Tillverkarens talgränssnitt stöder PCM, WAV, MP3 och Opus. De angivna samplingsfrekvenserna är 8 000, 16 000, 22 050, 24 000, 44 100 och 48 000 Hz, med MP3 och 22 050 Hz som standardvärden. Volymen går från 0 till 100; talhastighet och tonhöjd går vardera från 0,5 till 2,0. MP3 och Opus har också en inställning för bithastighet från 6 till 510 kbps. Välj format och samplingsfrekvens efter den avsedda spelaren eller bearbetningsprocessen. För en interaktiv applikation dokumenterar tillverkaren strömmande ljudramar och meningsmetadata, med tidsstämplar på ordnivå i strömmande utdata för röster som omfattas av stödet, inklusive klonade röster.</p><p>Det dokumenterade textprotokollet via WebSocket accepterar upp till 20 000 tecken i ett textmeddelande och sammanlagt 200 000 tecken i en uppgift, med högst 23 sekunder mellan textinlämningarna. Detta är gränser i tillverkarens protokoll, skilda från en generell gräns för längden på modellens utgående ljud. Protokollet stöder att den aktuella syntesomgången avbryts och att en efterföljande uppgift körs på samma anslutning. Behåll textsegmenten i den ordning de ska läsas upp och avsluta inmatningen när manuset är komplett. För uttalsförberedelser dokumenterar tillverkaren ledtrådar om målspråk, pinyinmarkeringar och textersättningar, som är användbara när siffror, förkortningar eller symboler uttalas oväntat.</p><p>SSML är ett separat märkspråksalternativ med villkor för röst och interaktionsläge: Qwen dokumenterar det för klonade röster, med anrop utan strömning eller med enkelriktad strömning, och endast en textinlämning när SSML är aktiverat. Det bör inte förutsättas för varje förinställd röst eller dubbelriktad ström. För vanlig dialog börjar du med en kompatibel röst, ett rent talmanus och en specifik instruktion för framförandet; lägg till riktade uttals- eller uttryckskontroller där uppgiften kräver dem. Det håller Flash-profilen inriktad på responsivt tal från förberedd text, snarare än på andra Qwen-ljudmodellers funktioner.</p>",
  "aboutText": "Qwen-Audio-3.0-TTS-Flash omvandlar ett tillhandahållet manus till tal, med Flash-versionens fokus på interaktion i realtid. Qwen anger röstassistenter, interaktiv dialog och intelligent kundservice som de främsta användningsområdena. Jämfört med föregående version beskriver tillverkaren ett bredare stöd för språk med begränsade språkresurser och kinesiska dialekter, mer autentiskt dialektuttryck samt bättre styrning av känsla, ton, karaktär, hastighet, volym och talstil. Tillverkaren rapporterar också förbättrad tydlighet och robusthet i akustiska miljöer med buller eller efterklang. Detta är syntes från text till ljud, inte igenkänning av inkommande tal eller en modell för röstdialog.\n\nFlash prioriterar att talet kommer i gång snabbt i ett interaktivt utbyte. Qwen rapporterar en latens på högst 200 millisekunder till det första paketet för modellens realtidssyntes; användarguiden påpekar också att den inledande anslutningen bidrar till den uppmätta fördröjningen vid den första textinlämningen. Förbered de ord som faktiskt ska sägas separat från det önskade framförandet. För ett svar från en röstassistent kan ett exempel på en instruktion kombinera ett kortfattat svar med ett lugnt och tydligt framförande. Det relevanta resultatet är det genererade talet för den texten, medan applikationen hanterar uppspelningen och den omgivande konversationen.\n\nTillverkarens lista över systemröster innehåller modellspecifika alternativ som Long An Feng Yue för ett naturligt, vänligt framförande och Long An Xiao Xin för ett vänligt, livligt framförande, båda angivna för mandarin och engelska. Den innehåller också engelska röster som loongmary med brittisk accent och loongjohn med lugn, vänlig amerikansk accent. Varje modell har dessutom fler än 500 basröster. Qwen rekommenderar att börja med systemröster för ett konsekvent resultat och att bedöma förhandslyssningar när en basröst väljs. Rösten måste tillhöra den valda modellen och manuset måste vara på ett språk som rösten stöder.\n\nKlonade röster utökar det dokumenterade språkstödet till kinesiska, engelska, japanska, koreanska, ryska, franska, tyska, portugisiska, thailändska, indonesiska, vietnamesiska, spanska, italienska, malajiska, filipino och arabiska. Stödet för kinesiska omfattar mandarin och kantonesiska samt varieteter från Chongqing, nordöstra Kina, Gansu, Guizhou, Zhejiang, Hebei, Henan, Hubei, Hunan, Jiangxi, Ningbo, Ningxia, Qingdao, Shaanxi, Shanxi, Shandong, Shanghai, Sichuan och Yunnan, med dialektval genom instruktioner. Modelltabellen stöder röstkloning från ljudprov och skiljer det från att skapa en ny röst enbart utifrån en textbeskrivning, vilket denna version inte stöder.\n\nFör kloning rekommenderar tillverkaren en inspelning på 10–20 sekunder, med en maximal längd på 60 sekunder och en filstorlek på högst 10 MB. Referensformaten som stöds är 16-bitars WAV, MP3 och M4A, med en samplingsfrekvens på minst 16 kHz. Inspelningen behöver innehålla minst fem sekunders sammanhängande, tydligt tal; övriga pauser bör vara högst två sekunder långa. Undvik bakgrundsljud, andra röster och sång. Stereo accepteras, men bara den första kanalen bearbetas. Kloningsflödet returnerar en röstidentifierare som är bunden till den exakta målmodellen, och syntesen använder identifieraren när rösten är klar. Samma inspelning kräver separata klonade röster för Flash och Plus.\n\nInstruktioner på naturligt språk styr framförandet för både systemröster och klonade röster. Beskriv hörbara egenskaper som en mjuk ton, tydlig artikulation eller ett något långsammare tempo. Infogade taggar ger en annan typ av styrning: [empathetic] eller [serious] anger en stil för efterföljande text, medan [laughing] eller [sighing] infogar en rösteffekt på en viss plats. En styrtagg gäller fram till en annan styrtagg eller automatisk meningssegmentering. Dessa känslo- och uttryckstaggar dokumenteras endast för enkelriktad strömning, inte för det dubbelriktade textinmatningsläget. Förbered en uttrycksfull replik i det läge som passar dessa kontroller.\n\nTillverkarens talgränssnitt stöder PCM, WAV, MP3 och Opus. De angivna samplingsfrekvenserna är 8 000, 16 000, 22 050, 24 000, 44 100 och 48 000 Hz, med MP3 och 22 050 Hz som standardvärden. Volymen går från 0 till 100; talhastighet och tonhöjd går vardera från 0,5 till 2,0. MP3 och Opus har också en inställning för bithastighet från 6 till 510 kbps. Välj format och samplingsfrekvens efter den avsedda spelaren eller bearbetningsprocessen. För en interaktiv applikation dokumenterar tillverkaren strömmande ljudramar och meningsmetadata, med tidsstämplar på ordnivå i strömmande utdata för röster som omfattas av stödet, inklusive klonade röster.\n\nDet dokumenterade textprotokollet via WebSocket accepterar upp till 20 000 tecken i ett textmeddelande och sammanlagt 200 000 tecken i en uppgift, med högst 23 sekunder mellan textinlämningarna. Detta är gränser i tillverkarens protokoll, skilda från en generell gräns för längden på modellens utgående ljud. Protokollet stöder att den aktuella syntesomgången avbryts och att en efterföljande uppgift körs på samma anslutning. Behåll textsegmenten i den ordning de ska läsas upp och avsluta inmatningen när manuset är komplett. För uttalsförberedelser dokumenterar tillverkaren ledtrådar om målspråk, pinyinmarkeringar och textersättningar, som är användbara när siffror, förkortningar eller symboler uttalas oväntat.\n\nSSML är ett separat märkspråksalternativ med villkor för röst och interaktionsläge: Qwen dokumenterar det för klonade röster, med anrop utan strömning eller med enkelriktad strömning, och endast en textinlämning när SSML är aktiverat. Det bör inte förutsättas för varje förinställd röst eller dubbelriktad ström. För vanlig dialog börjar du med en kompatibel röst, ett rent talmanus och en specifik instruktion för framförandet; lägg till riktade uttals- eller uttryckskontroller där uppgiften kräver dem. Det håller Flash-profilen inriktad på responsivt tal från förberedd text, snarare än på andra Qwen-ljudmodellers funktioner.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "702e272c6e2a342c4ccafdf4dcfc547eb115d4fecac19451135f6193a6fb6022",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "sv",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">Al</span><h2 id=\"sheet-title\">Qwen: Qwen-Audio-3.0-TTS Flash</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Stäng\">×</button></div><div class=\"idline\"><span>Alibaba /</span><code>qwen/qwen-audio-3.0-tts-flash</code><button type=\"button\" id=\"copy-id\">Kopiera ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Modellkortets avsnitt\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Indata &amp; metoder</button><button type=\"button\" data-card-jump=\"pricing\">Priser</button><button type=\"button\" data-card-jump=\"examples\">Exempel</button><button type=\"button\" data-card-jump=\"results\">Resultat</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metoder\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|qwen%2Fqwen-audio-3.0-tts-flash\">Talproduktion</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\">Start</h3><p class=\"mdesc-full\">Qwen-Audio-3.0-TTS-Flash är Qwens text-till-tal-modell med fokus på responsiva röstassistenter och interaktiv dialog. Den kombinerar strömmande syntes, modellspecifika förinställda eller klonade röster samt instruktioner eller taggar för uttrycksfullt tal.</p><dl class=\"card-io\" data-card-io><div><dt>Godkända indata</dt><dd>Text</dd></div><div><dt>Resultat</dt><dd>Ljud</dd></div></dl><details class=\"card-about\"><summary>Om modellen</summary><p class=\"note-s\" data-model-method-boundary>Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.</p><div class=\"mabout\" id=\"m-about\"><p>Qwen-Audio-3.0-TTS-Flash omvandlar ett tillhandahållet manus till tal, med Flash-versionens fokus på interaktion i realtid. Qwen anger röstassistenter, interaktiv dialog och intelligent kundservice som de främsta användningsområdena. Jämfört med föregående version beskriver tillverkaren ett bredare stöd för språk med begränsade språkresurser och kinesiska dialekter, mer autentiskt dialektuttryck samt bättre styrning av känsla, ton, karaktär, hastighet, volym och talstil. Tillverkaren rapporterar också förbättrad tydlighet och robusthet i akustiska miljöer med buller eller efterklang. Detta är syntes från text till ljud, inte igenkänning av inkommande tal eller en modell för röstdialog.</p><p>Flash prioriterar att talet kommer i gång snabbt i ett interaktivt utbyte. Qwen rapporterar en latens på högst 200 millisekunder till det första paketet för modellens realtidssyntes; användarguiden påpekar också att den inledande anslutningen bidrar till den uppmätta fördröjningen vid den första textinlämningen. Förbered de ord som faktiskt ska sägas separat från det önskade framförandet. För ett svar från en röstassistent kan ett exempel på en instruktion kombinera ett kortfattat svar med ett lugnt och tydligt framförande. Det relevanta resultatet är det genererade talet för den texten, medan applikationen hanterar uppspelningen och den omgivande konversationen.</p><p>Tillverkarens lista över systemröster innehåller modellspecifika alternativ som Long An Feng Yue för ett naturligt, vänligt framförande och Long An Xiao Xin för ett vänligt, livligt framförande, båda angivna för mandarin och engelska. Den innehåller också engelska röster som loongmary med brittisk accent och loongjohn med lugn, vänlig amerikansk accent. Varje modell har dessutom fler än 500 basröster. Qwen rekommenderar att börja med systemröster för ett konsekvent resultat och att bedöma förhandslyssningar när en basröst väljs. Rösten måste tillhöra den valda modellen och manuset måste vara på ett språk som rösten stöder.</p><p>Klonade röster utökar det dokumenterade språkstödet till kinesiska, engelska, japanska, koreanska, ryska, franska, tyska, portugisiska, thailändska, indonesiska, vietnamesiska, spanska, italienska, malajiska, filipino och arabiska. Stödet för kinesiska omfattar mandarin och kantonesiska samt varieteter från Chongqing, nordöstra Kina, Gansu, Guizhou, Zhejiang, Hebei, Henan, Hubei, Hunan, Jiangxi, Ningbo, Ningxia, Qingdao, Shaanxi, Shanxi, Shandong, Shanghai, Sichuan och Yunnan, med dialektval genom instruktioner. Modelltabellen stöder röstkloning från ljudprov och skiljer det från att skapa en ny röst enbart utifrån en textbeskrivning, vilket denna version inte stöder.</p><p>För kloning rekommenderar tillverkaren en inspelning på 10–20 sekunder, med en maximal längd på 60 sekunder och en filstorlek på högst 10 MB. Referensformaten som stöds är 16-bitars WAV, MP3 och M4A, med en samplingsfrekvens på minst 16 kHz. Inspelningen behöver innehålla minst fem sekunders sammanhängande, tydligt tal; övriga pauser bör vara högst två sekunder långa. Undvik bakgrundsljud, andra röster och sång. Stereo accepteras, men bara den första kanalen bearbetas. Kloningsflödet returnerar en röstidentifierare som är bunden till den exakta målmodellen, och syntesen använder identifieraren när rösten är klar. Samma inspelning kräver separata klonade röster för Flash och Plus.</p><p>Instruktioner på naturligt språk styr framförandet för både systemröster och klonade röster. Beskriv hörbara egenskaper som en mjuk ton, tydlig artikulation eller ett något långsammare tempo. Infogade taggar ger en annan typ av styrning: [empathetic] eller [serious] anger en stil för efterföljande text, medan [laughing] eller [sighing] infogar en rösteffekt på en viss plats. En styrtagg gäller fram till en annan styrtagg eller automatisk meningssegmentering. Dessa känslo- och uttryckstaggar dokumenteras endast för enkelriktad strömning, inte för det dubbelriktade textinmatningsläget. Förbered en uttrycksfull replik i det läge som passar dessa kontroller.</p><p>Tillverkarens talgränssnitt stöder PCM, WAV, MP3 och Opus. De angivna samplingsfrekvenserna är 8 000, 16 000, 22 050, 24 000, 44 100 och 48 000 Hz, med MP3 och 22 050 Hz som standardvärden. Volymen går från 0 till 100; talhastighet och tonhöjd går vardera från 0,5 till 2,0. MP3 och Opus har också en inställning för bithastighet från 6 till 510 kbps. Välj format och samplingsfrekvens efter den avsedda spelaren eller bearbetningsprocessen. För en interaktiv applikation dokumenterar tillverkaren strömmande ljudramar och meningsmetadata, med tidsstämplar på ordnivå i strömmande utdata för röster som omfattas av stödet, inklusive klonade röster.</p><p>Det dokumenterade textprotokollet via WebSocket accepterar upp till 20 000 tecken i ett textmeddelande och sammanlagt 200 000 tecken i en uppgift, med högst 23 sekunder mellan textinlämningarna. Detta är gränser i tillverkarens protokoll, skilda från en generell gräns för längden på modellens utgående ljud. Protokollet stöder att den aktuella syntesomgången avbryts och att en efterföljande uppgift körs på samma anslutning. Behåll textsegmenten i den ordning de ska läsas upp och avsluta inmatningen när manuset är komplett. För uttalsförberedelser dokumenterar tillverkaren ledtrådar om målspråk, pinyinmarkeringar och textersättningar, som är användbara när siffror, förkortningar eller symboler uttalas oväntat.</p><p>SSML är ett separat märkspråksalternativ med villkor för röst och interaktionsläge: Qwen dokumenterar det för klonade röster, med anrop utan strömning eller med enkelriktad strömning, och endast en textinlämning när SSML är aktiverat. Det bör inte förutsättas för varje förinställd röst eller dubbelriktad ström. För vanlig dialog börjar du med en kompatibel röst, ett rent talmanus och en specifik instruktion för framförandet; lägg till riktade uttals- eller uttryckskontroller där uppgiften kräver dem. Det håller Flash-profilen inriktad på responsivt tal från förberedd text, snarare än på andra Qwen-ljudmodellers funktioner.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tillgängligt i Ailoot · indata &amp; metoder</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Talproduktion</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Indatatyper</dt><dd><code>text</code></dd></div><div><dt>Utdatatyper</dt><dd><code>audio</code></dd></div><div><dt>Utdataformat</dt><dd>mp3</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Fält</th><th>Typ</th><th>Krav</th><th>Värden &amp; gränser</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>qwen/qwen-audio-3.0-tts-flash</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Minsta längd: 1</div><div>Enhet: Unicode-tecken</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>loongjohn, longanhuan_v3.6</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>mp3</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinationer av indatamaterial</summary><p class=\"note-s\"><b>text_to_speech</b> · Krävs: input</p></details><details class=\"note-s\" data-method-contract><summary>Metodparametrar och livscykel</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Avtal</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>model, input, voice, response_format</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>voice_ids</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>loongjohn, longanhuan_v3.6</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>response_format</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>mp3</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>max_input_characters</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>null</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>other_options</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>input</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>exakt UTF-8-text; antal Unicode-tecken utan normalisering</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>text</td></tr></tbody></table></div><p>Livscykel: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Det task_id som faktiskt returnerades eller en post i mediebiblioteket</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><p class=\"note-s\">Välj den exakta rösten från denna modellprofil.</p><p class=\"note-s\">Indatatecken och ljudsekunder är olika mätenheter.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Priser</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.</p><dl data-price-conditions><dt>Snabbt läge</dt><dd>Ej angivet <span class=\"note-s\">När snabbt läge är valt</span></dd><dt>Flex-läge</dt><dd>Ej angivet <span class=\"note-s\">När läget flex är valt</span></dd><dt>Högsta resonemangsnivå</dt><dd>Ej angivet <span class=\"note-s\">När den högsta resonemangsnivån använder standardjusteringen (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-priser</h4><h4>Priser efter konfiguration</h4><p class=\"note-s\">Matcha varje avgift mot de visade villkoren. Använd ett pris för varje uppsättning alternativa konfigurationer.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Prislista</th><th>Debiterbar mängd</th><th>Debiteringsenhet</th><th>Avgift</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Grundpriser för token</th><td data-cell-label=\"Prislista\"><span class=\"card-cell-label\">Prislista</span>Grundpris</td><td data-cell-label=\"Debiterbar mängd\"><span class=\"card-cell-label\">Debiterbar mängd</span>—</td><td data-cell-label=\"Debiteringsenhet\"><span class=\"card-cell-label\">Debiteringsenhet</span>—</td><td data-cell-label=\"Avgift\"><span class=\"card-cell-label\">Avgift</span><div><span>Indata · Indatatoken</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Utdata · Utdatatoken</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Indata · Cacheläsning</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Indata · Skrivning till cache</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Indata · Skrivning till cache, 1 tim</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Ultra</th><td data-cell-label=\"Prislista\"><span class=\"card-cell-label\">Prislista</span>—</td><td data-cell-label=\"Debiterbar mängd\"><span class=\"card-cell-label\">Debiterbar mängd</span>Varje Unicode-kodpunkt räknas som ett tecken, även Han-tecken.</td><td data-cell-label=\"Debiteringsenhet\"><span class=\"card-cell-label\">Debiteringsenhet</span>per 1K indatatecken</td><td data-cell-label=\"Avgift\"><span class=\"card-cell-label\">Avgift</span><div><span>Indata · indatatecken</span> <b>$0.03</b> <span class=\"price-unit\">per 1K indatatecken</span></div></td></tr></tbody></table></div></div><div data-declared-reference-pricing><h4>Detaljer om referenstariffen</h4><p class=\"note-s\">Referensprislistor på modellnivå ändrar inte metodval, prisuppgifter eller avgifter. Aktiva avgifter använder priserna för den valda Ailoot-metoden.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Qwen: Qwen-Audio-3.0-TTS Flash</summary><h4>Priser efter konfiguration</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Debiteringsvillkor</th><th>Avgift</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Qwen: Qwen-Audio-3.0-TTS Flash · Standardkonfiguration</th><td data-cell-label=\"Debiteringsvillkor\"><span class=\"card-cell-label\">Debiteringsvillkor</span>Standardkonfiguration</td><td data-cell-label=\"Avgift\"><span class=\"card-cell-label\">Avgift</span><div><span>Indata · Indatatecken</span> <b>0,00003 US$</b> <span class=\"price-unit\">per indatatecken</span></div></td></tr></tbody></table></div></details></div><p class=\"note-s\">Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. <a href=\"/docs/sv/billing/reserve/\">Så fungerar reservation och slutreglering →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exempelbegäranden</h3><h4>Ailoot Ultra · Talproduktion</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodvarianter\"><button class=\"cg-tab\" id=\"model-code-2360-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2360-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiera kod\"><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-2360-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2360-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}&quot;\nexport AILOOT_VOICE_ID\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;qwen/qwen-audio-3.0-tts-flash&quot;, &quot;input&quot;: &quot;Good afternoon! This is a short voice take.&quot;}&#39;)\nvoice=os.environ[&quot;AILOOT_VOICE_ID&quot;]\nallowed=json.loads(&#39;[&quot;loongjohn&quot;, &quot;longanhuan_v3.6&quot;]&#39;)\nif voice not in allowed: raise SystemExit(&quot;Choose an accepted voice ID from this exact model profile&quot;)\np[&quot;voice&quot;]=voice\np[&quot;response_format&quot;]=&quot;mp3&quot;\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\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 speech.mp3\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Ta emot och spara resultat</h3><h4>Ailoot Ultra · Talproduktion</h4><p class=\"note-s\">mp3</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><details class=\"card-about\"><summary>Andra innehållsläsningar</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodvarianter\"><button class=\"cg-tab\" id=\"model-code-2361-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2361-panel-0\" aria-selected=\"true\" tabindex=\"0\">Mediebibliotek</button><button class=\"cg-tab\" id=\"model-code-2361-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2361-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Uppgiftsstatus</button><button class=\"cg-tab\" id=\"model-code-2361-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2361-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Resursinformation</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiera kod\"><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-2361-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2361-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-assets.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2361-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2361-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_MEDIA_TASK_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/tasks/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-task.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-task.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2361-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2361-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_ASSET_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/assets/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-asset.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-asset.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Behåll alla färdiga resultat</h5><p class=\"note-s\">Behåll varje fullständigt returnerat svar, fil och innehållsdel.</p><p class=\"note-s\">Spara hela det binära resultatet och dess headers. Om JSON eller flera resultat returneras ska du behålla varje dataobjekt och hämta innehållet via varje faktisk signerad URL till en resurs.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Om det ursprungliga svaret behöver kontrolleras</h5><p class=\"note-s\">Behåll de ursprungliga värdena för operation_id/X-Client-Request-ID för avstämning utan att skicka förfrågan igen; det finns ingen särskild rutt för statusavläsning av ljud.</p></div><details class=\"card-about\" data-output-fields><summary>Svarsfält</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Fält</th><th>Typ</th></tr></thead><tbody><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">binary audio</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>bytes</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">response headers</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>headers</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fel och nästa steg</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Svar</th><th>Villkor</th><th>Nästa steg</th></tr></thead><tbody><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Villkor\"><span class=\"card-cell-label\">Villkor</span>Ogiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde</td><td data-cell-label=\"Nästa steg\"><span class=\"card-cell-label\">Nästa steg</span>Korrigera de angivna fälten före en ny begäran om att skapa.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span><code>server_error</code></th><td data-cell-label=\"Villkor\"><span class=\"card-cell-label\">Villkor</span>Det returnerade svaret anger att operationen eller resultatet behöver kontrolleras</td><td data-cell-label=\"Nästa steg\"><span class=\"card-cell-label\">Nästa steg</span>Spara det ursprungliga operations- eller uppgifts-ID som returnerades, förfrågans headers och svaret. Fortsätt att läsa den ursprungliga operationen med de läsmetoder som stöds. Skicka inte skapandeförfrågan igen.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Modellalias</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=qwen%2Fqwen-audio-3.0-tts-flash&amp;route=Ultra&amp;caller=qwen%2Fqwen-audio-3.0-tts-flash&amp;fmt=speech\"><code>qwen/qwen-audio-3.0-tts-flash</code></a></span></p><h4>Alias för metodsökvägar</h4><p class=\"note-s\">Använd metodsökvägarna som visas ovan.</p><h4>Relaterade anropar-ID:n</h4><p class=\"note-s\"><a href=\"#m=qwen%2Fqwen-audio-3.0-tts-flash&amp;route=Ultra&amp;caller=qwen%2Fqwen-audio-3.0-tts-flash&amp;fmt=speech\"><code>qwen/qwen-audio-3.0-tts-flash</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|qwen%2Fqwen-audio-3.0-tts-flash",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "Ogiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde",
                "http_status": 400,
                "recovery": "Korrigera de angivna fälten före en ny begäran om att skapa.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Det returnerade svaret anger att operationen eller resultatet behöver kontrolleras",
                "http_status": null,
                "recovery": "Spara det ursprungliga operations- eller uppgifts-ID som returnerades, förfrågans headers och svaret. Fortsätt att läsa den ursprungliga operationen med de läsmetoder som stöds. Skicka inte skapandeförfrågan igen.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "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 URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Behåll de ursprungliga värdena för operation_id/X-Client-Request-ID för avstämning utan att skicka förfrågan igen; det finns ingen särskild rutt för statusavläsning av ljud."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Spara hela det binära resultatet och dess headers. Om JSON eller flera resultat returneras ska du behålla varje dataobjekt och hämta innehållet via varje faktisk signerad URL till en resurs.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "qwen/qwen-audio-3.0-tts-flash"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": false,
                "maximum_length": null,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "Unicode-tecken"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "loongjohn",
                  "longanhuan_v3.6"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Välj den exakta rösten från denna modellprofil.",
            "Indatatecken och ljudsekunder är olika mätenheter."
          ],
          "input": {
            "content_type": "application/json",
            "input": "exakt UTF-8-text; antal Unicode-tecken utan normalisering",
            "material_types": [
              "text"
            ],
            "max_input_characters": null,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "loongjohn",
              "longanhuan_v3.6"
            ]
          },
          "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 URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Det task_id som faktiskt returnerades eller en post i mediebiblioteket",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "1005b0881c111e8d7cb6",
            "label": "Qwen: Qwen-Audio-3.0-TTS Flash",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Standardkonfiguration"
                },
                "label": "Qwen: Qwen-Audio-3.0-TTS Flash · Standardkonfiguration",
                "units": [
                  {
                    "amount": "0.000030",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "723fd9e7b35c0e460956bc11",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"qwen/qwen-audio-3.0-tts-flash\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"loongjohn\", \"longanhuan_v3.6\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "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_character": 3e-05
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "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.03000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    }
  ],
  "model_id": "qwen/qwen-audio-3.0-tts-flash",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "dc764ac47513fd04e1300f10ec260f936bbc4bc6678d4ed02605f6f3c8bc04b2",
    "input_html_sha256": "2b438aadc258e0d35591459c2aed174f32dd9f0af8a1b375632bd58dbedd9c87",
    "private_audit_sha256": "6bf1d987ed50405fa9518b36c119e36ca900662e5dee3dfc5be17cacb6f1c2fa",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/sv/qwen-qwen-audio-3-0-tts-flash/",
    "description": "Qwen-Audio-3.0-TTS-Flash är Qwens text-till-tal-modell med fokus på responsiva röstassistenter och interaktiv dialog. Den kombinerar strömmande syntes, modellspecifika förinställda eller klonade röster samt instruktioner eller taggar för uttrycksfullt tal.",
    "locale": "sv",
    "md_url": "https://ailoot.ai/models/sv/qwen-qwen-audio-3-0-tts-flash/index.md",
    "title": "Qwen: Qwen-Audio-3.0-TTS Flash — Ailoot",
    "url": "https://ailoot.ai/models/sv/qwen-qwen-audio-3-0-tts-flash/"
  },
  "rawModel": {
    "about": "Qwen-Audio-3.0-TTS-Flash omvandlar ett tillhandahållet manus till tal, med Flash-versionens fokus på interaktion i realtid. Qwen anger röstassistenter, interaktiv dialog och intelligent kundservice som de främsta användningsområdena. Jämfört med föregående version beskriver tillverkaren ett bredare stöd för språk med begränsade språkresurser och kinesiska dialekter, mer autentiskt dialektuttryck samt bättre styrning av känsla, ton, karaktär, hastighet, volym och talstil. Tillverkaren rapporterar också förbättrad tydlighet och robusthet i akustiska miljöer med buller eller efterklang. Detta är syntes från text till ljud, inte igenkänning av inkommande tal eller en modell för röstdialog.\n\nFlash prioriterar att talet kommer i gång snabbt i ett interaktivt utbyte. Qwen rapporterar en latens på högst 200 millisekunder till det första paketet för modellens realtidssyntes; användarguiden påpekar också att den inledande anslutningen bidrar till den uppmätta fördröjningen vid den första textinlämningen. Förbered de ord som faktiskt ska sägas separat från det önskade framförandet. För ett svar från en röstassistent kan ett exempel på en instruktion kombinera ett kortfattat svar med ett lugnt och tydligt framförande. Det relevanta resultatet är det genererade talet för den texten, medan applikationen hanterar uppspelningen och den omgivande konversationen.\n\nTillverkarens lista över systemröster innehåller modellspecifika alternativ som Long An Feng Yue för ett naturligt, vänligt framförande och Long An Xiao Xin för ett vänligt, livligt framförande, båda angivna för mandarin och engelska. Den innehåller också engelska röster som loongmary med brittisk accent och loongjohn med lugn, vänlig amerikansk accent. Varje modell har dessutom fler än 500 basröster. Qwen rekommenderar att börja med systemröster för ett konsekvent resultat och att bedöma förhandslyssningar när en basröst väljs. Rösten måste tillhöra den valda modellen och manuset måste vara på ett språk som rösten stöder.\n\nKlonade röster utökar det dokumenterade språkstödet till kinesiska, engelska, japanska, koreanska, ryska, franska, tyska, portugisiska, thailändska, indonesiska, vietnamesiska, spanska, italienska, malajiska, filipino och arabiska. Stödet för kinesiska omfattar mandarin och kantonesiska samt varieteter från Chongqing, nordöstra Kina, Gansu, Guizhou, Zhejiang, Hebei, Henan, Hubei, Hunan, Jiangxi, Ningbo, Ningxia, Qingdao, Shaanxi, Shanxi, Shandong, Shanghai, Sichuan och Yunnan, med dialektval genom instruktioner. Modelltabellen stöder röstkloning från ljudprov och skiljer det från att skapa en ny röst enbart utifrån en textbeskrivning, vilket denna version inte stöder.\n\nFör kloning rekommenderar tillverkaren en inspelning på 10–20 sekunder, med en maximal längd på 60 sekunder och en filstorlek på högst 10 MB. Referensformaten som stöds är 16-bitars WAV, MP3 och M4A, med en samplingsfrekvens på minst 16 kHz. Inspelningen behöver innehålla minst fem sekunders sammanhängande, tydligt tal; övriga pauser bör vara högst två sekunder långa. Undvik bakgrundsljud, andra röster och sång. Stereo accepteras, men bara den första kanalen bearbetas. Kloningsflödet returnerar en röstidentifierare som är bunden till den exakta målmodellen, och syntesen använder identifieraren när rösten är klar. Samma inspelning kräver separata klonade röster för Flash och Plus.\n\nInstruktioner på naturligt språk styr framförandet för både systemröster och klonade röster. Beskriv hörbara egenskaper som en mjuk ton, tydlig artikulation eller ett något långsammare tempo. Infogade taggar ger en annan typ av styrning: [empathetic] eller [serious] anger en stil för efterföljande text, medan [laughing] eller [sighing] infogar en rösteffekt på en viss plats. En styrtagg gäller fram till en annan styrtagg eller automatisk meningssegmentering. Dessa känslo- och uttryckstaggar dokumenteras endast för enkelriktad strömning, inte för det dubbelriktade textinmatningsläget. Förbered en uttrycksfull replik i det läge som passar dessa kontroller.\n\nTillverkarens talgränssnitt stöder PCM, WAV, MP3 och Opus. De angivna samplingsfrekvenserna är 8 000, 16 000, 22 050, 24 000, 44 100 och 48 000 Hz, med MP3 och 22 050 Hz som standardvärden. Volymen går från 0 till 100; talhastighet och tonhöjd går vardera från 0,5 till 2,0. MP3 och Opus har också en inställning för bithastighet från 6 till 510 kbps. Välj format och samplingsfrekvens efter den avsedda spelaren eller bearbetningsprocessen. För en interaktiv applikation dokumenterar tillverkaren strömmande ljudramar och meningsmetadata, med tidsstämplar på ordnivå i strömmande utdata för röster som omfattas av stödet, inklusive klonade röster.\n\nDet dokumenterade textprotokollet via WebSocket accepterar upp till 20 000 tecken i ett textmeddelande och sammanlagt 200 000 tecken i en uppgift, med högst 23 sekunder mellan textinlämningarna. Detta är gränser i tillverkarens protokoll, skilda från en generell gräns för längden på modellens utgående ljud. Protokollet stöder att den aktuella syntesomgången avbryts och att en efterföljande uppgift körs på samma anslutning. Behåll textsegmenten i den ordning de ska läsas upp och avsluta inmatningen när manuset är komplett. För uttalsförberedelser dokumenterar tillverkaren ledtrådar om målspråk, pinyinmarkeringar och textersättningar, som är användbara när siffror, förkortningar eller symboler uttalas oväntat.\n\nSSML är ett separat märkspråksalternativ med villkor för röst och interaktionsläge: Qwen dokumenterar det för klonade röster, med anrop utan strömning eller med enkelriktad strömning, och endast en textinlämning när SSML är aktiverat. Det bör inte förutsättas för varje förinställd röst eller dubbelriktad ström. För vanlig dialog börjar du med en kompatibel röst, ett rent talmanus och en specifik instruktion för framförandet; lägg till riktade uttals- eller uttryckskontroller där uppgiften kräver dem. Det håller Flash-profilen inriktad på responsivt tal från förberedd text, snarare än på andra Qwen-ljudmodellers funktioner.",
    "alias_of": null,
    "aliases": [],
    "author": "Alibaba",
    "available": null,
    "canonical_model": "qwen/qwen-audio-3.0-tts-flash",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.03000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ],
        "summary": "Fullständig prissättning för konfigurationen finns i detaljerna."
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "speech"
    ],
    "id": "qwen/qwen-audio-3.0-tts-flash",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "Ogiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde",
                "http_status": 400,
                "recovery": "Korrigera de angivna fälten före en ny begäran om att skapa.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Det returnerade svaret anger att operationen eller resultatet behöver kontrolleras",
                "http_status": null,
                "recovery": "Spara det ursprungliga operations- eller uppgifts-ID som returnerades, förfrågans headers och svaret. Fortsätt att läsa den ursprungliga operationen med de läsmetoder som stöds. Skicka inte skapandeförfrågan igen.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "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 URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Behåll de ursprungliga värdena för operation_id/X-Client-Request-ID för avstämning utan att skicka förfrågan igen; det finns ingen särskild rutt för statusavläsning av ljud."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Spara hela det binära resultatet och dess headers. Om JSON eller flera resultat returneras ska du behålla varje dataobjekt och hämta innehållet via varje faktisk signerad URL till en resurs.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "qwen/qwen-audio-3.0-tts-flash"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": false,
                "maximum_length": null,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "Unicode-tecken"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "loongjohn",
                  "longanhuan_v3.6"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Välj den exakta rösten från denna modellprofil.",
            "Indatatecken och ljudsekunder är olika mätenheter."
          ],
          "input": {
            "content_type": "application/json",
            "input": "exakt UTF-8-text; antal Unicode-tecken utan normalisering",
            "material_types": [
              "text"
            ],
            "max_input_characters": null,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "loongjohn",
              "longanhuan_v3.6"
            ]
          },
          "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 URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Det task_id som faktiskt returnerades eller en post i mediebiblioteket",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "1005b0881c111e8d7cb6",
            "label": "Qwen: Qwen-Audio-3.0-TTS Flash",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Standardkonfiguration"
                },
                "label": "Qwen: Qwen-Audio-3.0-TTS Flash · Standardkonfiguration",
                "units": [
                  {
                    "amount": "0.000030",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "723fd9e7b35c0e460956bc11",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"qwen/qwen-audio-3.0-tts-flash\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"loongjohn\", \"longanhuan_v3.6\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "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_character": 3e-05
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "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.03000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "route_label": "Ultra"
      }
    ],
    "name": "Qwen: Qwen-Audio-3.0-TTS Flash",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "qwen-audio-3.0-tts-flash",
          "Service deployment scope": "International",
          "character_counting_rule": "Han characters incl Chinese/Japanese kanji/Korean hanja=2; other characters=1; SSML markup excluded; actual synthesized text counts",
          "maker_published_model_id": "qwen-audio-3.0-tts-flash"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000030",
            "amount_unit": "usd_per_input_character",
            "conditions": {
              "Model ID": "qwen-audio-3.0-tts-flash",
              "Service deployment scope": "International",
              "character_counting_rule": "Han characters incl Chinese/Japanese kanji/Korean hanja=2; other characters=1; SSML markup excluded; actual synthesized text counts",
              "maker_published_model_id": "qwen-audio-3.0-tts-flash"
            },
            "key": "input_character",
            "label": "input character",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "qwen-audio-3.0-tts-flash",
          "Service deployment scope": "Mainland China",
          "character_counting_rule": "Han characters incl Chinese/Japanese kanji/Korean hanja=2; other characters=1; SSML markup excluded; actual synthesized text counts",
          "maker_published_model_id": "qwen-audio-3.0-tts-flash"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000275042",
            "amount_unit": "usd_per_input_character",
            "conditions": {
              "Model ID": "qwen-audio-3.0-tts-flash",
              "Service deployment scope": "Mainland China",
              "character_counting_rule": "Han characters incl Chinese/Japanese kanji/Korean hanja=2; other characters=1; SSML markup excluded; actual synthesized text counts",
              "maker_published_model_id": "qwen-audio-3.0-tts-flash"
            },
            "key": "input_character",
            "label": "input character",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    ],
    "public_id": "qwen/qwen-audio-3.0-tts-flash",
    "short": "Qwen-Audio-3.0-TTS-Flash är Qwens text-till-tal-modell med fokus på responsiva röstassistenter och interaktiv dialog. Den kombinerar strömmande syntes, modellspecifika förinställda eller klonade röster samt instruktioner eller taggar för uttrycksfullt tal."
  },
  "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": "Qwen-Audio-3.0-TTS-Flash är Qwens text-till-tal-modell med fokus på responsiva röstassistenter och interaktiv dialog. Den kombinerar strömmande syntes, modellspecifika förinställda eller klonade röster samt instruktioner eller taggar för uttrycksfullt tal.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "45d445aed66a3d16cbaaf526c2214f44448ed927da5553a06ea49770e9555d62",
    "renderer_sha256": "8a45bb31b83d2551e6d975cf4683518c7cb445a54b9394a01947f4dd103f1051"
  },
  "sourceRevision": "90c507c650ad53f4baa6bae044059634b1f44c9c2b698cd5fb1c01aeb80cecb5"
}
