Arquivo de conteúdo social

Voz é o primeiro meio que a web nunca aprendeu a salvar

13 de Setembro de 2026 · ThreadGrab

A OpenAI colocou o GPT-Live 1 na API, e a parte interessante não é o modelo. É a unidade de cobrança. Sessões de voz custam US$ 0,05 por minuto, medidas por segundo, e tudo o que o modelo de voz delega - raciocínio, chamadas de ferramentas, o modelo que de fato compõe a resposta - é cobrado separadamente. Pela primeira vez, uma empresa pode comprar uma conversa e pagar por ela como se paga por uma ligação telefônica.

O que levanta uma pergunta que a documentação não responde. Quando a sessão termina, o que você tem?

Um post é um documento. Tem permalink, carimbo de tempo visível e uma cópia que sobrevive a uma requisição HTTP. Dá para arquivá-lo um ano depois e ainda obter os mesmos bytes. Uma sessão de voz é o oposto: existe enquanto um socket está aberto, e no instante em que fecha, o registro ou existe em algo que você escreveu ou não existe de forma alguma. Não há como voltar e buscar a chamada de ontem.

É dessa assimetria que este artigo trata. Eu arquivo posts públicos profissionalmente, e a chegada de uma API de voz full-duplex cobrada por minuto quebra uma suposição confortável que eu vinha fazendo há anos - a de que qualquer conteúdo que valha a pena guardar ainda estaria lá amanhã para ser coletado.

O que o GPT-Live 1 é, nos termos da própria documentação

O cartão do modelo é incomumente direto. O GPT-Live 1 é descrito como um modelo de voz full-duplex que "consegue escutar e falar ao mesmo tempo, e delegar raciocínio e uso de ferramentas a um agente de backend". Full-duplex é a expressão que sustenta tudo. Não é fala-para-texto alimentando um modelo de linguagem que alimenta texto-para-fala, três etapas numa fila. É um único modelo conduzindo uma conversa em que a interrupção é normal e as duas direções estão vivas.

AtributoValor
PreçoUS$ 0,05 por minuto, cobrado por segundo
Nota de cobrançaA duração da sessão não é arredondada para o minuto inteiro seguinte
ModalidadesTexto e áudio na entrada, texto e áudio na saída
Não suportadoImagem, vídeo, saídas estruturadas, fine-tuning, saídas previstas
EndpointsLive v1/live/sessions, além de Chat Completions, Responses, Realtime
Corte de conhecimento31 de julho de 2025
Limites de taxaMedidos em sessões simultâneas: Tier 1 = 25 até Tier 5 = 500; nível gratuito não suportado

Dois detalhes dessa tabela importam mais do que parecem. Primeiro, "cobrado separadamente" para o uso de backend significa que o preço por minuto é um piso. Uma sessão de voz que pensa muito é uma sessão de voz mais uma conta de modelo de texto mais o que as ferramentas custarem. Segundo, os limites de taxa são medidos em sessões simultâneas em vez de requisições por minuto, que é a unidade correta para algo que ocupa um socket durante toda uma conversa - e também é uma pista sobre que tipo de objeto é uma sessão.

Entre as modalidades de áudio e texto há uma distinção que vale nomear, porque ela decide a sua arquitetura. Áudio é entrada e saída, e a mesma plataforma expõe os endpoints de transcrição separadamente. Uma sessão de transcrição é unidirecional: áudio entra, texto sai, feita para descrever a fala. Uma sessão ao vivo é bidirecional e feita para conversar. Se tudo o que você quer é um registro pesquisável do que foi dito, o caminho de transcrição entrega texto com muito menos maquinário. Se você quer um agente de voz, está construindo o registro por conta própria em cima disso.

As três coisas que uma sessão de voz deixa para trás

Pergunte o que sobrevive a um socket fechado e a resposta é menor do que as pessoas supõem. Existem exatamente três categorias de artefato, e só uma delas é criada por você.

A transcrição transmitida, se o seu cliente a guardou

APIs de voz ao vivo emitem eventos enquanto a conversa roda - transcrições parciais e finais, limites de turno, cargas de chamadas de função. Esses eventos chegam ao seu cliente, o que significa que o seu cliente pode escrevê-los. Este é o artefato de maior valor e o mais fácil de perder: se você apenas encaminha os eventos para uma interface e nunca os persiste, a transcrição é uma renderização, não um registro. Persisti-la é uma mudança de duas linhas no seu manipulador de eventos e uma mudança permanente no que o seu arquivo será capaz de responder depois.

O áudio, se você o pediu

Áudio é entrada e saída neste modelo, então as duas direções podem ser capturadas. Lembre-se de que isso corta para os dois lados: um arquivo de áudio é o registro de maior fidelidade e o menos utilizável. Você não consegue fazer grep nele, não consegue fazer diff, e ele custa armazenamento proporcional à conversa em vez de proporcional ao que foi dito. Na prática, o áudio é a evidência e o texto é o índice, e um arquivo honesto guarda os dois em vez de fingir que um deles basta.

Os metadados da sessão, que ninguém captura e todos precisam

Esta é a categoria que fica de fora, e é ela que decide se o arquivo será interpretável em dezoito meses. Uma transcrição sem id de sessão não pode ser associada a uma linha de cobrança. Uma transcrição sem id de modelo não pode ser explicada quando a voz mudar. Uma transcrição sem endpoint registrado não pode ser reproduzida quando a superfície da API mudar. Nenhum desses campos é difícil de escrever; todos são impossíveis de reconstruir depois do fato.

A parte incômoda: os três artefatos vivem do seu lado do socket. Nada no cartão do modelo promete que uma sessão concluída será recuperável depois, e nada deveria prometer. O comportamento de retenção de um fornecedor é política, não contrato - é exatamente o tipo de garantia que desapareceu para os posts sociais, e vai desaparecer para a voz do mesmo jeito na primeira vez que mantê-la ficar caro.

Capturar uma sessão ao vivo: o que escrever

A etapa de coleta precisa rodar enquanto o socket está aberto, então o lugar certo para ela é dentro do processo que já trata os eventos. Aqui está o formato que eu uso - um manipulador de eventos mínimo que grava um registro de texto durável enquanto a conversa roda, com os metadados que o tornam interpretável depois:

# Persist a GPT-Live 1 session as a durable text record.
# Run this inside the process that already handles the stream events.
import json, pathlib, datetime

SESSION_ID = "sess_abc123"          # from v1/live/sessions
MODEL_ID = "gpt-live-1"
ENDPOINT = "v1/live/sessions"
OUT = pathlib.Path("voice-archive") / SESSION_ID
OUT.mkdir(parents=True, exist_ok=True)

def utc_now():
    return datetime.datetime.now(datetime.timezone.utc).isoformat(timespec="seconds")

transcript = OUT / "transcript.jsonl"

# One JSON object per event, appended as it arrives. JSONL is the right
# container: it is line-greppable, append-only, and survives a crash
# mid-session without losing the turns that already landed.
def on_event(evt):
    row = {
        "captured_at": utc_now(),
        "session_id": SESSION_ID,
        "model": MODEL_ID,
        "type": evt["type"],                  # speech_started / transcript / response
        "role": evt.get("role"),              # "user" or "assistant"
        "text": evt.get("text"),
        "turn": evt.get("turn"),
    }
    with transcript.open("a", encoding="utf-8") as fh:
        fh.write(json.dumps(row, ensure_ascii=False) + "\n")

JSONL em vez de um único documento JSON, e a razão merece ser dita: uma conversa é uma sequência somente de acréscimos, e um contêiner somente de acréscimos significa que uma falha no minuto nove ainda deixa nove minutos de transcrição. Converta para um único objeto no final se quiser, mas não faça a validade do arquivo depender de a sessão terminar de forma limpa.

A segunda metade é o arquivo de metadados. Ele é pequeno, é chato, e é o que transforma um monte de texto em um arquivo:

# Write the metadata alongside the transcript, once, at session close.
cat > voice-archive/$SESSION_ID/session.provenance.txt <<EOF
session_id: ${SESSION_ID}
model: gpt-live-1
endpoint: v1/live/sessions
started_at: $(date -u +%Y-%m-%dT%H:%M:%SZ)
billed_unit: 0.05 USD per minute, metered per second
backend_calls: separate billing, model recorded per call
consent: announced at session start, flag stored alongside transcript
retention: audio 90 days, transcript and metadata indefinite
note: transcript is the index, audio is the evidence
EOF

A linha note no final não é decoração. Quem abrir esta pasta em dois anos precisa entender em cinco segundos qual arquivo deve ser usado para citar e qual deve ser usado para o tom. Isso é uma decisão de projeto, e o único lugar onde ela pode viver é dentro do próprio arquivo.

A questão do consentimento, tratada como problema de engenharia

A legislação de gravação varia por jurisdição e não vou fingir que isto é consultoria jurídica. Mas o formato de engenharia é estável nas jurisdições que conheço: quando há um humano de um lado da gravação, as regras se aplicam a esse humano, e vários lugares exigem o consentimento de todas as partes. Uma API de voz cobrada por minuto torna isso mais comum, não menos - todo o argumento é que comprar uma conversa agora é barato e fácil.

Então trate isso como trataria qualquer outra marca de conformidade: torne-a explícita e torne-a dado. Avise no início da sessão em vez de enterrar isso nos termos. Guarde o estado de consentimento como um campo ao lado da transcrição, não como uma suposição na memória de alguém. Escreva a janela de retenção nos metadados para que um pedido de exclusão futuro seja uma consulta em vez de um projeto de arqueologia. O modo de falha a evitar é o comum - uma gravação que existe, cuja procedência ninguém consegue explicar, que ninguém tem certeza se é legal manter.

Por que a versão do modelo é a parte menos durável

Aqui está o problema de construir um arquivo em cima de gpt-live-1: é um nome de snapshot. Snapshots são descontinuados. Endpoints são substituídos - este modelo já é acessível via Live, Chat Completions, Responses e Realtime, o que mostra que a superfície ainda está se movendo. Faixas de preço são reestruturadas, e os limites de sessões simultâneas que parecem generosos no Tier 5 são política que pode mudar sem o seu arquivo perceber.

Nada disso é motivo para não construir. É motivo para construir de modo que o modelo seja a parte substituível. Guarde o áudio. Guarde uma transcrição em texto. Guarde um pequeno arquivo que nomeie o id do modelo, o endpoint e a data. Se o significado do seu arquivo depende de qual voz respondeu, registre isso como um campo, do mesmo jeito que você registraria qual conta publicou uma thread - porque a plataforma mudando embaixo de um artefato salvo é o modo de falha sobre o qual eu escrevo toda semana, e a voz não tem equivalente de permalink para servir de rede de segurança.

É o mesmo instinto de arquivar uma thread em vez de salvar um link nos favoritos. O favorito prova que a coisa existiu e ainda resolve para alguma coisa. A cópia prova o que ela dizia. Voz é o caso em que essa distinção deixa de ser preferência, porque a coisa para a qual ele resolve na semana que vem pode ser uma voz diferente, um modelo diferente, ou nada.

A pilha, de ponta a ponta

  1. Avise - declare no início da sessão que a conversa é gravada, e guarde a marca de consentimento ao lado da transcrição.
  2. Capture ao vivo - persista os eventos de transcrição e o áudio conforme passam pelo seu cliente. Esta é a única etapa que não pode rodar atrasada.
  3. Carimbe - escreva id da sessão, id do modelo, endpoint e um carimbo de tempo em UTC num arquivo de metadados ao fechar a sessão.
  4. Separe evidência de índice - áudio para o tom e a prova, texto para busca e citação, e uma nota nos metadados dizendo qual é qual.
  5. Reverifique antes de citar - ao citar uma chamada de meses atrás, leia a transcrição, confira o campo do modelo e não presuma que a API atual se comporta como a que a produziu.

Onde o ThreadGrab se encaixa

O ThreadGrab captura conteúdo público do X, Bluesky e LinkedIn em Markdown com carimbos de tempo e a URL de origem, para que o que você salvou mantenha a identidade que tinha quando você salvou. Ele não grava chamadas e não toca em áudio - o pipeline de voz acima é um script que você mesmo roda, contra um socket que você já possui.

O que os dois têm em comum é a regra, e a regra não se importa com o meio: a cópia que você controla, carimbada com quando você a tomou, é a única versão que ainda significa o que significava. Um post tem um permalink que lentamente vira mentira. Uma sessão de voz nunca teve um para começar. Os dois se resolvem do mesmo jeito, e só um deles te dá uma segunda chance de resolver.

Perguntas frequentes

Quanto custa uma sessão de voz do GPT-Live 1?

As sessões de voz são cobradas a US$ 0,05 por minuto, medidas por segundo e sem arredondamento para o minuto inteiro seguinte. Uma sessão de 90 segundos custa US$ 0,075. Tudo o que o modelo de voz delega a um agente de backend - o raciocínio, as chamadas de ferramentas, o modelo que escreve a resposta - é cobrado separadamente pela tarifa normal do modelo que você configurou, então o valor por minuto é um piso, não um total. A duração das sessões é medida em sessões simultâneas para os limites de taxa, que vão de 25 no Tier 1 a 500 no Tier 5, e o nível gratuito não é suportado.

O GPT-Live 1 mantém uma transcrição da conversa?

Essa é a pergunta errada para basear a arquitetura, porque a resposta pertence ao fornecedor e pode mudar. O que você pode verificar é o que a sua própria integração grava. Áudio é entrada e saída no modelo, então tudo o que produz um registro durável precisa ser uma decisão sua: capture o fluxo de áudio enquanto ele passa pelo seu cliente, registre as transcrições de texto se os eventos que você trata as incluírem, e carimbe cada artefato com o id da sessão e um carimbo de tempo em UTC. Trate o que o fornecedor retém como um bônus, nunca como o seu arquivo.

Qual é a diferença entre uma sessão de voz ao vivo e uma sessão de transcrição Realtime?

Uma sessão do GPT-Live 1 no endpoint Live é um modelo de voz bidirecional: ele escuta e fala ao mesmo tempo, lida com interrupções e pode entregar o raciocínio ou o uso de ferramentas a um agente de backend. Uma sessão de transcrição no endpoint transcription_sessions é unidirecional - áudio entra, texto sai - e existe para descrever áudio, não para conversar. Se o seu objetivo é um registro pesquisável da fala, o caminho de transcrição entrega texto com muito menos maquinário; se o seu objetivo é um agente de voz que também precisa de um registro, você está construindo o registro por conta própria sobre a sessão ao vivo.

Posso arquivar chamadas de voz do mesmo jeito que arquivo posts?

A metade do armazenamento é a mesma e a metade da coleta é mais difícil. Posts chegam como texto estruturado com um permalink; voz chega como um fluxo que só existe enquanto a sessão está aberta. Então a etapa de coleta precisa rodar ao vivo - não dá para voltar e buscar a chamada de ontem - enquanto a etapa de custódia deve seguir exatamente as regras que você já usa para conteúdo social: arquivos simples sob o seu controle, um identificador de origem, um carimbo de captura e nenhum formato que só uma ferramenta de um fornecedor consiga abrir. O ThreadGrab faz a metade dos posts; a metade da voz é um script seu.

Preciso de consentimento para gravar uma chamada do GPT-Live 1?

A legislação de gravação varia por jurisdição e este artigo não é consultoria jurídica, mas o formato prático é consistente: quando há um humano de um lado da chamada, as regras de gravação se aplicam a esse humano, não ao modelo. Várias jurisdições exigem o consentimento de todas as partes. A resposta de engenharia mais barata é tornar a captura explícita em vez de silenciosa - avise no início da sessão, guarde a marca de consentimento ao lado da transcrição e deixe a janela de retenção explícita. Uma gravação cuja procedência você não consegue explicar é pior do que nenhuma gravação.

O GPT-Live 1 é o modelo certo para um arquivo de voz que precisa durar anos?

A versão do modelo é a parte menos durável da pilha. gpt-live-1 é um nome de snapshot hoje; snapshots são descontinuados, endpoints são substituídos e faixas de preço são reestruturadas. Projete para que o modelo seja a parte substituível: guarde o áudio, guarde uma transcrição em texto e guarde um pequeno arquivo de metadados com o id do modelo, o endpoint e a data. Se o significado do seu arquivo depende de qual modelo de voz respondeu, registre isso como você registraria qual conta publicou uma thread - como um campo, não como uma suposição.

Última verificação: 13 de Setembro de 2026. Fonte primária: o cartão do modelo GPT-Live 1 da OpenAI em platform.openai.com/docs/models/gpt-live-1, que é a base para a cobrança de US$ 0,05 por minuto, a medição por segundo, a cobrança separada do backend, as modalidades de texto e áudio, a lista de recursos não suportados, a lista de endpoints, o corte de conhecimento de 31 de julho de 2025 e os níveis de limite de sessões simultâneas. A página de anúncio em openai.com retornou HTTP 403 a todas as tentativas automatizadas e não foi usada. O desenho de captura de áudio, o esquema JSONL e o modelo de metadados são do autor e não são orientação do fornecedor. A legislação de gravação varia por jurisdição; os requisitos de consentimento devem ser verificados junto às regras locais e este artigo não é consultoria jurídica.

Guarde os posts, não só os links

O ThreadGrab transforma conteúdo público do X, Bluesky e LinkedIn em Markdown limpo e com carimbo de tempo — para que o seu arquivo mantenha os autores e o contexto.

Experimente o ThreadGrab →