{
  "aboutHtml": "<p>Gemini 3.5 Transcribe converte um ficheiro de áudio em texto. Além da transcrição, suporta deteção da língua, identificação dos intervenientes, marcas temporais de palavras individuais, vocabulário especializado e preparação inteligente do texto.</p><h4>Línguas e duração</h4><p>São suportadas <strong>mais de 85 línguas</strong>, incluindo russo, e a alternância entre línguas na mesma gravação. A língua é detetada automaticamente. Um pedido comum processa áudio com duração de <strong>até uma hora</strong>. Com identificação de intervenientes ou marcas temporais por palavra ativadas, o limite reduz-se para <strong>30 minutos</strong>.</p><p>A saída inclui o texto completo da transcrição e, nos modos correspondentes, anotações individuais das palavras. O modelo destina-se ao processamento de ficheiros; o reconhecimento contínuo em tempo real pertence à versão separada <code>gemini-3.5-transcribe-live</code>.</p><h4>Modos de transcrição</h4><p>Por predefinição, é utilizada transcrição literal. O modo inteligente remove palavras de preenchimento, considera as autocorreções do interveniente e formata o texto. Este modo não pode ser combinado com identificação de intervenientes nem marcas temporais por palavra.</p><p>A separação da fala suporta <strong>até oito intervenientes</strong>. A identificação de quem proferiu uma intervenção tem <strong>estatuto experimental</strong> para três ou mais intervenientes. As marcas temporais ajudam a relacionar o texto com a gravação, mas a sua ativação pode reduzir a precisão do reconhecimento.</p><h4>Termos e ficheiros</h4><p>O vocabulário de termos personalizados acomoda <strong>até 1 000 entradas</strong>; a Google assinala que, normalmente, é preferível limitá-lo a cerca de uma centena. Este vocabulário é incompatível com identificação de intervenientes e marcas temporais por palavra. A escolha do modo deve, por isso, considerar o que é mais importante: os termos especializados ou a anotação detalhada de participantes e tempos.</p><p>Os formatos de áudio suportados incluem WAV, MP3, AIFF, AAC, OGG, FLAC, MPEG, M4A, L16, Opus, A-law, mu-law e WebM. Para o processamento de ficheiros, estão publicados limites de duração e de combinação de modos. A descrição da família Transcribe indica também <strong>96K tokens de contexto</strong> e <strong>32K tokens de saída textual</strong>; estas características da família não substituem os limites do ficheiro no método escolhido.</p><p>Não são suportados cache de contexto, execução de código, pesquisa em ficheiros, chamadas de funções, criação de imagens nem Thinking. A especialização do modelo é obter texto e anotações a partir do som, em vez de gerar fala nova.</p>",
  "aboutText": "Gemini 3.5 Transcribe converte um ficheiro de áudio em texto. Além da transcrição, suporta deteção da língua, identificação dos intervenientes, marcas temporais de palavras individuais, vocabulário especializado e preparação inteligente do texto.\n\n### Línguas e duração\n\nSão suportadas **mais de 85 línguas**, incluindo russo, e a alternância entre línguas na mesma gravação. A língua é detetada automaticamente. Um pedido comum processa áudio com duração de **até uma hora**. Com identificação de intervenientes ou marcas temporais por palavra ativadas, o limite reduz-se para **30 minutos**.\n\nA saída inclui o texto completo da transcrição e, nos modos correspondentes, anotações individuais das palavras. O modelo destina-se ao processamento de ficheiros; o reconhecimento contínuo em tempo real pertence à versão separada `gemini-3.5-transcribe-live`.\n\n### Modos de transcrição\n\nPor predefinição, é utilizada transcrição literal. O modo inteligente remove palavras de preenchimento, considera as autocorreções do interveniente e formata o texto. Este modo não pode ser combinado com identificação de intervenientes nem marcas temporais por palavra.\n\nA separação da fala suporta **até oito intervenientes**. A identificação de quem proferiu uma intervenção tem **estatuto experimental** para três ou mais intervenientes. As marcas temporais ajudam a relacionar o texto com a gravação, mas a sua ativação pode reduzir a precisão do reconhecimento.\n\n### Termos e ficheiros\n\nO vocabulário de termos personalizados acomoda **até 1 000 entradas**; a Google assinala que, normalmente, é preferível limitá-lo a cerca de uma centena. Este vocabulário é incompatível com identificação de intervenientes e marcas temporais por palavra. A escolha do modo deve, por isso, considerar o que é mais importante: os termos especializados ou a anotação detalhada de participantes e tempos.\n\nOs formatos de áudio suportados incluem WAV, MP3, AIFF, AAC, OGG, FLAC, MPEG, M4A, L16, Opus, A-law, mu-law e WebM. Para o processamento de ficheiros, estão publicados limites de duração e de combinação de modos. A descrição da família Transcribe indica também **96K tokens de contexto** e **32K tokens de saída textual**; estas características da família não substituem os limites do ficheiro no método escolhido.\n\nNão são suportados cache de contexto, execução de código, pesquisa em ficheiros, chamadas de funções, criação de imagens nem Thinking. A especialização do modelo é obter texto e anotações a partir do som, em vez de gerar fala nova.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "076d6b0cccf01c75df226f3f6bfe988a30b5b879a17a6abde14fb693b6d2aa16",
    "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\">Gemini 3.5 Transcribe</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fechar\">×</button></div><div class=\"idline\"><span>Google /</span><code>gemini-3.5-transcribe</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=\"Core|transcriptions|/v1/audio/transcriptions|gemini-3.5-transcribe\">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\">Modelo da Google para reconhecimento de fala, deteção da língua, identificação de intervenientes e marcas temporais por palavra.</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>Gemini 3.5 Transcribe converte um ficheiro de áudio em texto. Além da transcrição, suporta deteção da língua, identificação dos intervenientes, marcas temporais de palavras individuais, vocabulário especializado e preparação inteligente do texto.</p><h4>Línguas e duração</h4><p>São suportadas <strong>mais de 85 línguas</strong>, incluindo russo, e a alternância entre línguas na mesma gravação. A língua é detetada automaticamente. Um pedido comum processa áudio com duração de <strong>até uma hora</strong>. Com identificação de intervenientes ou marcas temporais por palavra ativadas, o limite reduz-se para <strong>30 minutos</strong>.</p><p>A saída inclui o texto completo da transcrição e, nos modos correspondentes, anotações individuais das palavras. O modelo destina-se ao processamento de ficheiros; o reconhecimento contínuo em tempo real pertence à versão separada <code>gemini-3.5-transcribe-live</code>.</p><h4>Modos de transcrição</h4><p>Por predefinição, é utilizada transcrição literal. O modo inteligente remove palavras de preenchimento, considera as autocorreções do interveniente e formata o texto. Este modo não pode ser combinado com identificação de intervenientes nem marcas temporais por palavra.</p><p>A separação da fala suporta <strong>até oito intervenientes</strong>. A identificação de quem proferiu uma intervenção tem <strong>estatuto experimental</strong> para três ou mais intervenientes. As marcas temporais ajudam a relacionar o texto com a gravação, mas a sua ativação pode reduzir a precisão do reconhecimento.</p><h4>Termos e ficheiros</h4><p>O vocabulário de termos personalizados acomoda <strong>até 1 000 entradas</strong>; a Google assinala que, normalmente, é preferível limitá-lo a cerca de uma centena. Este vocabulário é incompatível com identificação de intervenientes e marcas temporais por palavra. A escolha do modo deve, por isso, considerar o que é mais importante: os termos especializados ou a anotação detalhada de participantes e tempos.</p><p>Os formatos de áudio suportados incluem WAV, MP3, AIFF, AAC, OGG, FLAC, MPEG, M4A, L16, Opus, A-law, mu-law e WebM. Para o processamento de ficheiros, estão publicados limites de duração e de combinação de modos. A descrição da família Transcribe indica também <strong>96K tokens de contexto</strong> e <strong>32K tokens de saída textual</strong>; estas características da família não substituem os limites do ficheiro no método escolhido.</p><p>Não são suportados cache de contexto, execução de código, pesquisa em ficheiros, chamadas de funções, criação de imagens nem Thinking. A especialização do modelo é obter texto e anotações a partir do som, em vez de gerar fala nova.</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 · Voz para texto</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><div><dt>Formato de saída</dt><dd>json</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 data-parameter-availability=\"source_interface\"><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>gemini-3.5-transcribe</div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">file</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>file</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>Número máximo de bytes: 67 108 864</div><div>Formatos de ficheiro: wav, mp3, m4a, ogg, webm, flac</div><div>Tipo de conteúdo: multipart/form-data</div><div>Duração máxima, em segundos: 600</div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>json</div></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=\"card-about\" data-material-combinations><summary>Combinações de materiais de entrada</summary><p class=\"note-s\"><b>speech_to_text</b> · Obrigatório: actual audio file</p></details><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>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>required</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>null</td></tr><tr><th data-cell-label=\"Parâmetro\" scope=\"row\"><span class=\"card-cell-label\">Parâmetro</span><code>optional_controls</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>null</td></tr></tbody></table></div><p>Ciclo de vida: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · task_id efetivamente devolvido ou registo na biblioteca de multimédia</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">As estruturas dos métodos e os ID são exatos; a capacidade do fornecedor é distinta da admissão dos pedidos.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarifários</h3><h4>Tarifas dos métodos Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Voz para texto</b><code>POST /v1/audio/transcriptions</code></header><dl><div><dt>Entrada</dt><dd>0,01 US$ <em>por minuto ou fração de minuto</em></dd></div></dl></section><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 · Voz para texto</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-306-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-306-panel-0\" aria-selected=\"true\" tabindex=\"0\">Exemplo de transcrição</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-306-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-306-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 your actual MP3 recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport os\nfrom pathlib import Path\nf=Path(os.environ[&quot;AILOOT_AUDIO_FILE&quot;])\nif not f.is_file() or f.suffix.lower()!=&quot;.mp3&quot;:raise SystemExit(&quot;Choose your actual MP3 recording&quot;)\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; \\\n  --form-string model=gemini-3.5-transcribe -F &quot;file=@$AILOOT_AUDIO_FILE&quot; \\\n  -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;result.json&quot;).read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\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 · Voz para texto</h4><p class=\"note-s\">json</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 o JSON completo, sem se limitar ao texto; preserve todos os segmentos/intervenientes/marcas temporais disponíveis e a identidade real da tarefa/recurso.</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 operation_id/X-Client-Request-ID original para reconciliação sem voltar a enviar o pedido; não existe uma rota dedicada à consulta periódica do estado do áudio.</p></div><details class=\"card-about\" data-output-fields><summary>Campos da resposta</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Campo</th><th>Tipo</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">text</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">segments[]</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>object</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">task_id</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">asset_url</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>object</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>Campos obrigatórios, representação do material ou valor do parâmetro inválidos</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Corrija os campos indicados antes de um novo pedido de criação.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span><code>server_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>A resposta devolvida indica que a operação ou o resultado requer verificação</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Guarde o ID original da operação/tarefa devolvido, os cabeçalhos do pedido e a resposta; continue a consultar essa operação original através das consultas suportadas. 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=\"Core\"><b>Ailoot</b> <a href=\"#m=gemini-3.5-transcribe&amp;route=Core&amp;caller=gemini-3.5-transcribe&amp;fmt=transcriptions\"><code>gemini-3.5-transcribe</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=gemini-3.5-transcribe&amp;route=Core&amp;caller=gemini-3.5-transcribe&amp;fmt=transcriptions\"><code>gemini-3.5-transcribe</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "gemini-3.5-transcribe",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "gemini-3.5-transcribe",
        "route_label": "Core"
      },
      "method_key": "Core|transcriptions|/v1/audio/transcriptions|gemini-3.5-transcribe",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Retain complete JSON, not only text; preserve every available segment/speaker/timestamp and actual task/asset identity.",
            "errors": [
              {
                "code": null,
                "condition": "Campos obrigatórios, representação do material ou valor do parâmetro inválidos",
                "http_status": 400,
                "recovery": "Corrija os campos indicados antes de um novo pedido de criação.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "A resposta devolvida indica que a operação ou o resultado requer verificação",
                "http_status": null,
                "recovery": "Guarde o ID original da operação/tarefa devolvido, os cabeçalhos do pedido e a resposta; continue a consultar essa operação original através das consultas suportadas. Não volte a enviar o pedido de criação.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Conserve o operation_id/X-Client-Request-ID original para reconciliação sem voltar a enviar o pedido; não existe uma rota dedicada à consulta periódica do estado do áudio."
            },
            "material_combinations": [
              {
                "content_type": "multipart/form-data",
                "mode": "speech_to_text",
                "required": [
                  "actual audio file"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "speech_to_text"
            ],
            "outputs": {
              "all_results": "Conserve o JSON completo, sem se limitar ao texto; preserve todos os segmentos/intervenientes/marcas temporais disponíveis e a identidade real da tarefa/recurso.",
              "family": "transcription",
              "fields": [
                {
                  "description": null,
                  "name": "text",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "segments[]",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "task_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "asset_url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gemini-3.5-transcribe"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "content_type": "multipart/form-data",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "file_formats": [
                  "wav",
                  "mp3",
                  "m4a",
                  "ogg",
                  "webm",
                  "flac"
                ],
                "maximum_bytes": 67108864,
                "maximum_seconds": 600,
                "name": "file",
                "required": true,
                "type": "file"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": []
          },
          "hints": [
            "As estruturas dos métodos e os ID são exatos; a capacidade do fornecedor é distinta da admissão dos pedidos."
          ],
          "input": {
            "material_types": [
              "audio"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id efetivamente devolvido ou registo na biblioteca de multimédia",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "operation_modes": [
            "audio_transcriptions"
          ],
          "output": {
            "family": [
              "text"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set your actual MP3 recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport os\nfrom pathlib import Path\nf=Path(os.environ[\"AILOOT_AUDIO_FILE\"])\nif not f.is_file() or f.suffix.lower()!=\".mp3\":raise SystemExit(\"Choose your actual MP3 recording\")\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" \\\n  --form-string model=gemini-3.5-transcribe -F \"file=@$AILOOT_AUDIO_FILE\" \\\n  -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"result.json\").read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n",
            "label": "Transcribe your actual recording",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Voz para texto",
        "max_out": null,
        "max_tool_calls": null,
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.01,
                "amount_unit": "usd_per_display_unit",
                "key": "audio_input_started_minute",
                "label": "per minute or part thereof",
                "side": "in"
              }
            ]
          }
        ],
        "request_model_id": "gemini-3.5-transcribe",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "audio_input_started_minute",
        "units": [
          {
            "key": "audio_input_started_minute",
            "label": "per minute or part thereof",
            "side": "in",
            "usd": 0.01
          }
        ]
      }
    }
  ],
  "model_id": "gemini-3.5-transcribe",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "00f1c31d71919d1bdbbd2c95f4ad604eefccfd4b4b83f18f7ce9ec710d7a5f28",
    "input_html_sha256": "958392a04d1be8707682371780e790650138197ac92fc606b72b4aec701e1510",
    "private_audit_sha256": "98953a6f8830e4ec93751fa80105d7181ca600d96ec6fb62d18a615c5d9fcc3b",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/pt-pt/gemini-3-5-transcribe/",
    "description": "Modelo da Google para reconhecimento de fala, deteção da língua, identificação de intervenientes e marcas temporais por palavra.",
    "locale": "pt-pt",
    "md_url": "https://ailoot.ai/models/pt-pt/gemini-3-5-transcribe/index.md",
    "title": "Gemini 3.5 Transcribe — Ailoot",
    "url": "https://ailoot.ai/models/pt-pt/gemini-3-5-transcribe/"
  },
  "rawModel": {
    "about": "Gemini 3.5 Transcribe converte um ficheiro de áudio em texto. Além da transcrição, suporta deteção da língua, identificação dos intervenientes, marcas temporais de palavras individuais, vocabulário especializado e preparação inteligente do texto.\n\n### Línguas e duração\n\nSão suportadas **mais de 85 línguas**, incluindo russo, e a alternância entre línguas na mesma gravação. A língua é detetada automaticamente. Um pedido comum processa áudio com duração de **até uma hora**. Com identificação de intervenientes ou marcas temporais por palavra ativadas, o limite reduz-se para **30 minutos**.\n\nA saída inclui o texto completo da transcrição e, nos modos correspondentes, anotações individuais das palavras. O modelo destina-se ao processamento de ficheiros; o reconhecimento contínuo em tempo real pertence à versão separada `gemini-3.5-transcribe-live`.\n\n### Modos de transcrição\n\nPor predefinição, é utilizada transcrição literal. O modo inteligente remove palavras de preenchimento, considera as autocorreções do interveniente e formata o texto. Este modo não pode ser combinado com identificação de intervenientes nem marcas temporais por palavra.\n\nA separação da fala suporta **até oito intervenientes**. A identificação de quem proferiu uma intervenção tem **estatuto experimental** para três ou mais intervenientes. As marcas temporais ajudam a relacionar o texto com a gravação, mas a sua ativação pode reduzir a precisão do reconhecimento.\n\n### Termos e ficheiros\n\nO vocabulário de termos personalizados acomoda **até 1 000 entradas**; a Google assinala que, normalmente, é preferível limitá-lo a cerca de uma centena. Este vocabulário é incompatível com identificação de intervenientes e marcas temporais por palavra. A escolha do modo deve, por isso, considerar o que é mais importante: os termos especializados ou a anotação detalhada de participantes e tempos.\n\nOs formatos de áudio suportados incluem WAV, MP3, AIFF, AAC, OGG, FLAC, MPEG, M4A, L16, Opus, A-law, mu-law e WebM. Para o processamento de ficheiros, estão publicados limites de duração e de combinação de modos. A descrição da família Transcribe indica também **96K tokens de contexto** e **32K tokens de saída textual**; estas características da família não substituem os limites do ficheiro no método escolhido.\n\nNão são suportados cache de contexto, execução de código, pesquisa em ficheiros, chamadas de funções, criação de imagens nem Thinking. A especialização do modelo é obter texto e anotações a partir do som, em vez de gerar fala nova.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "gemini-3.5-transcribe",
    "input": [
      "audio"
    ],
    "kind": "transcription",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Retain complete JSON, not only text; preserve every available segment/speaker/timestamp and actual task/asset identity.",
            "errors": [
              {
                "code": null,
                "condition": "Campos obrigatórios, representação do material ou valor do parâmetro inválidos",
                "http_status": 400,
                "recovery": "Corrija os campos indicados antes de um novo pedido de criação.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "A resposta devolvida indica que a operação ou o resultado requer verificação",
                "http_status": null,
                "recovery": "Guarde o ID original da operação/tarefa devolvido, os cabeçalhos do pedido e a resposta; continue a consultar essa operação original através das consultas suportadas. Não volte a enviar o pedido de criação.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Conserve o operation_id/X-Client-Request-ID original para reconciliação sem voltar a enviar o pedido; não existe uma rota dedicada à consulta periódica do estado do áudio."
            },
            "material_combinations": [
              {
                "content_type": "multipart/form-data",
                "mode": "speech_to_text",
                "required": [
                  "actual audio file"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "speech_to_text"
            ],
            "outputs": {
              "all_results": "Conserve o JSON completo, sem se limitar ao texto; preserve todos os segmentos/intervenientes/marcas temporais disponíveis e a identidade real da tarefa/recurso.",
              "family": "transcription",
              "fields": [
                {
                  "description": null,
                  "name": "text",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "segments[]",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "task_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "asset_url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gemini-3.5-transcribe"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "content_type": "multipart/form-data",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "file_formats": [
                  "wav",
                  "mp3",
                  "m4a",
                  "ogg",
                  "webm",
                  "flac"
                ],
                "maximum_bytes": 67108864,
                "maximum_seconds": 600,
                "name": "file",
                "required": true,
                "type": "file"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": []
          },
          "hints": [
            "As estruturas dos métodos e os ID são exatos; a capacidade do fornecedor é distinta da admissão dos pedidos."
          ],
          "input": {
            "material_types": [
              "audio"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id efetivamente devolvido ou registo na biblioteca de multimédia",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "operation_modes": [
            "audio_transcriptions"
          ],
          "output": {
            "family": [
              "text"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set your actual MP3 recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport os\nfrom pathlib import Path\nf=Path(os.environ[\"AILOOT_AUDIO_FILE\"])\nif not f.is_file() or f.suffix.lower()!=\".mp3\":raise SystemExit(\"Choose your actual MP3 recording\")\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" \\\n  --form-string model=gemini-3.5-transcribe -F \"file=@$AILOOT_AUDIO_FILE\" \\\n  -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"result.json\").read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n",
            "label": "Transcribe your actual recording",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Voz para texto",
        "max_out": null,
        "max_tool_calls": null,
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.01,
                "amount_unit": "usd_per_display_unit",
                "key": "audio_input_started_minute",
                "label": "per minute or part thereof",
                "side": "in"
              }
            ]
          }
        ],
        "request_model_id": "gemini-3.5-transcribe",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "audio_input_started_minute",
        "units": [
          {
            "key": "audio_input_started_minute",
            "label": "per minute or part thereof",
            "side": "in",
            "usd": 0.01
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "gemini-3.5-transcribe",
        "request_model_id": "gemini-3.5-transcribe",
        "route_label": "Core"
      }
    ],
    "name": "Gemini 3.5 Transcribe",
    "price": {
      "in": 0.01,
      "in_label": "per minute or part thereof",
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": false
    },
    "short": "Modelo da Google para reconhecimento de fala, deteção da língua, identificação de intervenientes e marcas temporais por palavra."
  },
  "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": "Modelo da Google para reconhecimento de fala, deteção da língua, identificação de intervenientes e marcas temporais por palavra.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "2c0dfcf6364bdc7a8c93b58ff034db611286af75fdebbfbd3de3beeb2b7dec69",
    "renderer_sha256": "8caea4544177cc2b7d2cb3356b5f07bfd3660386d75f2714a6f603fa5e2a6cd2"
  },
  "sourceRevision": "5c6f10371eaa4be0869cc529f7cc3d5955566d814e35fa071ddfc6856ea55e03"
}
