{
  "aboutHtml": "<p>Qwen3-ASR-1.7B é o modelo maior de reconhecimento de fala da Qwen na família Qwen3-ASR. Recebe áudio e devolve texto reconhecido juntamente com uma etiqueta de idioma. A família assenta na base de compreensão de áudio de Qwen3-Omni e usa um único modelo ASR para reconhecimento offline e em streaming. A edição 1.7B destaca a qualidade de reconhecimento, enquanto a edição 0.6B, identificada separadamente, destaca a eficiência. Continuam a ser escolhas distintas, mesmo partilhando a cobertura linguística e os fluxos de reconhecimento documentados.</p><h4>Identificação do idioma e cobertura de áudio</h4><p>O fabricante lista 30 idiomas e 22 dialetos chineses, bem como sotaques de inglês de várias regiões. A lista de idiomas inclui chinês, inglês, cantonês, árabe, alemão, francês, espanhol, português, indonésio, italiano, coreano, russo, tailandês, vietnamita, japonês, turco, hindi, malaio, neerlandês, sueco, dinamarquês, finlandês, polaco, checo, filipino, persa, grego, húngaro, macedónio e romeno. Os tipos de áudio suportados incluem fala, voz cantada e canções com música de fundo. Estas capacidades tornam a transcrição útil para entrevistas, aulas, gravações de voz e revisão de letras, mantendo o áudio original para verificar passagens difíceis.</p><h4>Preparação do áudio e obtenção de uma transcrição</h4><p>O conjunto de ferramentas do produtor aceita uma referência a um ficheiro de áudio, áudio codificado ou uma forma de onda acompanhada da respetiva frequência de amostragem, e o fluxo offline pode processar uma coleção de gravações. Pode detetar automaticamente o idioma ou usar um idioma suportado especificado. Escolha deteção automática para uma gravação desconhecida; forneça o idioma realmente falado quando for conhecido e relevante para a tarefa. O resultado de exemplo apresenta o idioma detetado ou selecionado e o texto reconhecido. A definição de idioma orienta o reconhecimento da gravação, em vez de definir um pedido de reformulação do conteúdo noutro idioma.</p><p>Para uma entrevista, mantenha a gravação associada à sua data, tema e identificador de origem e use depois o texto devolvido como transcrição pesquisável. Para uma aula, preserve termos técnicos e expressões numéricas durante a revisão, em vez de substituir silenciosamente palavras pouco claras por uma explicação plausível. Para uma canção, verifique a letra reconhecida enquanto ouve a linha vocal, especialmente quando a música oculta uma sílaba. A transcrição pode tornar-se entrada para um passo separado de resumo, tradução ou edição depois de as palavras terem sido verificadas face ao áudio.</p><h4>Reconhecimento em streaming e respetivo âmbito</h4><p>A mesma família ASR suporta reconhecimento à medida que o áudio chega. O exemplo de streaming do fabricante fornece sucessivos blocos de áudio a um estado de reconhecimento mantido, apresenta texto provisório e termina depois o fluxo para obter o idioma e a transcrição finais. Distinga o texto incremental atual do resultado concluído ao preparar legendas em direto ou uma transcrição contínua. A implementação de streaming documentada não combina streaming com inferência em lote nem devolve marcas temporais; uma transcrição temporizada usa outro fluxo. São detalhes da implementação do produtor, e não uma promessa sobre o transporte ou a interface de legendas em direto de uma aplicação.</p><h4>Temporização de palavras ou caracteres com um aligner separado</h4><p>Qwen3-ForcedAligner-0.6B alinha uma gravação de áudio com texto fornecido e prevê tempos de início e fim ao nível da palavra ou do carácter. É um modelo separado de ambas as edições Qwen3-ASR. O conjunto de ferramentas ASR pode usar esse aligner quando se pedem marcas temporais no fluxo de transcrição offline, ou o alinhamento pode ser executado sobre um par de texto e áudio existente. A cobertura documentada do aligner é de 11 idiomas: chinês, inglês, cantonês, francês, alemão, italiano, japonês, coreano, português, russo e espanhol. A duração de fala indicada é de até cinco minutos; é o âmbito do aligner, e não um limite de cinco minutos para transcrição ASR.</p><p>Para preparar legendas, obtenha e reveja primeiro a transcrição e alinhe-a depois com a gravação de origem quando esse fluxo de alinhamento for adequado. Use os tempos de início e fim devolvidos para preparar segmentos de legendas e examine as fronteiras enquanto ouve. O alinhamento associa palavras fornecidas ao áudio; não deve ser tratado como prova de que uma transcrição incorreta foi corrigida. O resultado útil é uma transcrição verificada com informação temporal que permanece ligada à gravação que descreve.</p><h4>Gravações longas e limites práticos</h4><p>A família suporta transcrição de áudio longo, e os exemplos oficiais instruem os utilizadores a permitir mais texto gerado para entradas mais longas. As definições ilustrativas de tokens são escolhas de configuração, e não um limite universal de contexto do modelo ou de duração de áudio. Planeie a extensão de saída de acordo com a gravação e verifique se o final está presente. Reveja nomes, quantidades, mudanças de idioma, palavras ocultadas e fala sobreposta face ao som original. A cobertura linguística e a robustez perante áudio difícil não garantem uma transcrição perfeita para todos os sotaques, gravações ou arranjos musicais. Um resultado completo preserva as palavras reconhecidas, o seu idioma e a sua relação com o áudio, para permitir pesquisa, edição ou uso num fluxo de conteúdos posterior.</p>",
  "aboutText": "Qwen3-ASR-1.7B é o modelo maior de reconhecimento de fala da Qwen na família Qwen3-ASR. Recebe áudio e devolve texto reconhecido juntamente com uma etiqueta de idioma. A família assenta na base de compreensão de áudio de Qwen3-Omni e usa um único modelo ASR para reconhecimento offline e em streaming. A edição 1.7B destaca a qualidade de reconhecimento, enquanto a edição 0.6B, identificada separadamente, destaca a eficiência. Continuam a ser escolhas distintas, mesmo partilhando a cobertura linguística e os fluxos de reconhecimento documentados.\n\n### Identificação do idioma e cobertura de áudio\n\nO fabricante lista 30 idiomas e 22 dialetos chineses, bem como sotaques de inglês de várias regiões. A lista de idiomas inclui chinês, inglês, cantonês, árabe, alemão, francês, espanhol, português, indonésio, italiano, coreano, russo, tailandês, vietnamita, japonês, turco, hindi, malaio, neerlandês, sueco, dinamarquês, finlandês, polaco, checo, filipino, persa, grego, húngaro, macedónio e romeno. Os tipos de áudio suportados incluem fala, voz cantada e canções com música de fundo. Estas capacidades tornam a transcrição útil para entrevistas, aulas, gravações de voz e revisão de letras, mantendo o áudio original para verificar passagens difíceis.\n\n### Preparação do áudio e obtenção de uma transcrição\n\nO conjunto de ferramentas do produtor aceita uma referência a um ficheiro de áudio, áudio codificado ou uma forma de onda acompanhada da respetiva frequência de amostragem, e o fluxo offline pode processar uma coleção de gravações. Pode detetar automaticamente o idioma ou usar um idioma suportado especificado. Escolha deteção automática para uma gravação desconhecida; forneça o idioma realmente falado quando for conhecido e relevante para a tarefa. O resultado de exemplo apresenta o idioma detetado ou selecionado e o texto reconhecido. A definição de idioma orienta o reconhecimento da gravação, em vez de definir um pedido de reformulação do conteúdo noutro idioma.\n\nPara uma entrevista, mantenha a gravação associada à sua data, tema e identificador de origem e use depois o texto devolvido como transcrição pesquisável. Para uma aula, preserve termos técnicos e expressões numéricas durante a revisão, em vez de substituir silenciosamente palavras pouco claras por uma explicação plausível. Para uma canção, verifique a letra reconhecida enquanto ouve a linha vocal, especialmente quando a música oculta uma sílaba. A transcrição pode tornar-se entrada para um passo separado de resumo, tradução ou edição depois de as palavras terem sido verificadas face ao áudio.\n\n### Reconhecimento em streaming e respetivo âmbito\n\nA mesma família ASR suporta reconhecimento à medida que o áudio chega. O exemplo de streaming do fabricante fornece sucessivos blocos de áudio a um estado de reconhecimento mantido, apresenta texto provisório e termina depois o fluxo para obter o idioma e a transcrição finais. Distinga o texto incremental atual do resultado concluído ao preparar legendas em direto ou uma transcrição contínua. A implementação de streaming documentada não combina streaming com inferência em lote nem devolve marcas temporais; uma transcrição temporizada usa outro fluxo. São detalhes da implementação do produtor, e não uma promessa sobre o transporte ou a interface de legendas em direto de uma aplicação.\n\n### Temporização de palavras ou caracteres com um aligner separado\n\nQwen3-ForcedAligner-0.6B alinha uma gravação de áudio com texto fornecido e prevê tempos de início e fim ao nível da palavra ou do carácter. É um modelo separado de ambas as edições Qwen3-ASR. O conjunto de ferramentas ASR pode usar esse aligner quando se pedem marcas temporais no fluxo de transcrição offline, ou o alinhamento pode ser executado sobre um par de texto e áudio existente. A cobertura documentada do aligner é de 11 idiomas: chinês, inglês, cantonês, francês, alemão, italiano, japonês, coreano, português, russo e espanhol. A duração de fala indicada é de até cinco minutos; é o âmbito do aligner, e não um limite de cinco minutos para transcrição ASR.\n\nPara preparar legendas, obtenha e reveja primeiro a transcrição e alinhe-a depois com a gravação de origem quando esse fluxo de alinhamento for adequado. Use os tempos de início e fim devolvidos para preparar segmentos de legendas e examine as fronteiras enquanto ouve. O alinhamento associa palavras fornecidas ao áudio; não deve ser tratado como prova de que uma transcrição incorreta foi corrigida. O resultado útil é uma transcrição verificada com informação temporal que permanece ligada à gravação que descreve.\n\n### Gravações longas e limites práticos\n\nA família suporta transcrição de áudio longo, e os exemplos oficiais instruem os utilizadores a permitir mais texto gerado para entradas mais longas. As definições ilustrativas de tokens são escolhas de configuração, e não um limite universal de contexto do modelo ou de duração de áudio. Planeie a extensão de saída de acordo com a gravação e verifique se o final está presente. Reveja nomes, quantidades, mudanças de idioma, palavras ocultadas e fala sobreposta face ao som original. A cobertura linguística e a robustez perante áudio difícil não garantem uma transcrição perfeita para todos os sotaques, gravações ou arranjos musicais. Um resultado completo preserva as palavras reconhecidas, o seu idioma e a sua relação com o áudio, para permitir pesquisa, edição ou uso num fluxo de conteúdos posterior.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "a13055a87f1ccac222de882ed79214bcfefd94e019721e59741e177a205eb896",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "pt-pt",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">Al</span><h2 id=\"sheet-title\">Qwen: Qwen3 ASR 1.7B</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fechar\">×</button></div><div class=\"idline\"><span>Alibaba /</span><code>qwen/qwen3-asr-1.7b</code><button type=\"button\" id=\"copy-id\">Copiar ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Secções do cartão do modelo\"><button type=\"button\" data-card-jump=\"overview\">Introdução</button><button type=\"button\" data-card-jump=\"methods\">Entradas e métodos</button><button type=\"button\" data-card-jump=\"pricing\">Tarifários</button><button type=\"button\" data-card-jump=\"examples\">Exemplos</button><button type=\"button\" data-card-jump=\"results\">Resultados</button><button type=\"button\" data-card-jump=\"aliases\">Aliases</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Métodos da API\"><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|qwen%2Fqwen3-asr-1.7b\">Reconhecimento</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\">Introdução</h3><p class=\"mdesc-full\">Qwen3-ASR-1.7B converte fala e canto em texto e identifica o idioma. A Qwen documenta 30 idiomas, 22 dialetos chineses e reconhecimento offline ou em streaming; a temporização por palavra usa um fluxo Qwen3-ForcedAligner separado.</p><dl class=\"card-io\" data-card-io><div><dt>Entradas aceites</dt><dd>Áudio</dd></div><div><dt>Resultados</dt><dd>Texto</dd></div></dl><details class=\"card-about\"><summary>Sobre o modelo</summary><p class=\"note-s\" data-model-method-boundary>Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.</p><div class=\"mabout\" id=\"m-about\"><p>Qwen3-ASR-1.7B é o modelo maior de reconhecimento de fala da Qwen na família Qwen3-ASR. Recebe áudio e devolve texto reconhecido juntamente com uma etiqueta de idioma. A família assenta na base de compreensão de áudio de Qwen3-Omni e usa um único modelo ASR para reconhecimento offline e em streaming. A edição 1.7B destaca a qualidade de reconhecimento, enquanto a edição 0.6B, identificada separadamente, destaca a eficiência. Continuam a ser escolhas distintas, mesmo partilhando a cobertura linguística e os fluxos de reconhecimento documentados.</p><h4>Identificação do idioma e cobertura de áudio</h4><p>O fabricante lista 30 idiomas e 22 dialetos chineses, bem como sotaques de inglês de várias regiões. A lista de idiomas inclui chinês, inglês, cantonês, árabe, alemão, francês, espanhol, português, indonésio, italiano, coreano, russo, tailandês, vietnamita, japonês, turco, hindi, malaio, neerlandês, sueco, dinamarquês, finlandês, polaco, checo, filipino, persa, grego, húngaro, macedónio e romeno. Os tipos de áudio suportados incluem fala, voz cantada e canções com música de fundo. Estas capacidades tornam a transcrição útil para entrevistas, aulas, gravações de voz e revisão de letras, mantendo o áudio original para verificar passagens difíceis.</p><h4>Preparação do áudio e obtenção de uma transcrição</h4><p>O conjunto de ferramentas do produtor aceita uma referência a um ficheiro de áudio, áudio codificado ou uma forma de onda acompanhada da respetiva frequência de amostragem, e o fluxo offline pode processar uma coleção de gravações. Pode detetar automaticamente o idioma ou usar um idioma suportado especificado. Escolha deteção automática para uma gravação desconhecida; forneça o idioma realmente falado quando for conhecido e relevante para a tarefa. O resultado de exemplo apresenta o idioma detetado ou selecionado e o texto reconhecido. A definição de idioma orienta o reconhecimento da gravação, em vez de definir um pedido de reformulação do conteúdo noutro idioma.</p><p>Para uma entrevista, mantenha a gravação associada à sua data, tema e identificador de origem e use depois o texto devolvido como transcrição pesquisável. Para uma aula, preserve termos técnicos e expressões numéricas durante a revisão, em vez de substituir silenciosamente palavras pouco claras por uma explicação plausível. Para uma canção, verifique a letra reconhecida enquanto ouve a linha vocal, especialmente quando a música oculta uma sílaba. A transcrição pode tornar-se entrada para um passo separado de resumo, tradução ou edição depois de as palavras terem sido verificadas face ao áudio.</p><h4>Reconhecimento em streaming e respetivo âmbito</h4><p>A mesma família ASR suporta reconhecimento à medida que o áudio chega. O exemplo de streaming do fabricante fornece sucessivos blocos de áudio a um estado de reconhecimento mantido, apresenta texto provisório e termina depois o fluxo para obter o idioma e a transcrição finais. Distinga o texto incremental atual do resultado concluído ao preparar legendas em direto ou uma transcrição contínua. A implementação de streaming documentada não combina streaming com inferência em lote nem devolve marcas temporais; uma transcrição temporizada usa outro fluxo. São detalhes da implementação do produtor, e não uma promessa sobre o transporte ou a interface de legendas em direto de uma aplicação.</p><h4>Temporização de palavras ou caracteres com um aligner separado</h4><p>Qwen3-ForcedAligner-0.6B alinha uma gravação de áudio com texto fornecido e prevê tempos de início e fim ao nível da palavra ou do carácter. É um modelo separado de ambas as edições Qwen3-ASR. O conjunto de ferramentas ASR pode usar esse aligner quando se pedem marcas temporais no fluxo de transcrição offline, ou o alinhamento pode ser executado sobre um par de texto e áudio existente. A cobertura documentada do aligner é de 11 idiomas: chinês, inglês, cantonês, francês, alemão, italiano, japonês, coreano, português, russo e espanhol. A duração de fala indicada é de até cinco minutos; é o âmbito do aligner, e não um limite de cinco minutos para transcrição ASR.</p><p>Para preparar legendas, obtenha e reveja primeiro a transcrição e alinhe-a depois com a gravação de origem quando esse fluxo de alinhamento for adequado. Use os tempos de início e fim devolvidos para preparar segmentos de legendas e examine as fronteiras enquanto ouve. O alinhamento associa palavras fornecidas ao áudio; não deve ser tratado como prova de que uma transcrição incorreta foi corrigida. O resultado útil é uma transcrição verificada com informação temporal que permanece ligada à gravação que descreve.</p><h4>Gravações longas e limites práticos</h4><p>A família suporta transcrição de áudio longo, e os exemplos oficiais instruem os utilizadores a permitir mais texto gerado para entradas mais longas. As definições ilustrativas de tokens são escolhas de configuração, e não um limite universal de contexto do modelo ou de duração de áudio. Planeie a extensão de saída de acordo com a gravação e verifique se o final está presente. Reveja nomes, quantidades, mudanças de idioma, palavras ocultadas e fala sobreposta face ao som original. A cobertura linguística e a robustez perante áudio difícil não garantem uma transcrição perfeita para todos os sotaques, gravações ou arranjos musicais. Um resultado completo preserva as palavras reconhecidas, o seu idioma e a sua relação com o áudio, para permitir pesquisa, edição ou uso num fluxo de conteúdos posterior.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponível no Ailoot · entradas e métodos</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Transcrição</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Entrada</dt><dd><code>audio</code></dd></div><div><dt>Saída</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Campo</th><th>Tipo</th><th>Requisito</th><th>Valores e limites</th><th>Predefinição</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obrigatório</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>qwen/qwen3-asr-1.7b</div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>object</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obrigatório</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">language</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">temperature</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>number</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>Mínimo: 0</div><div>Máximo: 1</div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>json, verbose_json</div></td><td data-cell-label=\"Predefinição\" data-default=\"known\"><span class=\"card-cell-label\">Predefinição</span>json</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">timestamp_granularities</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>array</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>object</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Parâmetros e ciclo de vida do método</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parâmetro</th><th>Contrato</th></tr></thead><tbody><tr><th data-cell-label=\"Parâmetro\" scope=\"row\"><span class=\"card-cell-label\">Parâmetro</span><code>content_type</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>application/json</td></tr><tr><th data-cell-label=\"Parâmetro\" scope=\"row\"><span class=\"card-cell-label\">Parâmetro</span><code>required</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>model, input_audio</td></tr><tr><th data-cell-label=\"Parâmetro\" scope=\"row\"><span class=\"card-cell-label\">Parâmetro</span><code>material_types</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>audio</td></tr><tr><th data-cell-label=\"Parâmetro\" scope=\"row\"><span class=\"card-cell-label\">Parâmetro</span><code>material_conditions</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>Leia um ficheiro WAV real e codifique os respetivos bytes reais para a entrada JSON input_audio declarada; não é anunciada qualquer rota multipart para esta declaração exata apenas de JSON.</td></tr></tbody></table></div><p>Ciclo de vida: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · task_id efetivamente devolvido ou registo na biblioteca de multimédia</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\">Tarifários</h3><div class=\"card-result-process\" data-billing-basis><h5>Cálculo do custo final</h5><p class=\"note-s\">As tarifas apresentadas permitem estimar o custo antes da geração. O montante final cobrado é calculado a partir do custo registado para a geração original. A duração medida do resultado e as quantidades previstas não correspondem à quantidade final faturável.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.</p><dl data-price-conditions><dt>Modo rápido</dt><dd>Não especificado <span class=\"note-s\">Quando o modo rápido está selecionado</span></dd><dt>Modo flex</dt><dd>Não especificado <span class=\"note-s\">Quando o modo flex está selecionado</span></dd><dt>Esforço máximo de raciocínio</dt><dd>Não especificado <span class=\"note-s\">Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifas estimadas para comparação</h4><h4>Preços por configuração</h4><p class=\"note-s\">Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuração</th><th>Tabela de tarifas</th><th>Quantidade prevista</th><th>Unidade de faturação</th><th>Custo</th></tr></thead><tbody><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Tarifas base por token</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>Tarifa base</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>—</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>—</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Entrada · Tokens de entrada · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Saída · Tokens de saída · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Leitura da cache · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escrita na cache · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escrita na cache, 1 hora · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>segundo de áudio de entrada</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>—</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>—</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>por segundo de áudio de entrada</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Entrada · segundo de áudio de entrada · Estimativa apenas para comparação</span> <b>$0.000015</b> <span class=\"price-unit\">por segundo de áudio de entrada</span></div></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Custo estimado de geração</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>—</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>estimativa para uma geração</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>—</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Custo estimado de geração · Estimativa apenas para comparação</span> <b>$0.000015</b> <span class=\"price-unit\">estimativa antes da geração</span></div><p class=\"note-s\">Esta estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída.</p></td></tr></tbody></table></div></div><p class=\"note-s\">O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. <a href=\"/docs/pt-pt/billing/reserve/\">Como funcionam a reserva e a liquidação →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exemplos de pedidos</h3><h4>Ailoot Ultra · Transcrição</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes de código\"><button class=\"cg-tab\" id=\"model-code-2390-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2390-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · corpo nativo exato e resultado completo</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copiar código\"><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-2390-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2390-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 WAV recording}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nimport base64\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;): raise SystemExit(&#39;Supply an actual WAV audio file&#39;)\nif len(audio)&gt;26214400: raise SystemExit(&#39;Use a documented supported large-file flow&#39;)\nrequest={&#39;model&#39;: &#39;qwen/qwen3-asr-1.7b&#39;, &#39;input_audio&#39;: {&#39;data&#39;: &#39;${BASE64_ACTUAL_WAV_BYTES}&#39;, &#39;format&#39;: &#39;wav&#39;}}\nrequest[&#39;input_audio&#39;][&#39;data&#39;]=base64.b64encode(audio).decode(&#39;ascii&#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# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Receber e guardar os resultados</h3><h4>Ailoot Ultra · Transcrição</h4><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Outras leituras de conteúdo</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes de código\"><button class=\"cg-tab\" id=\"model-code-2391-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2391-panel-0\" aria-selected=\"true\" tabindex=\"0\">Ler os recursos existentes de que é titular</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copiar código\"><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-2391-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2391-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Guardar todos os resultados concluídos</h5><p class=\"note-s\">Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.</p><p class=\"note-s\">Conserve a resposta completa e os cabeçalhos, todos os resultados efetivamente produzidos, os identificadores originais devolvidos e todos os campos de utilização. Recupere a operação original sem voltar a enviar o pedido de criação.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Se for necessário verificar a resposta original</h5><p class=\"note-s\">Guarde o X-Client-Request-ID devolvido para reconciliação. Consulte apenas os valores task_id/asset_id efetivamente devolvidos ou a sua biblioteca de multimédia; nunca construa um URL de tarefa a partir do ID da operação e nunca volte a enviar o pedido de criação.</p></div><details class=\"card-about\" data-output-fields><summary>Campos da resposta</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Campo</th><th>Tipo</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">text</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">segments[]</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">words[]</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">speaker fields</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">timestamps</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliases</h3><h4>Aliases do modelo</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=qwen%2Fqwen3-asr-1.7b&amp;route=Ultra&amp;caller=qwen%2Fqwen3-asr-1.7b&amp;fmt=transcriptions\"><code>qwen/qwen3-asr-1.7b</code></a></span></p><h4>Aliases dos caminhos dos métodos</h4><p class=\"note-s\">Use os caminhos dos métodos indicados acima.</p><h4>IDs de chamada relacionados</h4><p class=\"note-s\"><a href=\"#m=qwen%2Fqwen3-asr-1.7b&amp;route=Ultra&amp;caller=qwen%2Fqwen3-asr-1.7b&amp;fmt=transcriptions\"><code>qwen/qwen3-asr-1.7b</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "qwen/qwen3-asr-1.7b",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "qwen/qwen3-asr-1.7b",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|qwen%2Fqwen3-asr-1.7b",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "As tarifas apresentadas permitem estimar o custo antes da geração. O montante final cobrado é calculado a partir do custo registado para a geração original. A duração medida do resultado e as quantidades previstas não correspondem à quantidade final faturável.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "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.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Guarde o X-Client-Request-ID devolvido para reconciliação. Consulte apenas os valores task_id/asset_id efetivamente devolvidos ou a sua biblioteca de multimédia; nunca construa um URL de tarefa a partir do ID da operação e nunca volte a enviar o pedido de criação."
            },
            "outputs": {
              "all_results": "Conserve a resposta completa e os cabeçalhos, todos os resultados efetivamente produzidos, os identificadores originais devolvidos e todos os campos de utilização. Recupere a operação original sem voltar a enviar o pedido de criação.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                },
                {
                  "description": null,
                  "name": "segments[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "words[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "speaker fields",
                  "type": null
                },
                {
                  "description": null,
                  "name": "timestamps",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "qwen/qwen3-asr-1.7b"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "name": "input_audio",
                "required": true,
                "type": "object"
              },
              {
                "name": "language",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 0,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "default": "json",
                "default_known": true,
                "enum": [
                  "json",
                  "verbose_json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "items": {
                  "enum": [
                    "segment",
                    "word"
                  ],
                  "type": "string"
                },
                "name": "timestamp_granularities",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "enum": [
                        "wav",
                        "mp3",
                        "flac",
                        "m4a",
                        "ogg",
                        "webm",
                        "aac"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "language": {
                  "description": "ISO-639-1 code; omitted means auto-detection",
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "qwen/qwen3-asr-1.7b"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Data policy and exact provider options; order/only/ignore are not applied to STT",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "json",
                  "description": "verbose_json requires exact model/provider support",
                  "enum": [
                    "json",
                    "verbose_json"
                  ],
                  "type": "string"
                },
                "temperature": {
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "timestamp_granularities": {
                  "description": "Only used with supported verbose_json",
                  "items": {
                    "enum": [
                      "segment",
                      "word"
                    ],
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "qwen/qwen3-asr-1.7b"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Leia um ficheiro WAV real e codifique os respetivos bytes reais para a entrada JSON input_audio declarada; não é anunciada qualquer rota multipart para esta declaração exata apenas de JSON."
            ],
            "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 URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id efetivamente devolvido ou registo na biblioteca de multimédia",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit 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",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              },
              {
                "description": null,
                "name": "segments[]",
                "type": null
              },
              {
                "description": null,
                "name": "words[]",
                "type": null
              },
              {
                "description": null,
                "name": "speaker fields",
                "type": null
              },
              {
                "description": null,
                "name": "timestamps",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "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.000015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000015",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          },
          {
            "basis": "Esta estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Custo estimado de geração",
            "units": [
              {
                "amount": "0.000015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.000015",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual WAV recording}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nimport base64\naudio=Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4]==b'RIFF' and audio[8:12]==b'WAVE'): raise SystemExit('Supply an actual WAV audio file')\nif len(audio)>26214400: raise SystemExit('Use a documented supported large-file flow')\nrequest={'model': 'qwen/qwen3-asr-1.7b', 'input_audio': {'data': '${BASE64_ACTUAL_WAV_BYTES}', 'format': 'wav'}}\nrequest['input_audio']['data']=base64.b64encode(audio).decode('ascii')\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# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "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": "Transcrição",
        "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": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "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.000015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000015",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.000015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.000015",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "qwen/qwen3-asr-1.7b",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.000015",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000015",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          },
          {
            "amount": "0.000015",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.000015",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "qwen/qwen3-asr-1.7b",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "6b8f34dbe9ade812f82c7c761ae3542101a4e42d2292309c7e73afb7f8929888",
    "input_html_sha256": "58d0da1b8f8680b95857b141ad6e763ba40a2af388fe385a2372fa6b3e2351ec",
    "private_audit_sha256": "92a716973b40f86b7441511e41c0fb1ae5e4c47fc3961f754187ba344b1e1ba7",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/pt-pt/qwen-qwen3-asr-1-7b/",
    "description": "Qwen3-ASR-1.7B converte fala e canto em texto e identifica o idioma. A Qwen documenta 30 idiomas, 22 dialetos chineses e reconhecimento offline ou em streaming; a temporização por palavra usa um fluxo Qwen3-ForcedAligner separado.",
    "locale": "pt-pt",
    "md_url": "https://ailoot.ai/models/pt-pt/qwen-qwen3-asr-1-7b/index.md",
    "title": "Qwen: Qwen3 ASR 1.7B — Ailoot",
    "url": "https://ailoot.ai/models/pt-pt/qwen-qwen3-asr-1-7b/"
  },
  "rawModel": {
    "about": "Qwen3-ASR-1.7B é o modelo maior de reconhecimento de fala da Qwen na família Qwen3-ASR. Recebe áudio e devolve texto reconhecido juntamente com uma etiqueta de idioma. A família assenta na base de compreensão de áudio de Qwen3-Omni e usa um único modelo ASR para reconhecimento offline e em streaming. A edição 1.7B destaca a qualidade de reconhecimento, enquanto a edição 0.6B, identificada separadamente, destaca a eficiência. Continuam a ser escolhas distintas, mesmo partilhando a cobertura linguística e os fluxos de reconhecimento documentados.\n\n### Identificação do idioma e cobertura de áudio\n\nO fabricante lista 30 idiomas e 22 dialetos chineses, bem como sotaques de inglês de várias regiões. A lista de idiomas inclui chinês, inglês, cantonês, árabe, alemão, francês, espanhol, português, indonésio, italiano, coreano, russo, tailandês, vietnamita, japonês, turco, hindi, malaio, neerlandês, sueco, dinamarquês, finlandês, polaco, checo, filipino, persa, grego, húngaro, macedónio e romeno. Os tipos de áudio suportados incluem fala, voz cantada e canções com música de fundo. Estas capacidades tornam a transcrição útil para entrevistas, aulas, gravações de voz e revisão de letras, mantendo o áudio original para verificar passagens difíceis.\n\n### Preparação do áudio e obtenção de uma transcrição\n\nO conjunto de ferramentas do produtor aceita uma referência a um ficheiro de áudio, áudio codificado ou uma forma de onda acompanhada da respetiva frequência de amostragem, e o fluxo offline pode processar uma coleção de gravações. Pode detetar automaticamente o idioma ou usar um idioma suportado especificado. Escolha deteção automática para uma gravação desconhecida; forneça o idioma realmente falado quando for conhecido e relevante para a tarefa. O resultado de exemplo apresenta o idioma detetado ou selecionado e o texto reconhecido. A definição de idioma orienta o reconhecimento da gravação, em vez de definir um pedido de reformulação do conteúdo noutro idioma.\n\nPara uma entrevista, mantenha a gravação associada à sua data, tema e identificador de origem e use depois o texto devolvido como transcrição pesquisável. Para uma aula, preserve termos técnicos e expressões numéricas durante a revisão, em vez de substituir silenciosamente palavras pouco claras por uma explicação plausível. Para uma canção, verifique a letra reconhecida enquanto ouve a linha vocal, especialmente quando a música oculta uma sílaba. A transcrição pode tornar-se entrada para um passo separado de resumo, tradução ou edição depois de as palavras terem sido verificadas face ao áudio.\n\n### Reconhecimento em streaming e respetivo âmbito\n\nA mesma família ASR suporta reconhecimento à medida que o áudio chega. O exemplo de streaming do fabricante fornece sucessivos blocos de áudio a um estado de reconhecimento mantido, apresenta texto provisório e termina depois o fluxo para obter o idioma e a transcrição finais. Distinga o texto incremental atual do resultado concluído ao preparar legendas em direto ou uma transcrição contínua. A implementação de streaming documentada não combina streaming com inferência em lote nem devolve marcas temporais; uma transcrição temporizada usa outro fluxo. São detalhes da implementação do produtor, e não uma promessa sobre o transporte ou a interface de legendas em direto de uma aplicação.\n\n### Temporização de palavras ou caracteres com um aligner separado\n\nQwen3-ForcedAligner-0.6B alinha uma gravação de áudio com texto fornecido e prevê tempos de início e fim ao nível da palavra ou do carácter. É um modelo separado de ambas as edições Qwen3-ASR. O conjunto de ferramentas ASR pode usar esse aligner quando se pedem marcas temporais no fluxo de transcrição offline, ou o alinhamento pode ser executado sobre um par de texto e áudio existente. A cobertura documentada do aligner é de 11 idiomas: chinês, inglês, cantonês, francês, alemão, italiano, japonês, coreano, português, russo e espanhol. A duração de fala indicada é de até cinco minutos; é o âmbito do aligner, e não um limite de cinco minutos para transcrição ASR.\n\nPara preparar legendas, obtenha e reveja primeiro a transcrição e alinhe-a depois com a gravação de origem quando esse fluxo de alinhamento for adequado. Use os tempos de início e fim devolvidos para preparar segmentos de legendas e examine as fronteiras enquanto ouve. O alinhamento associa palavras fornecidas ao áudio; não deve ser tratado como prova de que uma transcrição incorreta foi corrigida. O resultado útil é uma transcrição verificada com informação temporal que permanece ligada à gravação que descreve.\n\n### Gravações longas e limites práticos\n\nA família suporta transcrição de áudio longo, e os exemplos oficiais instruem os utilizadores a permitir mais texto gerado para entradas mais longas. As definições ilustrativas de tokens são escolhas de configuração, e não um limite universal de contexto do modelo ou de duração de áudio. Planeie a extensão de saída de acordo com a gravação e verifique se o final está presente. Reveja nomes, quantidades, mudanças de idioma, palavras ocultadas e fala sobreposta face ao som original. A cobertura linguística e a robustez perante áudio difícil não garantem uma transcrição perfeita para todos os sotaques, gravações ou arranjos musicais. Um resultado completo preserva as palavras reconhecidas, o seu idioma e a sua relação com o áudio, para permitir pesquisa, edição ou uso num fluxo de conteúdos posterior.",
    "alias_of": null,
    "aliases": [],
    "author": "Alibaba",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.000015",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.000015",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Todas as tarifas da configuração constam dos detalhes."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "qwen/qwen3-asr-1.7b",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "As tarifas apresentadas permitem estimar o custo antes da geração. O montante final cobrado é calculado a partir do custo registado para a geração original. A duração medida do resultado e as quantidades previstas não correspondem à quantidade final faturável.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "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.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Guarde o X-Client-Request-ID devolvido para reconciliação. Consulte apenas os valores task_id/asset_id efetivamente devolvidos ou a sua biblioteca de multimédia; nunca construa um URL de tarefa a partir do ID da operação e nunca volte a enviar o pedido de criação."
            },
            "outputs": {
              "all_results": "Conserve a resposta completa e os cabeçalhos, todos os resultados efetivamente produzidos, os identificadores originais devolvidos e todos os campos de utilização. Recupere a operação original sem voltar a enviar o pedido de criação.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                },
                {
                  "description": null,
                  "name": "segments[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "words[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "speaker fields",
                  "type": null
                },
                {
                  "description": null,
                  "name": "timestamps",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "qwen/qwen3-asr-1.7b"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "name": "input_audio",
                "required": true,
                "type": "object"
              },
              {
                "name": "language",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 0,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "default": "json",
                "default_known": true,
                "enum": [
                  "json",
                  "verbose_json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "items": {
                  "enum": [
                    "segment",
                    "word"
                  ],
                  "type": "string"
                },
                "name": "timestamp_granularities",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "enum": [
                        "wav",
                        "mp3",
                        "flac",
                        "m4a",
                        "ogg",
                        "webm",
                        "aac"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "language": {
                  "description": "ISO-639-1 code; omitted means auto-detection",
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "qwen/qwen3-asr-1.7b"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Data policy and exact provider options; order/only/ignore are not applied to STT",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "json",
                  "description": "verbose_json requires exact model/provider support",
                  "enum": [
                    "json",
                    "verbose_json"
                  ],
                  "type": "string"
                },
                "temperature": {
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "timestamp_granularities": {
                  "description": "Only used with supported verbose_json",
                  "items": {
                    "enum": [
                      "segment",
                      "word"
                    ],
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "qwen/qwen3-asr-1.7b"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Leia um ficheiro WAV real e codifique os respetivos bytes reais para a entrada JSON input_audio declarada; não é anunciada qualquer rota multipart para esta declaração exata apenas de JSON."
            ],
            "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 URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id efetivamente devolvido ou registo na biblioteca de multimédia",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit 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",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              },
              {
                "description": null,
                "name": "segments[]",
                "type": null
              },
              {
                "description": null,
                "name": "words[]",
                "type": null
              },
              {
                "description": null,
                "name": "speaker fields",
                "type": null
              },
              {
                "description": null,
                "name": "timestamps",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "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.000015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000015",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          },
          {
            "basis": "Esta estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Custo estimado de geração",
            "units": [
              {
                "amount": "0.000015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.000015",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual WAV recording}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nimport base64\naudio=Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4]==b'RIFF' and audio[8:12]==b'WAVE'): raise SystemExit('Supply an actual WAV audio file')\nif len(audio)>26214400: raise SystemExit('Use a documented supported large-file flow')\nrequest={'model': 'qwen/qwen3-asr-1.7b', 'input_audio': {'data': '${BASE64_ACTUAL_WAV_BYTES}', 'format': 'wav'}}\nrequest['input_audio']['data']=base64.b64encode(audio).decode('ascii')\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# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "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": "Transcrição",
        "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": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "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.000015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000015",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.000015",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.000015",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "qwen/qwen3-asr-1.7b",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.000015",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000015",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          },
          {
            "amount": "0.000015",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.000015",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "qwen/qwen3-asr-1.7b",
        "request_model_id": "qwen/qwen3-asr-1.7b",
        "route_label": "Ultra"
      }
    ],
    "name": "Qwen: Qwen3 ASR 1.7B",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 1.5e-05,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 1.5e-05,
      "varies": false
    },
    "short": "Qwen3-ASR-1.7B converte fala e canto em texto e identifica o idioma. A Qwen documenta 30 idiomas, 22 dialetos chineses e reconhecimento offline ou em streaming; a temporização por palavra usa um fluxo Qwen3-ForcedAligner separado."
  },
  "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": "Qwen3-ASR-1.7B converte fala e canto em texto e identifica o idioma. A Qwen documenta 30 idiomas, 22 dialetos chineses e reconhecimento offline ou em streaming; a temporização por palavra usa um fluxo Qwen3-ForcedAligner separado.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "0606290c9a036903652ee8f8df646d0c4841f031d76f3eb8141004b3347bfe46",
    "renderer_sha256": "8caea4544177cc2b7d2cb3356b5f07bfd3660386d75f2714a6f603fa5e2a6cd2"
  },
  "sourceRevision": "80c13f999d9d9d32a722a3e0198b90e0676551f900f959051191013fd64464c8"
}
