{
  "aboutHtml": "<p>Muse Voice Transcribe 1.0 é o modelo de perceção de áudio da Meta para transcrever fala, detetar os limites dos enunciados e atribuir turnos aos locutores. Pertence à família de modelos Muse Spark e combina reconhecimento, diarização e deteção do fim da fala no próprio modelo. A saída é texto reconhecido, acompanhado da informação temporal e dos locutores disponível no modo selecionado.</p><p>O modelo processa o áudio em blocos de 80 milissegundos e decide quando continuar a escutar ou emitir texto. O seu atraso adaptativo permite-lhe aguardar áudio adicional quando é mais difícil reconhecer uma palavra. Assim, produz texto parcial à medida que a fala chega, seguido dos resultados de transcrição concluídos. Trate a hipótese parcial e o turno concluído como etapas distintas da experiência de escuta.</p><p>Escolha entre três modos. Push-to-talk é o modo predefinido para um único enunciado controlado, como uma pergunta por voz ou uma passagem curta ditada. Endpointing permite que o modelo detete os limites dos turnos de fala e devolva uma transcrição concluída por segmento detetado. Diarization atribui a fala reconhecida a identificadores de locutor e destina-se a gravações com vários locutores, em vez de privilegiar a alternância mais rápida entre turnos de comandos de voz.</p><p>Para um excerto gravado, o fluxo de transcrição de ficheiros devolve uma transcrição completa num único pedido. O resultado predefinido é JSON com a transcrição e a duração do áudio, incluindo um array turns nos modos endpointing e diarization. Cada turno pode conter um identificador, início e fim em milissegundos e o respetivo texto reconhecido. Os identificadores de locutor estão presentes no modo diarization. Push-to-talk produz a transcrição completa sem turnos detetados nesse array. A interface do fabricante para ficheiros gravados também pode devolver texto simples ou um fluxo de eventos de transcrição. O texto simples mantém os turnos detetados em linhas separadas e pode incluir identificadores de locutor; um fluxo de eventos termina após o último evento, sem um resumo JSON separado. O seu modo parcial delta devolve texto incremental, enquanto o evento de transcrição final contém a redação completa.</p><p>Prepare um ficheiro RIFF/WAVE com áudio PCM mono de números inteiros de 16 bits, a 16 ou 24 kHz. A frequência nativa do modelo é 24 kHz, e a interface também aceita 16 kHz. Converta outros contentores ou codificações para esse formato WAV suportado antes de fornecer uma gravação. O perfil de transcrição de ficheiros permite áudio com duração até 10 minutos e um corpo de pedido total até 32 MB. Mantenha a gravação original e qualquer conversão associadas à transcrição devolvida para uma posterior revisão por escuta.</p><p>O fluxo de áudio em direto utiliza PCM mono em bruto, com sinal, de 16 bits e em little-endian, com áudio a 16 ou 24 kHz enviado aproximadamente ao ritmo real. A duração documentada da sessão é de 60 minutos. A Meta descreve entrada de áudio nativa superior a uma hora; os limites documentados para ficheiros e sessões em direto continuam a ser limites distintos das respetivas interfaces. Selecione o fluxo de ficheiro gravado ou de áudio em direto consoante o áudio já esteja completo ou ainda esteja a ser captado, e mantenha os resultados de sessões separadas associados aos respetivos segmentos de entrada.</p><p>Muse Voice Transcribe é treinado em mais de 70 idiomas, enquanto a interface de reconhecimento documentada enumera 25 idiomas suportados. Estes incluem inglês, francês, alemão, espanhol, árabe, chinês mandarim, hindi, japonês, coreano, italiano e português. Reconhece a alternância entre idiomas dentro de uma frase ou entre frases. Uma indicação de idioma pode nomear os idiomas esperados no áudio, mas orienta o reconhecimento em vez de obrigar a transcrição a ficar num único idioma.</p><p>As indicações de vocabulário ajudam com termos de produtos, siglas, nomes ou locais importantes numa gravação. Forneça as palavras e grafias reais que espera ouvir. A lista de palavras-chave favorece o seu reconhecimento sem garantir uma grafia exata, pelo que deve conferir os termos decisivos com o áudio. As indicações de idioma e as palavras-chave são selecionadas no início da transcrição; mantenha-as adequadas à gravação, em vez de alterar o seu significado durante uma sessão.</p><p>O modelo suporta diarização de conversas com mais de 20 locutores. Rótulos como A e B identificam locutores dentro de uma transcrição. Não são nomes verificados e não estabelecem que um rótulo corresponde à mesma pessoa noutra sessão. Numa tarefa original de análise de uma reunião, peça turnos atribuídos a locutores, conserve a gravação e utilize os rótulos para organizar a discussão antes de atribuir nomes reais aos participantes através do fluxo de trabalho envolvente.</p><p>As transcrições parciais em direto podem mudar à medida que chega mais fala. No modo cumulativo, cada parcial substitui a hipótese anterior, em vez de acrescentar outra cópia. Um fim de fala detetado assinala um limite, enquanto o resultado do turno concluído fornece o texto final e pode diferir da última parcial. Mantenha os turnos sobrepostos associados aos respetivos identificadores e processe os resultados concluídos antes de considerar uma transcrição terminada. Quando a entrada em direto terminar, sinalize o fim da entrada e continue a receber até o produtor terminar de enviar os resultados pendentes. Fechar a ligação de imediato pode descartar esses resultados; um limite de fala detetado termina um turno, em vez de toda a sessão.</p><p>A informação temporal é fornecida ao nível do turno. Este perfil não fornece marcas temporais ao nível da palavra nem pontuações de confiança, e o progresso do processamento do áudio não é uma marca temporal de uma palavra específica. A deteção de eventos sonoros, a deteção de emoções e a reformatação da transcrição também ficam fora do perfil de saída documentado. Utilize os intervalos dos turnos devolvidos para uma cronologia dos locutores ou uma revisão ao nível do segmento, e conserve as palavras reconhecidas se uma etapa de edição separada produzir posteriormente notas mais claras.</p><p>Entre os resultados úteis contam-se uma passagem ditada concluída, a transcrição de uma pergunta por voz, uma conversa atribuída a locutores ou uma cronologia dos enunciados. Compare nomes, números e termos técnicos com a gravação original, preserve as associações de modo e tempo e mantenha os turnos completos disponíveis para revisão. A transcrição estabelece o que foi reconhecido no áudio; responder a uma pergunta falada, traduzi-la ou transformá-la em notas de reunião pertence a uma etapa posterior da aplicação.</p>",
  "aboutText": "Muse Voice Transcribe 1.0 é o modelo de perceção de áudio da Meta para transcrever fala, detetar os limites dos enunciados e atribuir turnos aos locutores. Pertence à família de modelos Muse Spark e combina reconhecimento, diarização e deteção do fim da fala no próprio modelo. A saída é texto reconhecido, acompanhado da informação temporal e dos locutores disponível no modo selecionado.\n\nO modelo processa o áudio em blocos de 80 milissegundos e decide quando continuar a escutar ou emitir texto. O seu atraso adaptativo permite-lhe aguardar áudio adicional quando é mais difícil reconhecer uma palavra. Assim, produz texto parcial à medida que a fala chega, seguido dos resultados de transcrição concluídos. Trate a hipótese parcial e o turno concluído como etapas distintas da experiência de escuta.\n\nEscolha entre três modos. Push-to-talk é o modo predefinido para um único enunciado controlado, como uma pergunta por voz ou uma passagem curta ditada. Endpointing permite que o modelo detete os limites dos turnos de fala e devolva uma transcrição concluída por segmento detetado. Diarization atribui a fala reconhecida a identificadores de locutor e destina-se a gravações com vários locutores, em vez de privilegiar a alternância mais rápida entre turnos de comandos de voz.\n\nPara um excerto gravado, o fluxo de transcrição de ficheiros devolve uma transcrição completa num único pedido. O resultado predefinido é JSON com a transcrição e a duração do áudio, incluindo um array turns nos modos endpointing e diarization. Cada turno pode conter um identificador, início e fim em milissegundos e o respetivo texto reconhecido. Os identificadores de locutor estão presentes no modo diarization. Push-to-talk produz a transcrição completa sem turnos detetados nesse array. A interface do fabricante para ficheiros gravados também pode devolver texto simples ou um fluxo de eventos de transcrição. O texto simples mantém os turnos detetados em linhas separadas e pode incluir identificadores de locutor; um fluxo de eventos termina após o último evento, sem um resumo JSON separado. O seu modo parcial delta devolve texto incremental, enquanto o evento de transcrição final contém a redação completa.\n\nPrepare um ficheiro RIFF/WAVE com áudio PCM mono de números inteiros de 16 bits, a 16 ou 24 kHz. A frequência nativa do modelo é 24 kHz, e a interface também aceita 16 kHz. Converta outros contentores ou codificações para esse formato WAV suportado antes de fornecer uma gravação. O perfil de transcrição de ficheiros permite áudio com duração até 10 minutos e um corpo de pedido total até 32 MB. Mantenha a gravação original e qualquer conversão associadas à transcrição devolvida para uma posterior revisão por escuta.\n\nO fluxo de áudio em direto utiliza PCM mono em bruto, com sinal, de 16 bits e em little-endian, com áudio a 16 ou 24 kHz enviado aproximadamente ao ritmo real. A duração documentada da sessão é de 60 minutos. A Meta descreve entrada de áudio nativa superior a uma hora; os limites documentados para ficheiros e sessões em direto continuam a ser limites distintos das respetivas interfaces. Selecione o fluxo de ficheiro gravado ou de áudio em direto consoante o áudio já esteja completo ou ainda esteja a ser captado, e mantenha os resultados de sessões separadas associados aos respetivos segmentos de entrada.\n\nMuse Voice Transcribe é treinado em mais de 70 idiomas, enquanto a interface de reconhecimento documentada enumera 25 idiomas suportados. Estes incluem inglês, francês, alemão, espanhol, árabe, chinês mandarim, hindi, japonês, coreano, italiano e português. Reconhece a alternância entre idiomas dentro de uma frase ou entre frases. Uma indicação de idioma pode nomear os idiomas esperados no áudio, mas orienta o reconhecimento em vez de obrigar a transcrição a ficar num único idioma.\n\nAs indicações de vocabulário ajudam com termos de produtos, siglas, nomes ou locais importantes numa gravação. Forneça as palavras e grafias reais que espera ouvir. A lista de palavras-chave favorece o seu reconhecimento sem garantir uma grafia exata, pelo que deve conferir os termos decisivos com o áudio. As indicações de idioma e as palavras-chave são selecionadas no início da transcrição; mantenha-as adequadas à gravação, em vez de alterar o seu significado durante uma sessão.\n\nO modelo suporta diarização de conversas com mais de 20 locutores. Rótulos como A e B identificam locutores dentro de uma transcrição. Não são nomes verificados e não estabelecem que um rótulo corresponde à mesma pessoa noutra sessão. Numa tarefa original de análise de uma reunião, peça turnos atribuídos a locutores, conserve a gravação e utilize os rótulos para organizar a discussão antes de atribuir nomes reais aos participantes através do fluxo de trabalho envolvente.\n\nAs transcrições parciais em direto podem mudar à medida que chega mais fala. No modo cumulativo, cada parcial substitui a hipótese anterior, em vez de acrescentar outra cópia. Um fim de fala detetado assinala um limite, enquanto o resultado do turno concluído fornece o texto final e pode diferir da última parcial. Mantenha os turnos sobrepostos associados aos respetivos identificadores e processe os resultados concluídos antes de considerar uma transcrição terminada. Quando a entrada em direto terminar, sinalize o fim da entrada e continue a receber até o produtor terminar de enviar os resultados pendentes. Fechar a ligação de imediato pode descartar esses resultados; um limite de fala detetado termina um turno, em vez de toda a sessão.\n\nA informação temporal é fornecida ao nível do turno. Este perfil não fornece marcas temporais ao nível da palavra nem pontuações de confiança, e o progresso do processamento do áudio não é uma marca temporal de uma palavra específica. A deteção de eventos sonoros, a deteção de emoções e a reformatação da transcrição também ficam fora do perfil de saída documentado. Utilize os intervalos dos turnos devolvidos para uma cronologia dos locutores ou uma revisão ao nível do segmento, e conserve as palavras reconhecidas se uma etapa de edição separada produzir posteriormente notas mais claras.\n\nEntre os resultados úteis contam-se uma passagem ditada concluída, a transcrição de uma pergunta por voz, uma conversa atribuída a locutores ou uma cronologia dos enunciados. Compare nomes, números e termos técnicos com a gravação original, preserve as associações de modo e tempo e mantenha os turnos completos disponíveis para revisão. A transcrição estabelece o que foi reconhecido no áudio; responder a uma pergunta falada, traduzi-la ou transformá-la em notas de reunião pertence a uma etapa posterior da aplicação.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "df763ea4f0374a99c7923c7d60498c2bb680112c0af2a959111d2d18b04f3700",
    "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\">M</span><h2 id=\"sheet-title\">Meta: Muse Voice Transcribe 1.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fechar\">×</button></div><div class=\"idline\"><span>Meta /</span><code>meta/muse-voice-transcribe-1.0</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|meta%2Fmuse-voice-transcribe-1.0\">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\">Muse Voice Transcribe 1.0 é o modelo de conversão de voz em texto da Meta para ditado, deteção de turnos de fala e transcrições com identificação de locutores. Suporta indicações de idioma e vocabulário, alternância entre idiomas e informação temporal ao nível do turno, com fluxos de trabalho separados para um excerto gravado e para áudio em direto.</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>Muse Voice Transcribe 1.0 é o modelo de perceção de áudio da Meta para transcrever fala, detetar os limites dos enunciados e atribuir turnos aos locutores. Pertence à família de modelos Muse Spark e combina reconhecimento, diarização e deteção do fim da fala no próprio modelo. A saída é texto reconhecido, acompanhado da informação temporal e dos locutores disponível no modo selecionado.</p><p>O modelo processa o áudio em blocos de 80 milissegundos e decide quando continuar a escutar ou emitir texto. O seu atraso adaptativo permite-lhe aguardar áudio adicional quando é mais difícil reconhecer uma palavra. Assim, produz texto parcial à medida que a fala chega, seguido dos resultados de transcrição concluídos. Trate a hipótese parcial e o turno concluído como etapas distintas da experiência de escuta.</p><p>Escolha entre três modos. Push-to-talk é o modo predefinido para um único enunciado controlado, como uma pergunta por voz ou uma passagem curta ditada. Endpointing permite que o modelo detete os limites dos turnos de fala e devolva uma transcrição concluída por segmento detetado. Diarization atribui a fala reconhecida a identificadores de locutor e destina-se a gravações com vários locutores, em vez de privilegiar a alternância mais rápida entre turnos de comandos de voz.</p><p>Para um excerto gravado, o fluxo de transcrição de ficheiros devolve uma transcrição completa num único pedido. O resultado predefinido é JSON com a transcrição e a duração do áudio, incluindo um array turns nos modos endpointing e diarization. Cada turno pode conter um identificador, início e fim em milissegundos e o respetivo texto reconhecido. Os identificadores de locutor estão presentes no modo diarization. Push-to-talk produz a transcrição completa sem turnos detetados nesse array. A interface do fabricante para ficheiros gravados também pode devolver texto simples ou um fluxo de eventos de transcrição. O texto simples mantém os turnos detetados em linhas separadas e pode incluir identificadores de locutor; um fluxo de eventos termina após o último evento, sem um resumo JSON separado. O seu modo parcial delta devolve texto incremental, enquanto o evento de transcrição final contém a redação completa.</p><p>Prepare um ficheiro RIFF/WAVE com áudio PCM mono de números inteiros de 16 bits, a 16 ou 24 kHz. A frequência nativa do modelo é 24 kHz, e a interface também aceita 16 kHz. Converta outros contentores ou codificações para esse formato WAV suportado antes de fornecer uma gravação. O perfil de transcrição de ficheiros permite áudio com duração até 10 minutos e um corpo de pedido total até 32 MB. Mantenha a gravação original e qualquer conversão associadas à transcrição devolvida para uma posterior revisão por escuta.</p><p>O fluxo de áudio em direto utiliza PCM mono em bruto, com sinal, de 16 bits e em little-endian, com áudio a 16 ou 24 kHz enviado aproximadamente ao ritmo real. A duração documentada da sessão é de 60 minutos. A Meta descreve entrada de áudio nativa superior a uma hora; os limites documentados para ficheiros e sessões em direto continuam a ser limites distintos das respetivas interfaces. Selecione o fluxo de ficheiro gravado ou de áudio em direto consoante o áudio já esteja completo ou ainda esteja a ser captado, e mantenha os resultados de sessões separadas associados aos respetivos segmentos de entrada.</p><p>Muse Voice Transcribe é treinado em mais de 70 idiomas, enquanto a interface de reconhecimento documentada enumera 25 idiomas suportados. Estes incluem inglês, francês, alemão, espanhol, árabe, chinês mandarim, hindi, japonês, coreano, italiano e português. Reconhece a alternância entre idiomas dentro de uma frase ou entre frases. Uma indicação de idioma pode nomear os idiomas esperados no áudio, mas orienta o reconhecimento em vez de obrigar a transcrição a ficar num único idioma.</p><p>As indicações de vocabulário ajudam com termos de produtos, siglas, nomes ou locais importantes numa gravação. Forneça as palavras e grafias reais que espera ouvir. A lista de palavras-chave favorece o seu reconhecimento sem garantir uma grafia exata, pelo que deve conferir os termos decisivos com o áudio. As indicações de idioma e as palavras-chave são selecionadas no início da transcrição; mantenha-as adequadas à gravação, em vez de alterar o seu significado durante uma sessão.</p><p>O modelo suporta diarização de conversas com mais de 20 locutores. Rótulos como A e B identificam locutores dentro de uma transcrição. Não são nomes verificados e não estabelecem que um rótulo corresponde à mesma pessoa noutra sessão. Numa tarefa original de análise de uma reunião, peça turnos atribuídos a locutores, conserve a gravação e utilize os rótulos para organizar a discussão antes de atribuir nomes reais aos participantes através do fluxo de trabalho envolvente.</p><p>As transcrições parciais em direto podem mudar à medida que chega mais fala. No modo cumulativo, cada parcial substitui a hipótese anterior, em vez de acrescentar outra cópia. Um fim de fala detetado assinala um limite, enquanto o resultado do turno concluído fornece o texto final e pode diferir da última parcial. Mantenha os turnos sobrepostos associados aos respetivos identificadores e processe os resultados concluídos antes de considerar uma transcrição terminada. Quando a entrada em direto terminar, sinalize o fim da entrada e continue a receber até o produtor terminar de enviar os resultados pendentes. Fechar a ligação de imediato pode descartar esses resultados; um limite de fala detetado termina um turno, em vez de toda a sessão.</p><p>A informação temporal é fornecida ao nível do turno. Este perfil não fornece marcas temporais ao nível da palavra nem pontuações de confiança, e o progresso do processamento do áudio não é uma marca temporal de uma palavra específica. A deteção de eventos sonoros, a deteção de emoções e a reformatação da transcrição também ficam fora do perfil de saída documentado. Utilize os intervalos dos turnos devolvidos para uma cronologia dos locutores ou uma revisão ao nível do segmento, e conserve as palavras reconhecidas se uma etapa de edição separada produzir posteriormente notas mais claras.</p><p>Entre os resultados úteis contam-se uma passagem ditada concluída, a transcrição de uma pergunta por voz, uma conversa atribuída a locutores ou uma cronologia dos enunciados. Compare nomes, números e termos técnicos com a gravação original, preserve as associações de modo e tempo e mantenha os turnos completos disponíveis para revisão. A transcrição estabelece o que foi reconhecido no áudio; responder a uma pergunta falada, traduzi-la ou transformá-la em notas de reunião pertence a uma etapa posterior da aplicação.</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>meta/muse-voice-transcribe-1.0</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.0001</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-1834-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1834-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-1834-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1834-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;meta/muse-voice-transcribe-1.0&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#39;}}\nPath(&#39;request.json&#39;).write_text(json.dumps(request, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">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=meta%2Fmuse-voice-transcribe-1.0&amp;route=Ultra&amp;caller=meta%2Fmuse-voice-transcribe-1.0&amp;fmt=transcriptions\"><code>meta/muse-voice-transcribe-1.0</code></a></span></p><h4>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=meta%2Fmuse-voice-transcribe-1.0&amp;route=Ultra&amp;caller=meta%2Fmuse-voice-transcribe-1.0&amp;fmt=transcriptions\"><code>meta/muse-voice-transcribe-1.0</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "meta/muse-voice-transcribe-1.0",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|meta%2Fmuse-voice-transcribe-1.0",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "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": [
                  "meta/muse-voice-transcribe-1.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "meta/muse-voice-transcribe-1.0"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "meta/muse-voice-transcribe-1.0"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "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.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'meta/muse-voice-transcribe-1.0', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "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.0001
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0001",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "meta/muse-voice-transcribe-1.0",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "d28272a2d4b99c4f8638d536de3277dd9b7b8be9adf81cd026822e4dd4d97a81",
    "input_html_sha256": "9c8101fd99fb23f40ad9d3622156589638716a03028381c2a8106dffd293239f",
    "private_audit_sha256": "378d2d87f0c85a11ccd9f5c768c00e3d82e8e3266612b04f4796439ee27e9bc7",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/pt-pt/meta-muse-voice-transcribe-1-0/",
    "description": "Muse Voice Transcribe 1.0 é o modelo de conversão de voz em texto da Meta para ditado, deteção de turnos de fala e transcrições com identificação de locutores. Suporta indicações de idioma e vocabulário, alternância entre idiomas e informação temporal ao nível do turno, com fluxos de trabalho separados para um excerto gravado e para áudio em direto.",
    "locale": "pt-pt",
    "md_url": "https://ailoot.ai/models/pt-pt/meta-muse-voice-transcribe-1-0/index.md",
    "title": "Meta: Muse Voice Transcribe 1.0 — Ailoot",
    "url": "https://ailoot.ai/models/pt-pt/meta-muse-voice-transcribe-1-0/"
  },
  "rawModel": {
    "about": "Muse Voice Transcribe 1.0 é o modelo de perceção de áudio da Meta para transcrever fala, detetar os limites dos enunciados e atribuir turnos aos locutores. Pertence à família de modelos Muse Spark e combina reconhecimento, diarização e deteção do fim da fala no próprio modelo. A saída é texto reconhecido, acompanhado da informação temporal e dos locutores disponível no modo selecionado.\n\nO modelo processa o áudio em blocos de 80 milissegundos e decide quando continuar a escutar ou emitir texto. O seu atraso adaptativo permite-lhe aguardar áudio adicional quando é mais difícil reconhecer uma palavra. Assim, produz texto parcial à medida que a fala chega, seguido dos resultados de transcrição concluídos. Trate a hipótese parcial e o turno concluído como etapas distintas da experiência de escuta.\n\nEscolha entre três modos. Push-to-talk é o modo predefinido para um único enunciado controlado, como uma pergunta por voz ou uma passagem curta ditada. Endpointing permite que o modelo detete os limites dos turnos de fala e devolva uma transcrição concluída por segmento detetado. Diarization atribui a fala reconhecida a identificadores de locutor e destina-se a gravações com vários locutores, em vez de privilegiar a alternância mais rápida entre turnos de comandos de voz.\n\nPara um excerto gravado, o fluxo de transcrição de ficheiros devolve uma transcrição completa num único pedido. O resultado predefinido é JSON com a transcrição e a duração do áudio, incluindo um array turns nos modos endpointing e diarization. Cada turno pode conter um identificador, início e fim em milissegundos e o respetivo texto reconhecido. Os identificadores de locutor estão presentes no modo diarization. Push-to-talk produz a transcrição completa sem turnos detetados nesse array. A interface do fabricante para ficheiros gravados também pode devolver texto simples ou um fluxo de eventos de transcrição. O texto simples mantém os turnos detetados em linhas separadas e pode incluir identificadores de locutor; um fluxo de eventos termina após o último evento, sem um resumo JSON separado. O seu modo parcial delta devolve texto incremental, enquanto o evento de transcrição final contém a redação completa.\n\nPrepare um ficheiro RIFF/WAVE com áudio PCM mono de números inteiros de 16 bits, a 16 ou 24 kHz. A frequência nativa do modelo é 24 kHz, e a interface também aceita 16 kHz. Converta outros contentores ou codificações para esse formato WAV suportado antes de fornecer uma gravação. O perfil de transcrição de ficheiros permite áudio com duração até 10 minutos e um corpo de pedido total até 32 MB. Mantenha a gravação original e qualquer conversão associadas à transcrição devolvida para uma posterior revisão por escuta.\n\nO fluxo de áudio em direto utiliza PCM mono em bruto, com sinal, de 16 bits e em little-endian, com áudio a 16 ou 24 kHz enviado aproximadamente ao ritmo real. A duração documentada da sessão é de 60 minutos. A Meta descreve entrada de áudio nativa superior a uma hora; os limites documentados para ficheiros e sessões em direto continuam a ser limites distintos das respetivas interfaces. Selecione o fluxo de ficheiro gravado ou de áudio em direto consoante o áudio já esteja completo ou ainda esteja a ser captado, e mantenha os resultados de sessões separadas associados aos respetivos segmentos de entrada.\n\nMuse Voice Transcribe é treinado em mais de 70 idiomas, enquanto a interface de reconhecimento documentada enumera 25 idiomas suportados. Estes incluem inglês, francês, alemão, espanhol, árabe, chinês mandarim, hindi, japonês, coreano, italiano e português. Reconhece a alternância entre idiomas dentro de uma frase ou entre frases. Uma indicação de idioma pode nomear os idiomas esperados no áudio, mas orienta o reconhecimento em vez de obrigar a transcrição a ficar num único idioma.\n\nAs indicações de vocabulário ajudam com termos de produtos, siglas, nomes ou locais importantes numa gravação. Forneça as palavras e grafias reais que espera ouvir. A lista de palavras-chave favorece o seu reconhecimento sem garantir uma grafia exata, pelo que deve conferir os termos decisivos com o áudio. As indicações de idioma e as palavras-chave são selecionadas no início da transcrição; mantenha-as adequadas à gravação, em vez de alterar o seu significado durante uma sessão.\n\nO modelo suporta diarização de conversas com mais de 20 locutores. Rótulos como A e B identificam locutores dentro de uma transcrição. Não são nomes verificados e não estabelecem que um rótulo corresponde à mesma pessoa noutra sessão. Numa tarefa original de análise de uma reunião, peça turnos atribuídos a locutores, conserve a gravação e utilize os rótulos para organizar a discussão antes de atribuir nomes reais aos participantes através do fluxo de trabalho envolvente.\n\nAs transcrições parciais em direto podem mudar à medida que chega mais fala. No modo cumulativo, cada parcial substitui a hipótese anterior, em vez de acrescentar outra cópia. Um fim de fala detetado assinala um limite, enquanto o resultado do turno concluído fornece o texto final e pode diferir da última parcial. Mantenha os turnos sobrepostos associados aos respetivos identificadores e processe os resultados concluídos antes de considerar uma transcrição terminada. Quando a entrada em direto terminar, sinalize o fim da entrada e continue a receber até o produtor terminar de enviar os resultados pendentes. Fechar a ligação de imediato pode descartar esses resultados; um limite de fala detetado termina um turno, em vez de toda a sessão.\n\nA informação temporal é fornecida ao nível do turno. Este perfil não fornece marcas temporais ao nível da palavra nem pontuações de confiança, e o progresso do processamento do áudio não é uma marca temporal de uma palavra específica. A deteção de eventos sonoros, a deteção de emoções e a reformatação da transcrição também ficam fora do perfil de saída documentado. Utilize os intervalos dos turnos devolvidos para uma cronologia dos locutores ou uma revisão ao nível do segmento, e conserve as palavras reconhecidas se uma etapa de edição separada produzir posteriormente notas mais claras.\n\nEntre os resultados úteis contam-se uma passagem ditada concluída, a transcrição de uma pergunta por voz, uma conversa atribuída a locutores ou uma cronologia dos enunciados. Compare nomes, números e termos técnicos com a gravação original, preserve as associações de modo e tempo e mantenha os turnos completos disponíveis para revisão. A transcrição estabelece o que foi reconhecido no áudio; responder a uma pergunta falada, traduzi-la ou transformá-la em notas de reunião pertence a uma etapa posterior da aplicação.",
    "alias_of": null,
    "aliases": [],
    "author": "Meta",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0001",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "Todas as tarifas da configuração constam dos detalhes."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "meta/muse-voice-transcribe-1.0",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "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": [
                  "meta/muse-voice-transcribe-1.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "meta/muse-voice-transcribe-1.0"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "meta/muse-voice-transcribe-1.0"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "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.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'meta/muse-voice-transcribe-1.0', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "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.0001
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0001",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "meta/muse-voice-transcribe-1.0",
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra"
      }
    ],
    "name": "Meta: Muse Voice Transcribe 1.0",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Muse Voice Transcribe 1.0 é o modelo de conversão de voz em texto da Meta para ditado, deteção de turnos de fala e transcrições com identificação de locutores. Suporta indicações de idioma e vocabulário, alternância entre idiomas e informação temporal ao nível do turno, com fluxos de trabalho separados para um excerto gravado e para áudio em direto."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Muse Voice Transcribe 1.0 é o modelo de conversão de voz em texto da Meta para ditado, deteção de turnos de fala e transcrições com identificação de locutores. Suporta indicações de idioma e vocabulário, alternância entre idiomas e informação temporal ao nível do turno, com fluxos de trabalho separados para um excerto gravado e para áudio em direto.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "a41152f5fdc2ae41eb47af223feff37f03356fff2b5520392f7b3012798afea0",
    "renderer_sha256": "8caea4544177cc2b7d2cb3356b5f07bfd3660386d75f2714a6f603fa5e2a6cd2"
  },
  "sourceRevision": "f5dd0f14158e08dc61d7fe0874a0894d00f66493b2de38ba4509d5c4133930e1"
}
