{
  "aboutHtml": "<p>Google Chirp 3 é um modelo multilingue de reconhecimento automático de fala que converte áudio falado em texto. A Google documenta-o como modelo de transcrição Chirp 3 na sua família Speech-to-Text V2, com o identificador de modelo chirp_3. A sua finalidade é reconhecer fala gravada ou transmitida em fluxo, com deteção de língua e funcionalidades específicas de transcrição. O artefacto resultante é uma transcrição e os metadados suportados pelo método de reconhecimento selecionado, em vez de voz gerada ou de uma resposta aberta de assistente.</p><p>O produtor distingue reconhecimento em fluxo, reconhecimento síncrono para excertos curtos e reconhecimento em lote para gravações mais longas. Escolha o modo conforme o áudio de origem e o resultado exigido. Para uma nota de voz curta, uma resposta textual concluída pode ser suficiente. Para uma entrevista ou chamada gravada, um resultado em lote com informação de locutores pode ser mais útil. Para legendas em direto ou uma interface de comandos falados, mantenha o texto intermédio distinto do resultado final de reconhecimento e preserve o intervalo áudio que descreve.</p><p>Prepare o áudio na codificação esperada pela implementação de reconhecimento. Os exemplos Chirp 3 da Google utilizam descodificação detetada automaticamente para ficheiros gravados e descodificação explícita para uma configuração de transmissão em fluxo de áudio bruto. A referência associada do descodificador V2 apresenta áudio WAV PCM ou com compressão e expansão de gama dinâmica, FLAC, MP3, Ogg/WebM Opus e AAC em contentores MP4, M4A ou MOV, entre as codificações suportadas. Um nome de contentor não substitui o codec e a configuração de amostragem reais. Preserve fala clara e evite saturação grave ou conversão desnecessária que perca pormenores audíveis.</p><p>O Chirp 3 pode identificar e transcrever automaticamente a língua dominante, e um conjunto de variantes linguísticas esperadas pode restringir as suas escolhas de reconhecimento. A disponibilidade linguística difere por método e funcionalidade. A lista de línguas de transcrição é mais ampla do que a de diarização, pelo que reconhecer uma língua não estabelece que todas as funcionalidades de locutores ou temporização se apliquem a ela. Utilize a variante linguística que corresponda à gravação e preserve nomes em alternância de línguas ou termos especializados para revisão. Um rótulo de língua detetada faz parte do resultado, não é prova de que todas as palavras invulgares tenham sido reconhecidas corretamente.</p><p>A diarização de locutores agrupa a fala por voz numa gravação de canal único. A Google fornece um exemplo de transcrição em lote com informação de locutor por palavra. Para uma entrevista, preserve esses rótulos com o texto reconhecido e compare as mudanças de locutor com a gravação antes de associar nomes ou funções reais. Vozes semelhantes, interrupções e fala sobreposta podem dificultar a atribuição. Mantenha claras a disposição dos canais da fonte e a tarefa pretendida de revisão de locutores, em vez de tratar um rótulo como identidade verificada independentemente.</p><p>A temporização é também específica do método. O reconhecimento em fluxo fornece marcas temporais ao nível do enunciado, enquanto a orientação do fabricante para reconhecimento de ficheiros descreve temporização opcional de palavras com um possível compromisso na qualidade da transcrição. Preserve os metadados efetivamente devolvidos pelo método escolhido e reveja o alinhamento juntamente com a formulação. Um fluxo de legendagem precisa de ambos: texto reconhecido legível e provas de que um limite temporal corresponde ao som certo. A Google alerta também que o valor de confiança devolvido ao nível da palavra não é uma verdadeira pontuação de confiança, pelo que não deve ser utilizado para certificar que uma palavra está correta.</p><p>A adaptação de fala fornece expressões e nomes próprios com probabilidade de ocorrerem na gravação. O fabricante documenta um dicionário de até 1 000 expressões e recomenda o menor número possível de entradas relevantes para evitar degradar o reconhecimento de outros termos. Para uma apresentação técnica, prepare uma lista curta de nomes reais de produtos e abreviaturas e depois inspecione-os na transcrição. A orientação por termos ajuda o reconhecimento a considerar um termo; não estabelece que esse termo tenha sido pronunciado nem substitui uma verificação face ao áudio.</p><p>O modelo fornece pontuação e capitalização automáticas, que a interface documentada pode desativar. A Google descreve também uma funcionalidade em pré-visualização para instruções personalizadas de formato de transcrição, como a forma de escrever um nome ou uma data específicos. Mantenha essas instruções focadas na formatação da fala reconhecida. Uma transcrição que normaliza uma data ou coloca maiúsculas numa marca continua a precisar de preservar o significado falado. Um resumo, tradução ou análise factual são utilizações posteriores da transcrição, e não algo estabelecido pelo próprio resultado de reconhecimento.</p><p>O redutor de ruído integrado destina-se a reduzir música de fundo e sons ambientais, como chuva ou ruído de rua. A Google afirma explicitamente que não consegue remover vozes humanas de fundo. Preserve essa distinção ao preparar uma gravação com conversa sobreposta. Inspecione as secções ruidosas e silenciosas face à fonte, em vez de pressupor que uma transcrição com aparência mais limpa prova que o som interferente foi removido. Um resultado útil mantém as passagens incertas identificáveis para correção.</p><p>Para tarefas em fluxo, a sensibilidade de deteção do fim da fala altera o momento em que um enunciado é tratado como concluído. O fabricante descreve definições standard, short e supershort para fala esperada progressivamente mais breve. Uma definição mais rápida pode cortar um locutor que faz uma pausa a meio de uma ideia. Faça corresponder a definição a ditado natural, uma frase curta ou um comando muito breve e mantenha o estado de resultado final com a transcrição. Para um ficheiro concluído, reveja nomes, quantidades, negações e limites de locutores e depois preserve o modo escolhido e o áudio de origem, para que o resultado possa ser verificado ou reutilizado.</p>",
  "aboutText": "Google Chirp 3 é um modelo multilingue de reconhecimento automático de fala que converte áudio falado em texto. A Google documenta-o como modelo de transcrição Chirp 3 na sua família Speech-to-Text V2, com o identificador de modelo chirp_3. A sua finalidade é reconhecer fala gravada ou transmitida em fluxo, com deteção de língua e funcionalidades específicas de transcrição. O artefacto resultante é uma transcrição e os metadados suportados pelo método de reconhecimento selecionado, em vez de voz gerada ou de uma resposta aberta de assistente.\n\nO produtor distingue reconhecimento em fluxo, reconhecimento síncrono para excertos curtos e reconhecimento em lote para gravações mais longas. Escolha o modo conforme o áudio de origem e o resultado exigido. Para uma nota de voz curta, uma resposta textual concluída pode ser suficiente. Para uma entrevista ou chamada gravada, um resultado em lote com informação de locutores pode ser mais útil. Para legendas em direto ou uma interface de comandos falados, mantenha o texto intermédio distinto do resultado final de reconhecimento e preserve o intervalo áudio que descreve.\n\nPrepare o áudio na codificação esperada pela implementação de reconhecimento. Os exemplos Chirp 3 da Google utilizam descodificação detetada automaticamente para ficheiros gravados e descodificação explícita para uma configuração de transmissão em fluxo de áudio bruto. A referência associada do descodificador V2 apresenta áudio WAV PCM ou com compressão e expansão de gama dinâmica, FLAC, MP3, Ogg/WebM Opus e AAC em contentores MP4, M4A ou MOV, entre as codificações suportadas. Um nome de contentor não substitui o codec e a configuração de amostragem reais. Preserve fala clara e evite saturação grave ou conversão desnecessária que perca pormenores audíveis.\n\nO Chirp 3 pode identificar e transcrever automaticamente a língua dominante, e um conjunto de variantes linguísticas esperadas pode restringir as suas escolhas de reconhecimento. A disponibilidade linguística difere por método e funcionalidade. A lista de línguas de transcrição é mais ampla do que a de diarização, pelo que reconhecer uma língua não estabelece que todas as funcionalidades de locutores ou temporização se apliquem a ela. Utilize a variante linguística que corresponda à gravação e preserve nomes em alternância de línguas ou termos especializados para revisão. Um rótulo de língua detetada faz parte do resultado, não é prova de que todas as palavras invulgares tenham sido reconhecidas corretamente.\n\nA diarização de locutores agrupa a fala por voz numa gravação de canal único. A Google fornece um exemplo de transcrição em lote com informação de locutor por palavra. Para uma entrevista, preserve esses rótulos com o texto reconhecido e compare as mudanças de locutor com a gravação antes de associar nomes ou funções reais. Vozes semelhantes, interrupções e fala sobreposta podem dificultar a atribuição. Mantenha claras a disposição dos canais da fonte e a tarefa pretendida de revisão de locutores, em vez de tratar um rótulo como identidade verificada independentemente.\n\nA temporização é também específica do método. O reconhecimento em fluxo fornece marcas temporais ao nível do enunciado, enquanto a orientação do fabricante para reconhecimento de ficheiros descreve temporização opcional de palavras com um possível compromisso na qualidade da transcrição. Preserve os metadados efetivamente devolvidos pelo método escolhido e reveja o alinhamento juntamente com a formulação. Um fluxo de legendagem precisa de ambos: texto reconhecido legível e provas de que um limite temporal corresponde ao som certo. A Google alerta também que o valor de confiança devolvido ao nível da palavra não é uma verdadeira pontuação de confiança, pelo que não deve ser utilizado para certificar que uma palavra está correta.\n\nA adaptação de fala fornece expressões e nomes próprios com probabilidade de ocorrerem na gravação. O fabricante documenta um dicionário de até 1 000 expressões e recomenda o menor número possível de entradas relevantes para evitar degradar o reconhecimento de outros termos. Para uma apresentação técnica, prepare uma lista curta de nomes reais de produtos e abreviaturas e depois inspecione-os na transcrição. A orientação por termos ajuda o reconhecimento a considerar um termo; não estabelece que esse termo tenha sido pronunciado nem substitui uma verificação face ao áudio.\n\nO modelo fornece pontuação e capitalização automáticas, que a interface documentada pode desativar. A Google descreve também uma funcionalidade em pré-visualização para instruções personalizadas de formato de transcrição, como a forma de escrever um nome ou uma data específicos. Mantenha essas instruções focadas na formatação da fala reconhecida. Uma transcrição que normaliza uma data ou coloca maiúsculas numa marca continua a precisar de preservar o significado falado. Um resumo, tradução ou análise factual são utilizações posteriores da transcrição, e não algo estabelecido pelo próprio resultado de reconhecimento.\n\nO redutor de ruído integrado destina-se a reduzir música de fundo e sons ambientais, como chuva ou ruído de rua. A Google afirma explicitamente que não consegue remover vozes humanas de fundo. Preserve essa distinção ao preparar uma gravação com conversa sobreposta. Inspecione as secções ruidosas e silenciosas face à fonte, em vez de pressupor que uma transcrição com aparência mais limpa prova que o som interferente foi removido. Um resultado útil mantém as passagens incertas identificáveis para correção.\n\nPara tarefas em fluxo, a sensibilidade de deteção do fim da fala altera o momento em que um enunciado é tratado como concluído. O fabricante descreve definições standard, short e supershort para fala esperada progressivamente mais breve. Uma definição mais rápida pode cortar um locutor que faz uma pausa a meio de uma ideia. Faça corresponder a definição a ditado natural, uma frase curta ou um comando muito breve e mantenha o estado de resultado final com a transcrição. Para um ficheiro concluído, reveja nomes, quantidades, negações e limites de locutores e depois preserve o modo escolhido e o áudio de origem, para que o resultado possa ser verificado ou reutilizado.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "b65ce762a2e34249468bcce0381c1d288f7a115375f845ebb3fc8b85f0b5c349",
    "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\">G</span><h2 id=\"sheet-title\">Google: Chirp 3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fechar\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/chirp-3</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|google%2Fchirp-3\">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\">Google Chirp 3 é um modelo multilingue de reconhecimento de fala para transmissão em fluxo, gravações curtas e transcrição em lote de gravações mais longas. Oferece deteção automática de língua, pontuação, adaptação de vocabulário e metadados de temporização ou locutores dependentes do modo. O seu redutor de ruído reduz o ruído de fundo, mas não consegue remover outras vozes.</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>Google Chirp 3 é um modelo multilingue de reconhecimento automático de fala que converte áudio falado em texto. A Google documenta-o como modelo de transcrição Chirp 3 na sua família Speech-to-Text V2, com o identificador de modelo chirp_3. A sua finalidade é reconhecer fala gravada ou transmitida em fluxo, com deteção de língua e funcionalidades específicas de transcrição. O artefacto resultante é uma transcrição e os metadados suportados pelo método de reconhecimento selecionado, em vez de voz gerada ou de uma resposta aberta de assistente.</p><p>O produtor distingue reconhecimento em fluxo, reconhecimento síncrono para excertos curtos e reconhecimento em lote para gravações mais longas. Escolha o modo conforme o áudio de origem e o resultado exigido. Para uma nota de voz curta, uma resposta textual concluída pode ser suficiente. Para uma entrevista ou chamada gravada, um resultado em lote com informação de locutores pode ser mais útil. Para legendas em direto ou uma interface de comandos falados, mantenha o texto intermédio distinto do resultado final de reconhecimento e preserve o intervalo áudio que descreve.</p><p>Prepare o áudio na codificação esperada pela implementação de reconhecimento. Os exemplos Chirp 3 da Google utilizam descodificação detetada automaticamente para ficheiros gravados e descodificação explícita para uma configuração de transmissão em fluxo de áudio bruto. A referência associada do descodificador V2 apresenta áudio WAV PCM ou com compressão e expansão de gama dinâmica, FLAC, MP3, Ogg/WebM Opus e AAC em contentores MP4, M4A ou MOV, entre as codificações suportadas. Um nome de contentor não substitui o codec e a configuração de amostragem reais. Preserve fala clara e evite saturação grave ou conversão desnecessária que perca pormenores audíveis.</p><p>O Chirp 3 pode identificar e transcrever automaticamente a língua dominante, e um conjunto de variantes linguísticas esperadas pode restringir as suas escolhas de reconhecimento. A disponibilidade linguística difere por método e funcionalidade. A lista de línguas de transcrição é mais ampla do que a de diarização, pelo que reconhecer uma língua não estabelece que todas as funcionalidades de locutores ou temporização se apliquem a ela. Utilize a variante linguística que corresponda à gravação e preserve nomes em alternância de línguas ou termos especializados para revisão. Um rótulo de língua detetada faz parte do resultado, não é prova de que todas as palavras invulgares tenham sido reconhecidas corretamente.</p><p>A diarização de locutores agrupa a fala por voz numa gravação de canal único. A Google fornece um exemplo de transcrição em lote com informação de locutor por palavra. Para uma entrevista, preserve esses rótulos com o texto reconhecido e compare as mudanças de locutor com a gravação antes de associar nomes ou funções reais. Vozes semelhantes, interrupções e fala sobreposta podem dificultar a atribuição. Mantenha claras a disposição dos canais da fonte e a tarefa pretendida de revisão de locutores, em vez de tratar um rótulo como identidade verificada independentemente.</p><p>A temporização é também específica do método. O reconhecimento em fluxo fornece marcas temporais ao nível do enunciado, enquanto a orientação do fabricante para reconhecimento de ficheiros descreve temporização opcional de palavras com um possível compromisso na qualidade da transcrição. Preserve os metadados efetivamente devolvidos pelo método escolhido e reveja o alinhamento juntamente com a formulação. Um fluxo de legendagem precisa de ambos: texto reconhecido legível e provas de que um limite temporal corresponde ao som certo. A Google alerta também que o valor de confiança devolvido ao nível da palavra não é uma verdadeira pontuação de confiança, pelo que não deve ser utilizado para certificar que uma palavra está correta.</p><p>A adaptação de fala fornece expressões e nomes próprios com probabilidade de ocorrerem na gravação. O fabricante documenta um dicionário de até 1 000 expressões e recomenda o menor número possível de entradas relevantes para evitar degradar o reconhecimento de outros termos. Para uma apresentação técnica, prepare uma lista curta de nomes reais de produtos e abreviaturas e depois inspecione-os na transcrição. A orientação por termos ajuda o reconhecimento a considerar um termo; não estabelece que esse termo tenha sido pronunciado nem substitui uma verificação face ao áudio.</p><p>O modelo fornece pontuação e capitalização automáticas, que a interface documentada pode desativar. A Google descreve também uma funcionalidade em pré-visualização para instruções personalizadas de formato de transcrição, como a forma de escrever um nome ou uma data específicos. Mantenha essas instruções focadas na formatação da fala reconhecida. Uma transcrição que normaliza uma data ou coloca maiúsculas numa marca continua a precisar de preservar o significado falado. Um resumo, tradução ou análise factual são utilizações posteriores da transcrição, e não algo estabelecido pelo próprio resultado de reconhecimento.</p><p>O redutor de ruído integrado destina-se a reduzir música de fundo e sons ambientais, como chuva ou ruído de rua. A Google afirma explicitamente que não consegue remover vozes humanas de fundo. Preserve essa distinção ao preparar uma gravação com conversa sobreposta. Inspecione as secções ruidosas e silenciosas face à fonte, em vez de pressupor que uma transcrição com aparência mais limpa prova que o som interferente foi removido. Um resultado útil mantém as passagens incertas identificáveis para correção.</p><p>Para tarefas em fluxo, a sensibilidade de deteção do fim da fala altera o momento em que um enunciado é tratado como concluído. O fabricante descreve definições standard, short e supershort para fala esperada progressivamente mais breve. Uma definição mais rápida pode cortar um locutor que faz uma pausa a meio de uma ideia. Faça corresponder a definição a ditado natural, uma frase curta ou um comando muito breve e mantenha o estado de resultado final com a transcrição. Para um ficheiro concluído, reveja nomes, quantidades, negações e limites de locutores e depois preserve o modo escolhido e o áudio de origem, para que o resultado possa ser verificado ou reutilizado.</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>google/chirp-3</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></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>O exemplo lê o seu ficheiro PCM WAV real e não vazio, codifica todos os bytes do ficheiro em base64 e envia input_audio.format como wav.</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 exato de um registo multimédia existente pertencente ao utilizador</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 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 Ailoot</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>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=\"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</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Saída · Tokens de saída</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Leitura da cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escrita na cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escrita na cache, 1 hora</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=\"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</span> <b>$0.000533333333334</b> <span class=\"price-unit\">por segundo de áudio de entrada</span></div></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-1435-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1435-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · ficheiro WAV real e resultado original 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-1435-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1435-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;google/chirp-3&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#39;}}\nPath(&#39;request.json&#39;).write_text(json.dumps(request, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Receber e guardar os resultados</h3><h4>Ailoot Ultra · Transcrição</h4><p class=\"note-s\">Corpo completo da resposta original, estado e cabeçalhos encaminhados. Este processador não adiciona qualquer estrutura JSON universal, campo de texto ou estrutura envolvente de tarefa.</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>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\">Conserve o X-Client-Request-ID real e a resposta completa. Consulte os recursos originais pertencentes ao utilizador e os respetivos URLs assinados exatos de conteúdo; nunca volte a enviar uma criação incerta.</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 (when present)</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 (when present)</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Erros e passos seguintes</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Resposta</th><th>Condição</th><th>Passo seguinte</th></tr></thead><tbody><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>O corpo JSON ou o ID canónico explícito do modelo é inválido.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Conserve a resposta e corrija o campo indicado no pedido.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>A chave API da Ailoot é inválida.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Utilize a sua chave API autorizada da Ailoot.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>403 · <code>permission_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>O grupo da chave não permite este método.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Conserve os detalhes do erro devolvido.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>O método selecionado não tem uma rota autorizada.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Conserve os detalhes do erro devolvido.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>O tarifário aceite não consegue obter a quantidade de entrada ou o limite de que necessita.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Conserve a resposta; utilize a representação da entrada exigida pelo tarifário aceite.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>503 · <code></code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>O armazenamento, a rota, o preço do método ou a reserva de que necessita não está disponível.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Conserve a resposta original completa. Uma reserva incerta não autoriza o reenvio.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>502 · <code>server_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>O resultado, a utilização ou a liquidação original requer verificação.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Conserve o ID real do pedido e a resposta original. Consulte o registo existente pertencente ao utilizador; não volte a enviar o pedido de criação.</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=google%2Fchirp-3&amp;route=Ultra&amp;caller=google%2Fchirp-3&amp;fmt=transcriptions\"><code>google/chirp-3</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=google%2Fchirp-3&amp;route=Ultra&amp;caller=google%2Fchirp-3&amp;fmt=transcriptions\"><code>google/chirp-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/chirp-3",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|google%2Fchirp-3",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "O corpo JSON ou o ID canónico explícito do modelo é inválido.",
                "http_status": 400,
                "recovery": "Conserve a resposta e corrija o campo indicado no pedido.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "A chave API da Ailoot é inválida.",
                "http_status": 401,
                "recovery": "Utilize a sua chave API autorizada da Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "O grupo da chave não permite este método.",
                "http_status": 403,
                "recovery": "Conserve os detalhes do erro devolvido.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "O método selecionado não tem uma rota autorizada.",
                "http_status": 404,
                "recovery": "Conserve os detalhes do erro devolvido.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "O tarifário aceite não consegue obter a quantidade de entrada ou o limite de que necessita.",
                "http_status": 422,
                "recovery": "Conserve a resposta; utilize a representação da entrada exigida pelo tarifário aceite.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "O armazenamento, a rota, o preço do método ou a reserva de que necessita não está disponível.",
                "http_status": 503,
                "recovery": "Conserve a resposta original completa. Uma reserva incerta não autoriza o reenvio.",
                "type": null
              },
              {
                "code": null,
                "condition": "O resultado, a utilização ou a liquidação original requer verificação.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Conserve o ID real do pedido e a resposta original. Consulte o registo existente pertencente ao utilizador; não volte a enviar o pedido de criação.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Conserve o X-Client-Request-ID real e a resposta completa. Consulte os recursos originais pertencentes ao utilizador e os respetivos URLs assinados exatos de conteúdo; nunca volte a enviar uma criação incerta."
            },
            "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 (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Corpo completo da resposta original, estado e cabeçalhos encaminhados. Este processador não adiciona qualquer estrutura JSON universal, campo de texto ou estrutura envolvente de tarefa."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "google/chirp-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "google/chirp-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "google/chirp-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "O exemplo lê o seu ficheiro PCM WAV real e não vazio, codifica todos os bytes do ficheiro em base64 e envia input_audio.format como wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id exato de um registo multimédia existente pertencente ao utilizador",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'google/chirp-3', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "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": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.000533333333334
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.000533333333334",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000533333333334",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "google/chirp-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "c79be940715276abd4cf300c06181a81c7d866b0aa10f36bd96e78fb7f775d1c",
    "input_html_sha256": "b2f5c6792d556eada9764fca584342e98c03f5f32e3d5ae05a067a0fbfe788d2",
    "private_audit_sha256": "b66719e1153f1999d0bad5130f14fb7709d6120da832ce8ff0aa93bec2f7c628",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/pt-pt/google-chirp-3/",
    "description": "Google Chirp 3 é um modelo multilingue de reconhecimento de fala para transmissão em fluxo, gravações curtas e transcrição em lote de gravações mais longas. Oferece deteção automática de língua, pontuação, adaptação de vocabulário e metadados de temporização ou locutores dependentes do modo. O seu redutor de ruído reduz o ruído de fundo, mas não consegue remover outras vozes.",
    "locale": "pt-pt",
    "md_url": "https://ailoot.ai/models/pt-pt/google-chirp-3/index.md",
    "title": "Google: Chirp 3 — Ailoot",
    "url": "https://ailoot.ai/models/pt-pt/google-chirp-3/"
  },
  "rawModel": {
    "about": "Google Chirp 3 é um modelo multilingue de reconhecimento automático de fala que converte áudio falado em texto. A Google documenta-o como modelo de transcrição Chirp 3 na sua família Speech-to-Text V2, com o identificador de modelo chirp_3. A sua finalidade é reconhecer fala gravada ou transmitida em fluxo, com deteção de língua e funcionalidades específicas de transcrição. O artefacto resultante é uma transcrição e os metadados suportados pelo método de reconhecimento selecionado, em vez de voz gerada ou de uma resposta aberta de assistente.\n\nO produtor distingue reconhecimento em fluxo, reconhecimento síncrono para excertos curtos e reconhecimento em lote para gravações mais longas. Escolha o modo conforme o áudio de origem e o resultado exigido. Para uma nota de voz curta, uma resposta textual concluída pode ser suficiente. Para uma entrevista ou chamada gravada, um resultado em lote com informação de locutores pode ser mais útil. Para legendas em direto ou uma interface de comandos falados, mantenha o texto intermédio distinto do resultado final de reconhecimento e preserve o intervalo áudio que descreve.\n\nPrepare o áudio na codificação esperada pela implementação de reconhecimento. Os exemplos Chirp 3 da Google utilizam descodificação detetada automaticamente para ficheiros gravados e descodificação explícita para uma configuração de transmissão em fluxo de áudio bruto. A referência associada do descodificador V2 apresenta áudio WAV PCM ou com compressão e expansão de gama dinâmica, FLAC, MP3, Ogg/WebM Opus e AAC em contentores MP4, M4A ou MOV, entre as codificações suportadas. Um nome de contentor não substitui o codec e a configuração de amostragem reais. Preserve fala clara e evite saturação grave ou conversão desnecessária que perca pormenores audíveis.\n\nO Chirp 3 pode identificar e transcrever automaticamente a língua dominante, e um conjunto de variantes linguísticas esperadas pode restringir as suas escolhas de reconhecimento. A disponibilidade linguística difere por método e funcionalidade. A lista de línguas de transcrição é mais ampla do que a de diarização, pelo que reconhecer uma língua não estabelece que todas as funcionalidades de locutores ou temporização se apliquem a ela. Utilize a variante linguística que corresponda à gravação e preserve nomes em alternância de línguas ou termos especializados para revisão. Um rótulo de língua detetada faz parte do resultado, não é prova de que todas as palavras invulgares tenham sido reconhecidas corretamente.\n\nA diarização de locutores agrupa a fala por voz numa gravação de canal único. A Google fornece um exemplo de transcrição em lote com informação de locutor por palavra. Para uma entrevista, preserve esses rótulos com o texto reconhecido e compare as mudanças de locutor com a gravação antes de associar nomes ou funções reais. Vozes semelhantes, interrupções e fala sobreposta podem dificultar a atribuição. Mantenha claras a disposição dos canais da fonte e a tarefa pretendida de revisão de locutores, em vez de tratar um rótulo como identidade verificada independentemente.\n\nA temporização é também específica do método. O reconhecimento em fluxo fornece marcas temporais ao nível do enunciado, enquanto a orientação do fabricante para reconhecimento de ficheiros descreve temporização opcional de palavras com um possível compromisso na qualidade da transcrição. Preserve os metadados efetivamente devolvidos pelo método escolhido e reveja o alinhamento juntamente com a formulação. Um fluxo de legendagem precisa de ambos: texto reconhecido legível e provas de que um limite temporal corresponde ao som certo. A Google alerta também que o valor de confiança devolvido ao nível da palavra não é uma verdadeira pontuação de confiança, pelo que não deve ser utilizado para certificar que uma palavra está correta.\n\nA adaptação de fala fornece expressões e nomes próprios com probabilidade de ocorrerem na gravação. O fabricante documenta um dicionário de até 1 000 expressões e recomenda o menor número possível de entradas relevantes para evitar degradar o reconhecimento de outros termos. Para uma apresentação técnica, prepare uma lista curta de nomes reais de produtos e abreviaturas e depois inspecione-os na transcrição. A orientação por termos ajuda o reconhecimento a considerar um termo; não estabelece que esse termo tenha sido pronunciado nem substitui uma verificação face ao áudio.\n\nO modelo fornece pontuação e capitalização automáticas, que a interface documentada pode desativar. A Google descreve também uma funcionalidade em pré-visualização para instruções personalizadas de formato de transcrição, como a forma de escrever um nome ou uma data específicos. Mantenha essas instruções focadas na formatação da fala reconhecida. Uma transcrição que normaliza uma data ou coloca maiúsculas numa marca continua a precisar de preservar o significado falado. Um resumo, tradução ou análise factual são utilizações posteriores da transcrição, e não algo estabelecido pelo próprio resultado de reconhecimento.\n\nO redutor de ruído integrado destina-se a reduzir música de fundo e sons ambientais, como chuva ou ruído de rua. A Google afirma explicitamente que não consegue remover vozes humanas de fundo. Preserve essa distinção ao preparar uma gravação com conversa sobreposta. Inspecione as secções ruidosas e silenciosas face à fonte, em vez de pressupor que uma transcrição com aparência mais limpa prova que o som interferente foi removido. Um resultado útil mantém as passagens incertas identificáveis para correção.\n\nPara tarefas em fluxo, a sensibilidade de deteção do fim da fala altera o momento em que um enunciado é tratado como concluído. O fabricante descreve definições standard, short e supershort para fala esperada progressivamente mais breve. Uma definição mais rápida pode cortar um locutor que faz uma pausa a meio de uma ideia. Faça corresponder a definição a ditado natural, uma frase curta ou um comando muito breve e mantenha o estado de resultado final com a transcrição. Para um ficheiro concluído, reveja nomes, quantidades, negações e limites de locutores e depois preserve o modo escolhido e o áudio de origem, para que o resultado possa ser verificado ou reutilizado.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.000533333333334",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000533333333334",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "Todas as tarifas da configuração constam dos detalhes."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "google/chirp-3",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "O corpo JSON ou o ID canónico explícito do modelo é inválido.",
                "http_status": 400,
                "recovery": "Conserve a resposta e corrija o campo indicado no pedido.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "A chave API da Ailoot é inválida.",
                "http_status": 401,
                "recovery": "Utilize a sua chave API autorizada da Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "O grupo da chave não permite este método.",
                "http_status": 403,
                "recovery": "Conserve os detalhes do erro devolvido.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "O método selecionado não tem uma rota autorizada.",
                "http_status": 404,
                "recovery": "Conserve os detalhes do erro devolvido.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "O tarifário aceite não consegue obter a quantidade de entrada ou o limite de que necessita.",
                "http_status": 422,
                "recovery": "Conserve a resposta; utilize a representação da entrada exigida pelo tarifário aceite.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "O armazenamento, a rota, o preço do método ou a reserva de que necessita não está disponível.",
                "http_status": 503,
                "recovery": "Conserve a resposta original completa. Uma reserva incerta não autoriza o reenvio.",
                "type": null
              },
              {
                "code": null,
                "condition": "O resultado, a utilização ou a liquidação original requer verificação.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Conserve o ID real do pedido e a resposta original. Consulte o registo existente pertencente ao utilizador; não volte a enviar o pedido de criação.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Conserve o X-Client-Request-ID real e a resposta completa. Consulte os recursos originais pertencentes ao utilizador e os respetivos URLs assinados exatos de conteúdo; nunca volte a enviar uma criação incerta."
            },
            "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 (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Corpo completo da resposta original, estado e cabeçalhos encaminhados. Este processador não adiciona qualquer estrutura JSON universal, campo de texto ou estrutura envolvente de tarefa."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "google/chirp-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "google/chirp-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "google/chirp-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "O exemplo lê o seu ficheiro PCM WAV real e não vazio, codifica todos os bytes do ficheiro em base64 e envia input_audio.format como wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id exato de um registo multimédia existente pertencente ao utilizador",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'google/chirp-3', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "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": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.000533333333334
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.000533333333334",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000533333333334",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "google/chirp-3",
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra"
      }
    ],
    "name": "Google: Chirp 3",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Google Chirp 3 é um modelo multilingue de reconhecimento de fala para transmissão em fluxo, gravações curtas e transcrição em lote de gravações mais longas. Oferece deteção automática de língua, pontuação, adaptação de vocabulário e metadados de temporização ou locutores dependentes do modo. O seu redutor de ruído reduz o ruído de fundo, mas não consegue remover outras vozes."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Google Chirp 3 é um modelo multilingue de reconhecimento de fala para transmissão em fluxo, gravações curtas e transcrição em lote de gravações mais longas. Oferece deteção automática de língua, pontuação, adaptação de vocabulário e metadados de temporização ou locutores dependentes do modo. O seu redutor de ruído reduz o ruído de fundo, mas não consegue remover outras vozes.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "2ddba16702bc104492898912232adfb45968f34b767663f7729e2fbe988ac691",
    "renderer_sha256": "8caea4544177cc2b7d2cb3356b5f07bfd3660386d75f2714a6f603fa5e2a6cd2"
  },
  "sourceRevision": "520d78ef4bf53d76cd42c35a1cde2ccac2d3895090ae6f0a6f8ebdc65047d64a"
}
