{
  "aboutHtml": "<p>Muse Voice Transcribe 1.0 är Metas modell för ljudperception, avsedd att transkribera tal, identifiera gränser mellan yttranden och koppla talarturer till talare. Den tillhör modellfamiljen Muse Spark och förenar taligenkänning, talarindelning och detektion av talslut i själva modellen. Utdata består av igenkänd text med den tids- och talarinformation som är tillgänglig i det valda läget.</p><p>Modellen bearbetar ljudet i 80 millisekunder långa block och avgör när den ska fortsätta lyssna eller lämna text. Dess adaptiva fördröjning gör att den kan invänta ytterligare ljud när ett ord är svårare att tolka. Det ger preliminär text medan talet kommer in, följt av färdiga transkriptionsresultat. Behandla den preliminära hypotesen och den färdiga talarturen som olika steg i lyssningsupplevelsen.</p><p>Välj mellan tre lägen. Push-to-talk är standard för ett enskilt kontrollerat yttrande, till exempel en röstfråga eller ett kort dikterat stycke. Endpointing låter modellen identifiera gränser mellan talarturer och returnera en färdig transkription för varje identifierat segment. Diarization kopplar det igenkända talet till talarmarkörer och är avsett för inspelningar med flera talare snarare än snabbast möjliga turtagning för röstkommandon.</p><p>För ett inspelat klipp returnerar arbetsflödet för filtranskription en fullständig transkription i en enda begäran. Standardresultatet är JSON med transkriptionen och ljudets längd, samt en turns-array i lägena endpointing och diarization. Varje tur kan innehålla en identifierare, start och slut i millisekunder samt den igenkända texten. Talarmarkörer finns i diarization-läget. Push-to-talk ger den fullständiga transkriptionen utan identifierade turer i den arrayen. Tillverkarens gränssnitt för inspelade filer kan även returnera ren text eller en ström av transkriptionshändelser. Ren text placerar identifierade turer på separata rader och kan innehålla talarmarkörer; en händelseström avslutas efter sin sista händelse utan en separat JSON-sammanfattning. Dess delta-läge för preliminära resultat returnerar text stegvis, medan den slutliga transkriptionshändelsen innehåller hela ordalydelsen.</p><p>Förbered en RIFF/WAVE-fil med enkanaligt, 16-bitars PCM-ljud med heltalssampel vid 16 eller 24 kHz. Modellens ursprungliga samplingsfrekvens är 24 kHz, och gränssnittet accepterar även 16 kHz. Konvertera andra behållarformat eller kodningar till denna WAV-form som stöds innan du skickar in en inspelning. Profilen för filtranskription tillåter ljud på upp till 10 minuter och en total begärandekropp på upp till 32 MB. Behåll originalinspelningen och eventuell konvertering tillsammans med den returnerade transkriptionen för senare granskning genom avlyssning.</p><p>Arbetsflödet för direktsänt ljud använder rått enkanaligt PCM-ljud med signerade 16-bitars sampel i little-endian-format, vid 16 eller 24 kHz och med en överföringstakt som ungefär motsvarar realtid. Dess dokumenterade sessionsfönster är 60 minuter. Meta beskriver inbyggt stöd för ljudindata som är längre än en timme; de dokumenterade gränserna för filer och livesessioner förblir separata gränser i gränssnitten. Välj arbetsflödet för inspelade filer eller direktsänt ljud beroende på om ljudet redan är färdigt eller fortfarande spelas in, och håll resultaten från separata sessioner kopplade till sina egna indatasegment.</p><p>Muse Voice Transcribe är tränad på fler än 70 språk, medan det dokumenterade igenkänningsgränssnittet räknar upp 25 språk som stöds. Bland dessa finns engelska, franska, tyska, spanska, arabiska, mandarin, hindi, japanska, koreanska, italienska och portugisiska. Den känner igen språkväxling inom eller mellan meningar. Ett språktips kan ange vilka språk som väntas i ljudet, men det styr igenkänningen snarare än att tvinga transkriptionen till ett enda språk.</p><p>Vokabulärtips hjälper med produkttermer, akronymer, namn eller platser som är viktiga i en inspelning. Ange de faktiska ord och stavningar som du väntar dig att höra. Nyckelordslistan påverkar igenkänningen utan att garantera exakt stavning, så kontrollera avgörande termer mot ljudet. Språktips och nyckelord väljs när transkriptionen börjar; håll dem anpassade till just den inspelningen i stället för att ändra deras innebörd medan en session pågår.</p><p>Modellen stöder talarindelning för samtal med fler än 20 talare. Markörer som A och B identifierar talare inom en och samma transkription. De är inte verifierade namn och fastställer inte att en markör avser samma person i en annan session. När uppgiften är att analysera ett möte kan du begära turer med talartilldelning, behålla inspelningen och använda markörerna för att ordna diskussionen innan verkliga deltagarnamn tilldelas genom det omgivande arbetsflödet.</p><p>Preliminära transkriptioner av direktsänt ljud kan ändras när mer tal kommer in. I kumulativt läge ersätter varje preliminärt resultat den föregående hypotesen i stället för att lägga till ännu en kopia av den. Ett identifierat talslut markerar en gräns, medan resultatet för den färdiga turen ger den slutliga texten och kan skilja sig från det sista preliminära resultatet. Håll överlappande turer kopplade till sina turidentifierare och ta emot de färdiga resultaten innan du betraktar en transkription som avslutad. När inmatningen av direktsänt ljud upphör ska du signalera slut på indata och fortsätta ta emot tills producenten har levererat alla väntande resultat. Om anslutningen stängs omedelbart kan dessa resultat gå förlorade; en identifierad talgräns avslutar en tur snarare än hela sessionen.</p><p>Tidsangivelserna ligger på turnivå. Den här profilen ger varken tidsstämplar på ordnivå eller konfidensvärden, och ljudbearbetningens förlopp är inte en tidsstämpel för ett visst ord. Detektion av ljudhändelser, känsloidentifiering och omformatering av transkriptionen ligger också utanför den dokumenterade utdataprofilen. Använd de returnerade turintervallen för en talartidslinje eller granskning på segmentnivå, och behåll de igenkända orden om ett separat redigeringssteg senare skapar mer lättlästa anteckningar.</p><p>Användbara resultat omfattar ett färdigdikterat stycke, en transkription av en röstfråga, ett samtal med talartilldelning eller en tidslinje över yttranden. Jämför namn, tal och tekniska termer med originalinspelningen, bevara kopplingarna till läge och tidsangivelser, och håll de fullständiga turerna tillgängliga för granskning. Transkriptionen fastställer vad som kändes igen i ljudet; att besvara en talad fråga, översätta den eller omvandla den till mötesanteckningar hör till ett efterföljande steg i applikationen.</p>",
  "aboutText": "Muse Voice Transcribe 1.0 är Metas modell för ljudperception, avsedd att transkribera tal, identifiera gränser mellan yttranden och koppla talarturer till talare. Den tillhör modellfamiljen Muse Spark och förenar taligenkänning, talarindelning och detektion av talslut i själva modellen. Utdata består av igenkänd text med den tids- och talarinformation som är tillgänglig i det valda läget.\n\nModellen bearbetar ljudet i 80 millisekunder långa block och avgör när den ska fortsätta lyssna eller lämna text. Dess adaptiva fördröjning gör att den kan invänta ytterligare ljud när ett ord är svårare att tolka. Det ger preliminär text medan talet kommer in, följt av färdiga transkriptionsresultat. Behandla den preliminära hypotesen och den färdiga talarturen som olika steg i lyssningsupplevelsen.\n\nVälj mellan tre lägen. Push-to-talk är standard för ett enskilt kontrollerat yttrande, till exempel en röstfråga eller ett kort dikterat stycke. Endpointing låter modellen identifiera gränser mellan talarturer och returnera en färdig transkription för varje identifierat segment. Diarization kopplar det igenkända talet till talarmarkörer och är avsett för inspelningar med flera talare snarare än snabbast möjliga turtagning för röstkommandon.\n\nFör ett inspelat klipp returnerar arbetsflödet för filtranskription en fullständig transkription i en enda begäran. Standardresultatet är JSON med transkriptionen och ljudets längd, samt en turns-array i lägena endpointing och diarization. Varje tur kan innehålla en identifierare, start och slut i millisekunder samt den igenkända texten. Talarmarkörer finns i diarization-läget. Push-to-talk ger den fullständiga transkriptionen utan identifierade turer i den arrayen. Tillverkarens gränssnitt för inspelade filer kan även returnera ren text eller en ström av transkriptionshändelser. Ren text placerar identifierade turer på separata rader och kan innehålla talarmarkörer; en händelseström avslutas efter sin sista händelse utan en separat JSON-sammanfattning. Dess delta-läge för preliminära resultat returnerar text stegvis, medan den slutliga transkriptionshändelsen innehåller hela ordalydelsen.\n\nFörbered en RIFF/WAVE-fil med enkanaligt, 16-bitars PCM-ljud med heltalssampel vid 16 eller 24 kHz. Modellens ursprungliga samplingsfrekvens är 24 kHz, och gränssnittet accepterar även 16 kHz. Konvertera andra behållarformat eller kodningar till denna WAV-form som stöds innan du skickar in en inspelning. Profilen för filtranskription tillåter ljud på upp till 10 minuter och en total begärandekropp på upp till 32 MB. Behåll originalinspelningen och eventuell konvertering tillsammans med den returnerade transkriptionen för senare granskning genom avlyssning.\n\nArbetsflödet för direktsänt ljud använder rått enkanaligt PCM-ljud med signerade 16-bitars sampel i little-endian-format, vid 16 eller 24 kHz och med en överföringstakt som ungefär motsvarar realtid. Dess dokumenterade sessionsfönster är 60 minuter. Meta beskriver inbyggt stöd för ljudindata som är längre än en timme; de dokumenterade gränserna för filer och livesessioner förblir separata gränser i gränssnitten. Välj arbetsflödet för inspelade filer eller direktsänt ljud beroende på om ljudet redan är färdigt eller fortfarande spelas in, och håll resultaten från separata sessioner kopplade till sina egna indatasegment.\n\nMuse Voice Transcribe är tränad på fler än 70 språk, medan det dokumenterade igenkänningsgränssnittet räknar upp 25 språk som stöds. Bland dessa finns engelska, franska, tyska, spanska, arabiska, mandarin, hindi, japanska, koreanska, italienska och portugisiska. Den känner igen språkväxling inom eller mellan meningar. Ett språktips kan ange vilka språk som väntas i ljudet, men det styr igenkänningen snarare än att tvinga transkriptionen till ett enda språk.\n\nVokabulärtips hjälper med produkttermer, akronymer, namn eller platser som är viktiga i en inspelning. Ange de faktiska ord och stavningar som du väntar dig att höra. Nyckelordslistan påverkar igenkänningen utan att garantera exakt stavning, så kontrollera avgörande termer mot ljudet. Språktips och nyckelord väljs när transkriptionen börjar; håll dem anpassade till just den inspelningen i stället för att ändra deras innebörd medan en session pågår.\n\nModellen stöder talarindelning för samtal med fler än 20 talare. Markörer som A och B identifierar talare inom en och samma transkription. De är inte verifierade namn och fastställer inte att en markör avser samma person i en annan session. När uppgiften är att analysera ett möte kan du begära turer med talartilldelning, behålla inspelningen och använda markörerna för att ordna diskussionen innan verkliga deltagarnamn tilldelas genom det omgivande arbetsflödet.\n\nPreliminära transkriptioner av direktsänt ljud kan ändras när mer tal kommer in. I kumulativt läge ersätter varje preliminärt resultat den föregående hypotesen i stället för att lägga till ännu en kopia av den. Ett identifierat talslut markerar en gräns, medan resultatet för den färdiga turen ger den slutliga texten och kan skilja sig från det sista preliminära resultatet. Håll överlappande turer kopplade till sina turidentifierare och ta emot de färdiga resultaten innan du betraktar en transkription som avslutad. När inmatningen av direktsänt ljud upphör ska du signalera slut på indata och fortsätta ta emot tills producenten har levererat alla väntande resultat. Om anslutningen stängs omedelbart kan dessa resultat gå förlorade; en identifierad talgräns avslutar en tur snarare än hela sessionen.\n\nTidsangivelserna ligger på turnivå. Den här profilen ger varken tidsstämplar på ordnivå eller konfidensvärden, och ljudbearbetningens förlopp är inte en tidsstämpel för ett visst ord. Detektion av ljudhändelser, känsloidentifiering och omformatering av transkriptionen ligger också utanför den dokumenterade utdataprofilen. Använd de returnerade turintervallen för en talartidslinje eller granskning på segmentnivå, och behåll de igenkända orden om ett separat redigeringssteg senare skapar mer lättlästa anteckningar.\n\nAnvändbara resultat omfattar ett färdigdikterat stycke, en transkription av en röstfråga, ett samtal med talartilldelning eller en tidslinje över yttranden. Jämför namn, tal och tekniska termer med originalinspelningen, bevara kopplingarna till läge och tidsangivelser, och håll de fullständiga turerna tillgängliga för granskning. Transkriptionen fastställer vad som kändes igen i ljudet; att besvara en talad fråga, översätta den eller omvandla den till mötesanteckningar hör till ett efterföljande steg i applikationen.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "3d689b755033861e560dfdd6e435094bd7e49bce4e1d1fe0a367afc37d6391c8",
    "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\">M</span><h2 id=\"sheet-title\">Meta: Muse Voice Transcribe 1.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Stäng\">×</button></div><div class=\"idline\"><span>Meta /</span><code>meta/muse-voice-transcribe-1.0</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|transcriptions|/v1/audio/transcriptions|meta%2Fmuse-voice-transcribe-1.0\">Igenkänning</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\">Muse Voice Transcribe 1.0 är Metas tal-till-text-modell för diktering, identifierade talarturer och transkriptioner med talarindelning. Den stöder språk- och vokabulärtips, språkväxling och tidsangivelser på turnivå, med separata arbetsflöden för inspelade klipp och direktsänt ljud.</p><dl class=\"card-io\" data-card-io><div><dt>Godkända indata</dt><dd>Ljud</dd></div><div><dt>Resultat</dt><dd>Text</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>Muse Voice Transcribe 1.0 är Metas modell för ljudperception, avsedd att transkribera tal, identifiera gränser mellan yttranden och koppla talarturer till talare. Den tillhör modellfamiljen Muse Spark och förenar taligenkänning, talarindelning och detektion av talslut i själva modellen. Utdata består av igenkänd text med den tids- och talarinformation som är tillgänglig i det valda läget.</p><p>Modellen bearbetar ljudet i 80 millisekunder långa block och avgör när den ska fortsätta lyssna eller lämna text. Dess adaptiva fördröjning gör att den kan invänta ytterligare ljud när ett ord är svårare att tolka. Det ger preliminär text medan talet kommer in, följt av färdiga transkriptionsresultat. Behandla den preliminära hypotesen och den färdiga talarturen som olika steg i lyssningsupplevelsen.</p><p>Välj mellan tre lägen. Push-to-talk är standard för ett enskilt kontrollerat yttrande, till exempel en röstfråga eller ett kort dikterat stycke. Endpointing låter modellen identifiera gränser mellan talarturer och returnera en färdig transkription för varje identifierat segment. Diarization kopplar det igenkända talet till talarmarkörer och är avsett för inspelningar med flera talare snarare än snabbast möjliga turtagning för röstkommandon.</p><p>För ett inspelat klipp returnerar arbetsflödet för filtranskription en fullständig transkription i en enda begäran. Standardresultatet är JSON med transkriptionen och ljudets längd, samt en turns-array i lägena endpointing och diarization. Varje tur kan innehålla en identifierare, start och slut i millisekunder samt den igenkända texten. Talarmarkörer finns i diarization-läget. Push-to-talk ger den fullständiga transkriptionen utan identifierade turer i den arrayen. Tillverkarens gränssnitt för inspelade filer kan även returnera ren text eller en ström av transkriptionshändelser. Ren text placerar identifierade turer på separata rader och kan innehålla talarmarkörer; en händelseström avslutas efter sin sista händelse utan en separat JSON-sammanfattning. Dess delta-läge för preliminära resultat returnerar text stegvis, medan den slutliga transkriptionshändelsen innehåller hela ordalydelsen.</p><p>Förbered en RIFF/WAVE-fil med enkanaligt, 16-bitars PCM-ljud med heltalssampel vid 16 eller 24 kHz. Modellens ursprungliga samplingsfrekvens är 24 kHz, och gränssnittet accepterar även 16 kHz. Konvertera andra behållarformat eller kodningar till denna WAV-form som stöds innan du skickar in en inspelning. Profilen för filtranskription tillåter ljud på upp till 10 minuter och en total begärandekropp på upp till 32 MB. Behåll originalinspelningen och eventuell konvertering tillsammans med den returnerade transkriptionen för senare granskning genom avlyssning.</p><p>Arbetsflödet för direktsänt ljud använder rått enkanaligt PCM-ljud med signerade 16-bitars sampel i little-endian-format, vid 16 eller 24 kHz och med en överföringstakt som ungefär motsvarar realtid. Dess dokumenterade sessionsfönster är 60 minuter. Meta beskriver inbyggt stöd för ljudindata som är längre än en timme; de dokumenterade gränserna för filer och livesessioner förblir separata gränser i gränssnitten. Välj arbetsflödet för inspelade filer eller direktsänt ljud beroende på om ljudet redan är färdigt eller fortfarande spelas in, och håll resultaten från separata sessioner kopplade till sina egna indatasegment.</p><p>Muse Voice Transcribe är tränad på fler än 70 språk, medan det dokumenterade igenkänningsgränssnittet räknar upp 25 språk som stöds. Bland dessa finns engelska, franska, tyska, spanska, arabiska, mandarin, hindi, japanska, koreanska, italienska och portugisiska. Den känner igen språkväxling inom eller mellan meningar. Ett språktips kan ange vilka språk som väntas i ljudet, men det styr igenkänningen snarare än att tvinga transkriptionen till ett enda språk.</p><p>Vokabulärtips hjälper med produkttermer, akronymer, namn eller platser som är viktiga i en inspelning. Ange de faktiska ord och stavningar som du väntar dig att höra. Nyckelordslistan påverkar igenkänningen utan att garantera exakt stavning, så kontrollera avgörande termer mot ljudet. Språktips och nyckelord väljs när transkriptionen börjar; håll dem anpassade till just den inspelningen i stället för att ändra deras innebörd medan en session pågår.</p><p>Modellen stöder talarindelning för samtal med fler än 20 talare. Markörer som A och B identifierar talare inom en och samma transkription. De är inte verifierade namn och fastställer inte att en markör avser samma person i en annan session. När uppgiften är att analysera ett möte kan du begära turer med talartilldelning, behålla inspelningen och använda markörerna för att ordna diskussionen innan verkliga deltagarnamn tilldelas genom det omgivande arbetsflödet.</p><p>Preliminära transkriptioner av direktsänt ljud kan ändras när mer tal kommer in. I kumulativt läge ersätter varje preliminärt resultat den föregående hypotesen i stället för att lägga till ännu en kopia av den. Ett identifierat talslut markerar en gräns, medan resultatet för den färdiga turen ger den slutliga texten och kan skilja sig från det sista preliminära resultatet. Håll överlappande turer kopplade till sina turidentifierare och ta emot de färdiga resultaten innan du betraktar en transkription som avslutad. När inmatningen av direktsänt ljud upphör ska du signalera slut på indata och fortsätta ta emot tills producenten har levererat alla väntande resultat. Om anslutningen stängs omedelbart kan dessa resultat gå förlorade; en identifierad talgräns avslutar en tur snarare än hela sessionen.</p><p>Tidsangivelserna ligger på turnivå. Den här profilen ger varken tidsstämplar på ordnivå eller konfidensvärden, och ljudbearbetningens förlopp är inte en tidsstämpel för ett visst ord. Detektion av ljudhändelser, känsloidentifiering och omformatering av transkriptionen ligger också utanför den dokumenterade utdataprofilen. Använd de returnerade turintervallen för en talartidslinje eller granskning på segmentnivå, och behåll de igenkända orden om ett separat redigeringssteg senare skapar mer lättlästa anteckningar.</p><p>Användbara resultat omfattar ett färdigdikterat stycke, en transkription av en röstfråga, ett samtal med talartilldelning eller en tidslinje över yttranden. Jämför namn, tal och tekniska termer med originalinspelningen, bevara kopplingarna till läge och tidsangivelser, och håll de fullständiga turerna tillgängliga för granskning. Transkriptionen fastställer vad som kändes igen i ljudet; att besvara en talad fråga, översätta den eller omvandla den till mötesanteckningar hör till ett efterföljande steg i applikationen.</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 · Transkribering</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Indatatyper</dt><dd><code>audio</code></dd></div><div><dt>Utdatatyper</dt><dd><code>text</code></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><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>meta/muse-voice-transcribe-1.0</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</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></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><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_audio</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>audio</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_conditions</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>Exemplet läser din faktiska, icke-tomma PCM WAV-fil, kodar filens samtliga byte som base64 och skickar input_audio.format som wav.</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> · exakt task_id från en befintlig mediepost som du äger</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">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>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=\"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>sekund inkommande ljud</th><td data-cell-label=\"Prislista\"><span class=\"card-cell-label\">Prislista</span>—</td><td data-cell-label=\"Debiteringsenhet\"><span class=\"card-cell-label\">Debiteringsenhet</span>per sekund indataljud</td><td data-cell-label=\"Avgift\"><span class=\"card-cell-label\">Avgift</span><div><span>Indata · sekund inkommande ljud</span> <b>$0.0001</b> <span class=\"price-unit\">per sekund indataljud</span></div></td></tr></tbody></table></div></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 · Transkribering</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-1834-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1834-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · faktisk WAV-fil och hela det ursprungliga resultatet</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-1834-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1834-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;meta/muse-voice-transcribe-1.0&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#39;}}\nPath(&#39;request.json&#39;).write_text(json.dumps(request, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Ta emot och spara resultat</h3><h4>Ailoot Ultra · Transkribering</h4><p class=\"note-s\">Hela den ursprungliga svarskroppen, statusen och vidarebefordrade svarshuvuden. Denna hanterare lägger inte till någon universell JSON-struktur, något textfält eller något uppgiftshölje.</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>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 svaret med headers, samtliga faktiska resultat, de ursprungliga returnerade identifierarna och alla användningsfält. Hämta den ursprungliga operationen utan att skicka skapandeförfrågan igen.</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 faktiskt X-Client-Request-ID och hela svaret. Läs de ursprungliga tillgångarna som du äger och deras exakta signerade innehållslänkar; skicka aldrig en osäker skapandebegäran igen.</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\">text (when present)</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span></td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">usage (when present)</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span></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>JSON-kroppen eller det uttryckliga kanoniska modell-ID:t är ogiltigt.</td><td data-cell-label=\"Nästa steg\"><span class=\"card-cell-label\">Nästa steg</span>Behåll svaret och korrigera det angivna fältet i begäran.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Villkor\"><span class=\"card-cell-label\">Villkor</span>API-nyckeln för Ailoot är ogiltig.</td><td data-cell-label=\"Nästa steg\"><span class=\"card-cell-label\">Nästa steg</span>Använd din behöriga API-nyckel för Ailoot.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>403 · <code>permission_error</code></th><td data-cell-label=\"Villkor\"><span class=\"card-cell-label\">Villkor</span>Nyckelgruppen ger inte tillträde till denna metod.</td><td data-cell-label=\"Nästa steg\"><span class=\"card-cell-label\">Nästa steg</span>Behåll de returnerade feluppgifterna.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Villkor\"><span class=\"card-cell-label\">Villkor</span>Den valda metoden har ingen tillåten rutt.</td><td data-cell-label=\"Nästa steg\"><span class=\"card-cell-label\">Nästa steg</span>Behåll de returnerade feluppgifterna.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Villkor\"><span class=\"card-cell-label\">Villkor</span>Den accepterade tariffen kan inte fastställa den mängd eller gräns för indata som krävs.</td><td data-cell-label=\"Nästa steg\"><span class=\"card-cell-label\">Nästa steg</span>Behåll svaret; använd den representation av indata som den accepterade tariffen kräver.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>503 · <code></code></th><td data-cell-label=\"Villkor\"><span class=\"card-cell-label\">Villkor</span>Nödvändig lagring, rutt, metodpris eller reservation är inte tillgänglig.</td><td data-cell-label=\"Nästa steg\"><span class=\"card-cell-label\">Nästa steg</span>Behåll hela det ursprungliga svaret. En osäker reservation ger inte tillstånd att skicka in igen.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>502 · <code>server_error</code></th><td data-cell-label=\"Villkor\"><span class=\"card-cell-label\">Villkor</span>Det ursprungliga resultatet, förbrukningen eller avräkningen kräver kontroll.</td><td data-cell-label=\"Nästa steg\"><span class=\"card-cell-label\">Nästa steg</span>Behåll det faktiska begärans-ID:t och det ursprungliga svaret. Läs den befintliga posten som du äger; skicka inte skapandebegäran 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=meta%2Fmuse-voice-transcribe-1.0&amp;route=Ultra&amp;caller=meta%2Fmuse-voice-transcribe-1.0&amp;fmt=transcriptions\"><code>meta/muse-voice-transcribe-1.0</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=meta%2Fmuse-voice-transcribe-1.0&amp;route=Ultra&amp;caller=meta%2Fmuse-voice-transcribe-1.0&amp;fmt=transcriptions\"><code>meta/muse-voice-transcribe-1.0</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "meta/muse-voice-transcribe-1.0",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|meta%2Fmuse-voice-transcribe-1.0",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "JSON-kroppen eller det uttryckliga kanoniska modell-ID:t är ogiltigt.",
                "http_status": 400,
                "recovery": "Behåll svaret och korrigera det angivna fältet i begäran.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "API-nyckeln för Ailoot är ogiltig.",
                "http_status": 401,
                "recovery": "Använd din behöriga API-nyckel för Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Nyckelgruppen ger inte tillträde till denna metod.",
                "http_status": 403,
                "recovery": "Behåll de returnerade feluppgifterna.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Den valda metoden har ingen tillåten rutt.",
                "http_status": 404,
                "recovery": "Behåll de returnerade feluppgifterna.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Den accepterade tariffen kan inte fastställa den mängd eller gräns för indata som krävs.",
                "http_status": 422,
                "recovery": "Behåll svaret; använd den representation av indata som den accepterade tariffen kräver.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Nödvändig lagring, rutt, metodpris eller reservation är inte tillgänglig.",
                "http_status": 503,
                "recovery": "Behåll hela det ursprungliga svaret. En osäker reservation ger inte tillstånd att skicka in igen.",
                "type": null
              },
              {
                "code": null,
                "condition": "Det ursprungliga resultatet, förbrukningen eller avräkningen kräver kontroll.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Behåll det faktiska begärans-ID:t och det ursprungliga svaret. Läs den befintliga posten som du äger; skicka inte skapandebegäran igen.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Behåll faktiskt X-Client-Request-ID och hela svaret. Läs de ursprungliga tillgångarna som du äger och deras exakta signerade innehållslänkar; skicka aldrig en osäker skapandebegäran igen."
            },
            "outputs": {
              "all_results": "Spara hela svaret med headers, samtliga faktiska resultat, de ursprungliga returnerade identifierarna och alla användningsfält. Hämta den ursprungliga operationen utan att skicka skapandeförfrågan igen.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Hela den ursprungliga svarskroppen, statusen och vidarebefordrade svarshuvuden. Denna hanterare lägger inte till någon universell JSON-struktur, något textfält eller något uppgiftshölje."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "meta/muse-voice-transcribe-1.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "meta/muse-voice-transcribe-1.0"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "meta/muse-voice-transcribe-1.0"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Exemplet läser din faktiska, icke-tomma PCM WAV-fil, kodar filens samtliga byte som base64 och skickar input_audio.format som wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "exakt task_id från en befintlig mediepost som du äger",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'meta/muse-voice-transcribe-1.0', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Transkribering",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.0001
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0001",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "meta/muse-voice-transcribe-1.0",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "710fc364f9bbf15344b29d2fef71b0c1b5cc953adb108e45e9a6ec2fafa364ce",
    "input_html_sha256": "d9cd5656801eaa60ed21221333631074a7ad9fb34df41e2d55037fc704478e67",
    "private_audit_sha256": "7ffbf013018ddb3c59de8ce44eb6daa185a52eeeae30a2b0d8cd102cdf4dc555",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/sv/meta-muse-voice-transcribe-1-0/",
    "description": "Muse Voice Transcribe 1.0 är Metas tal-till-text-modell för diktering, identifierade talarturer och transkriptioner med talarindelning. Den stöder språk- och vokabulärtips, språkväxling och tidsangivelser på turnivå, med separata arbetsflöden för inspelade klipp och direktsänt ljud.",
    "locale": "sv",
    "md_url": "https://ailoot.ai/models/sv/meta-muse-voice-transcribe-1-0/index.md",
    "title": "Meta: Muse Voice Transcribe 1.0 — Ailoot",
    "url": "https://ailoot.ai/models/sv/meta-muse-voice-transcribe-1-0/"
  },
  "rawModel": {
    "about": "Muse Voice Transcribe 1.0 är Metas modell för ljudperception, avsedd att transkribera tal, identifiera gränser mellan yttranden och koppla talarturer till talare. Den tillhör modellfamiljen Muse Spark och förenar taligenkänning, talarindelning och detektion av talslut i själva modellen. Utdata består av igenkänd text med den tids- och talarinformation som är tillgänglig i det valda läget.\n\nModellen bearbetar ljudet i 80 millisekunder långa block och avgör när den ska fortsätta lyssna eller lämna text. Dess adaptiva fördröjning gör att den kan invänta ytterligare ljud när ett ord är svårare att tolka. Det ger preliminär text medan talet kommer in, följt av färdiga transkriptionsresultat. Behandla den preliminära hypotesen och den färdiga talarturen som olika steg i lyssningsupplevelsen.\n\nVälj mellan tre lägen. Push-to-talk är standard för ett enskilt kontrollerat yttrande, till exempel en röstfråga eller ett kort dikterat stycke. Endpointing låter modellen identifiera gränser mellan talarturer och returnera en färdig transkription för varje identifierat segment. Diarization kopplar det igenkända talet till talarmarkörer och är avsett för inspelningar med flera talare snarare än snabbast möjliga turtagning för röstkommandon.\n\nFör ett inspelat klipp returnerar arbetsflödet för filtranskription en fullständig transkription i en enda begäran. Standardresultatet är JSON med transkriptionen och ljudets längd, samt en turns-array i lägena endpointing och diarization. Varje tur kan innehålla en identifierare, start och slut i millisekunder samt den igenkända texten. Talarmarkörer finns i diarization-läget. Push-to-talk ger den fullständiga transkriptionen utan identifierade turer i den arrayen. Tillverkarens gränssnitt för inspelade filer kan även returnera ren text eller en ström av transkriptionshändelser. Ren text placerar identifierade turer på separata rader och kan innehålla talarmarkörer; en händelseström avslutas efter sin sista händelse utan en separat JSON-sammanfattning. Dess delta-läge för preliminära resultat returnerar text stegvis, medan den slutliga transkriptionshändelsen innehåller hela ordalydelsen.\n\nFörbered en RIFF/WAVE-fil med enkanaligt, 16-bitars PCM-ljud med heltalssampel vid 16 eller 24 kHz. Modellens ursprungliga samplingsfrekvens är 24 kHz, och gränssnittet accepterar även 16 kHz. Konvertera andra behållarformat eller kodningar till denna WAV-form som stöds innan du skickar in en inspelning. Profilen för filtranskription tillåter ljud på upp till 10 minuter och en total begärandekropp på upp till 32 MB. Behåll originalinspelningen och eventuell konvertering tillsammans med den returnerade transkriptionen för senare granskning genom avlyssning.\n\nArbetsflödet för direktsänt ljud använder rått enkanaligt PCM-ljud med signerade 16-bitars sampel i little-endian-format, vid 16 eller 24 kHz och med en överföringstakt som ungefär motsvarar realtid. Dess dokumenterade sessionsfönster är 60 minuter. Meta beskriver inbyggt stöd för ljudindata som är längre än en timme; de dokumenterade gränserna för filer och livesessioner förblir separata gränser i gränssnitten. Välj arbetsflödet för inspelade filer eller direktsänt ljud beroende på om ljudet redan är färdigt eller fortfarande spelas in, och håll resultaten från separata sessioner kopplade till sina egna indatasegment.\n\nMuse Voice Transcribe är tränad på fler än 70 språk, medan det dokumenterade igenkänningsgränssnittet räknar upp 25 språk som stöds. Bland dessa finns engelska, franska, tyska, spanska, arabiska, mandarin, hindi, japanska, koreanska, italienska och portugisiska. Den känner igen språkväxling inom eller mellan meningar. Ett språktips kan ange vilka språk som väntas i ljudet, men det styr igenkänningen snarare än att tvinga transkriptionen till ett enda språk.\n\nVokabulärtips hjälper med produkttermer, akronymer, namn eller platser som är viktiga i en inspelning. Ange de faktiska ord och stavningar som du väntar dig att höra. Nyckelordslistan påverkar igenkänningen utan att garantera exakt stavning, så kontrollera avgörande termer mot ljudet. Språktips och nyckelord väljs när transkriptionen börjar; håll dem anpassade till just den inspelningen i stället för att ändra deras innebörd medan en session pågår.\n\nModellen stöder talarindelning för samtal med fler än 20 talare. Markörer som A och B identifierar talare inom en och samma transkription. De är inte verifierade namn och fastställer inte att en markör avser samma person i en annan session. När uppgiften är att analysera ett möte kan du begära turer med talartilldelning, behålla inspelningen och använda markörerna för att ordna diskussionen innan verkliga deltagarnamn tilldelas genom det omgivande arbetsflödet.\n\nPreliminära transkriptioner av direktsänt ljud kan ändras när mer tal kommer in. I kumulativt läge ersätter varje preliminärt resultat den föregående hypotesen i stället för att lägga till ännu en kopia av den. Ett identifierat talslut markerar en gräns, medan resultatet för den färdiga turen ger den slutliga texten och kan skilja sig från det sista preliminära resultatet. Håll överlappande turer kopplade till sina turidentifierare och ta emot de färdiga resultaten innan du betraktar en transkription som avslutad. När inmatningen av direktsänt ljud upphör ska du signalera slut på indata och fortsätta ta emot tills producenten har levererat alla väntande resultat. Om anslutningen stängs omedelbart kan dessa resultat gå förlorade; en identifierad talgräns avslutar en tur snarare än hela sessionen.\n\nTidsangivelserna ligger på turnivå. Den här profilen ger varken tidsstämplar på ordnivå eller konfidensvärden, och ljudbearbetningens förlopp är inte en tidsstämpel för ett visst ord. Detektion av ljudhändelser, känsloidentifiering och omformatering av transkriptionen ligger också utanför den dokumenterade utdataprofilen. Använd de returnerade turintervallen för en talartidslinje eller granskning på segmentnivå, och behåll de igenkända orden om ett separat redigeringssteg senare skapar mer lättlästa anteckningar.\n\nAnvändbara resultat omfattar ett färdigdikterat stycke, en transkription av en röstfråga, ett samtal med talartilldelning eller en tidslinje över yttranden. Jämför namn, tal och tekniska termer med originalinspelningen, bevara kopplingarna till läge och tidsangivelser, och håll de fullständiga turerna tillgängliga för granskning. Transkriptionen fastställer vad som kändes igen i ljudet; att besvara en talad fråga, översätta den eller omvandla den till mötesanteckningar hör till ett efterföljande steg i applikationen.",
    "alias_of": null,
    "aliases": [],
    "author": "Meta",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0001",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "Fullständig prissättning för konfigurationen finns i detaljerna."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "meta/muse-voice-transcribe-1.0",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "JSON-kroppen eller det uttryckliga kanoniska modell-ID:t är ogiltigt.",
                "http_status": 400,
                "recovery": "Behåll svaret och korrigera det angivna fältet i begäran.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "API-nyckeln för Ailoot är ogiltig.",
                "http_status": 401,
                "recovery": "Använd din behöriga API-nyckel för Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Nyckelgruppen ger inte tillträde till denna metod.",
                "http_status": 403,
                "recovery": "Behåll de returnerade feluppgifterna.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Den valda metoden har ingen tillåten rutt.",
                "http_status": 404,
                "recovery": "Behåll de returnerade feluppgifterna.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Den accepterade tariffen kan inte fastställa den mängd eller gräns för indata som krävs.",
                "http_status": 422,
                "recovery": "Behåll svaret; använd den representation av indata som den accepterade tariffen kräver.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Nödvändig lagring, rutt, metodpris eller reservation är inte tillgänglig.",
                "http_status": 503,
                "recovery": "Behåll hela det ursprungliga svaret. En osäker reservation ger inte tillstånd att skicka in igen.",
                "type": null
              },
              {
                "code": null,
                "condition": "Det ursprungliga resultatet, förbrukningen eller avräkningen kräver kontroll.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Behåll det faktiska begärans-ID:t och det ursprungliga svaret. Läs den befintliga posten som du äger; skicka inte skapandebegäran igen.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Behåll faktiskt X-Client-Request-ID och hela svaret. Läs de ursprungliga tillgångarna som du äger och deras exakta signerade innehållslänkar; skicka aldrig en osäker skapandebegäran igen."
            },
            "outputs": {
              "all_results": "Spara hela svaret med headers, samtliga faktiska resultat, de ursprungliga returnerade identifierarna och alla användningsfält. Hämta den ursprungliga operationen utan att skicka skapandeförfrågan igen.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Hela den ursprungliga svarskroppen, statusen och vidarebefordrade svarshuvuden. Denna hanterare lägger inte till någon universell JSON-struktur, något textfält eller något uppgiftshölje."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "meta/muse-voice-transcribe-1.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "meta/muse-voice-transcribe-1.0"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "meta/muse-voice-transcribe-1.0"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Exemplet läser din faktiska, icke-tomma PCM WAV-fil, kodar filens samtliga byte som base64 och skickar input_audio.format som wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "exakt task_id från en befintlig mediepost som du äger",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'meta/muse-voice-transcribe-1.0', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Transkribering",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.0001
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0001",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "meta/muse-voice-transcribe-1.0",
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra"
      }
    ],
    "name": "Meta: Muse Voice Transcribe 1.0",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Muse Voice Transcribe 1.0 är Metas tal-till-text-modell för diktering, identifierade talarturer och transkriptioner med talarindelning. Den stöder språk- och vokabulärtips, språkväxling och tidsangivelser på turnivå, med separata arbetsflöden för inspelade klipp och direktsänt ljud."
  },
  "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": "Muse Voice Transcribe 1.0 är Metas tal-till-text-modell för diktering, identifierade talarturer och transkriptioner med talarindelning. Den stöder språk- och vokabulärtips, språkväxling och tidsangivelser på turnivå, med separata arbetsflöden för inspelade klipp och direktsänt ljud.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "5d07fa3969d5e029899da51801e4443d6435096cd89a625740568faaa48e2bab",
    "renderer_sha256": "8a45bb31b83d2551e6d975cf4683518c7cb445a54b9394a01947f4dd103f1051"
  },
  "sourceRevision": "20809f99e8a71ff93fd08d082c0560bdba39857090158c6f6283d4c74efade6d"
}
