No Ar
VoxLive.ai · Rádio com locutora de IA

Sua rádio no ar 24 horas, com locutora de IA

Uma personagem de inteligência artificial no ar o dia inteiro: ela toca a programação, lê os recados dos ouvintes, fala o nome de quem participa e transforma cada Pix em um momento no ar. Não é uma playlist com voz — é uma experiência que prende a audiência e gera receita.

O que é

Não é uma playlist com voz. É uma rádio viva.

A VoxLive.ai coloca uma locutora de inteligência artificial no ar 24 horas por dia para a sua marca, sua live ou seu projeto. Ela toca a programação, conversa com a audiência, lê os recados que chegam e dá nome no ar a quem participa — sozinha, sem equipe e sem parar.

🎙️
Locutora de IA no ar 24h, com a voz e a personalidade que você escolher.
💬
Recados dos ouvintes por texto (narrado pela locutora) ou pela voz do próprio ouvinte.
💸
Pix integrado: o nome de quem manda vai ao ar e o valor aparece no overlay, com confete.
🎵
Sua programação: toque o seu próprio acervo de músicas ou deixe a IA criar as faixas.
🎭
Personagem sob medida: DJ animada, voz gospel, atendente de loja, narrador gamer…
🎬
Pronta para transmitir: integra com OBS e VLC, em rádio de áudio ou de videoclipes.
Como funciona

Da participação do ouvinte ao ar, em segundos

O ouvinte participa

Pelo seu link, ele manda um recado — escrito ou gravado — e finaliza com um Pix. Tudo na sua página, com a sua marca.

A IA recebe e modera

A locutora entende a mensagem, bloqueia o que não pode ir ao ar e separa recado de pedido de música.

Ela anuncia no ar

Fala o nome de quem participou, lê o recado e mostra o Pix no overlay — e segue tocando a programação.

Sai na sua transmissão

Tudo é entregue ao OBS ou ao seu player, pronto para a live, o site ou a rádio da sua marca, 24 horas por dia.

Por que funciona

O que faz a diferença

Engajamento

A audiência participa

Quando o ouvinte manda recado, ouve o próprio nome no ar e entra na programação, vira experiência — e experiência é o que mantém gente conectada e disposta a apoiar.

Identidade

Uma personagem sua

Você não coloca “uma IA” no ar. Coloca uma personagem trabalhando por você: com nome, voz e jeito próprios, falando com o seu público do jeito da sua marca.

Operação

No ar o tempo todo

Sem locutor de plantão, sem playlist morta, sem horário vago. A estação se mantém viva sozinha — inclusive de madrugada e nos fins de semana.

Para quem é

Uma rádio sob medida para o seu caso

A VoxLive.ai é para quem precisa manter um canal de áudio vivo sem montar uma estrutura de rádio com equipe. Alguns formatos prontos:

Live · Streamer

Para a sua transmissão

Uma DJ de IA para manter a live no ar, lendo recados, recebendo Pix e tocando a sua programação enquanto você joga, conversa ou faz uma pausa.

Rádio Web

Sua rádio na internet

Seu próprio acervo tocando com locução, vinhetas e recados dos ouvintes — uma rádio com cara de gente grande, sem precisar de uma equipe.

Igreja

Rádio do ministério

Louvores no ar, avisos, recados e pedidos de oração lidos pela locutora — com a linguagem e o tom da sua comunidade.

Comércio

A voz da sua marca

Música ambiente com anúncios e promoções no meio, na voz da loja — uma rádio interna que comunica enquanto o cliente ouve.

Artista · DJ

Vitrine do seu som

Uma rádio tocando as suas músicas o tempo todo, divulgando o seu trabalho e recebendo recados (e Pix) dos fãs.

Influenciador

Canal da comunidade

Um espaço sempre no ar para a sua audiência mandar recado, aparecer e se sentir parte — fortalecendo a relação com a sua base.

Transmissão

Com OBS ou sem OBS — a rádio vai ao ar do jeito que servir você

Existem dois caminhos para colocar a rádio na sua live — e os dois entregam o mesmo programa no ar: a locutora, os recados, o Pix e o letreiro de “NO AR”.

Modo OBS

Junto da sua transmissão

Você já faz live com o OBS? A rádio entra como mais uma fonte: o som chega pelo cabo virtual e o letreiro entra como uma camada na sua cena. Ideal para quem aparece em vídeo e quer a rádio compondo a transmissão.

Modo direto · sem OBS

O programa transmite sozinho

Não quer (ou não pode) usar o OBS? O próprio programa gera a imagem da live — um vídeo ou uma arte de fundo com o letreiro por cima — e envia direto para a plataforma. Funciona até num servidor alugado (VPS): a rádio fica no ar 24 horas sem nenhum computador ligado na sua casa.

Para onde vai

As plataformas mais usadas

YouTube, Twitch, Facebook Live, Kick, TikTok LIVE, Trovo, Rumble — e qualquer serviço que aceite transmissão RTMP, inclusive um servidor seu. É colar o endereço com a chave da live e pronto.

Configuração

No ar em minutos — com um assistente que faz o trabalho por você

Esqueça arquivos de configuração. O programa abre um assistente no navegador: você preenche um formulário simples — voz, destino da transmissão, música, efeitos — clica em um botão e a rádio entra no ar, já abrindo o seu painel de controle.

Visual

Um formulário, sem código

Escolha a voz da locutora (ElevenLabs ou Resemble), cole o endereço da live, aponte a sua pasta de músicas e os efeitos. O assistente cuida do resto e grava tudo certinho.

Um clique

Salva e já vai ao ar

No fim, “Salvar e abrir painel” coloca a transmissão no ar e te leva direto para o painel do streamer — onde você acompanha os recados, dispara efeitos e conduz o programa.

Quando quiser

Mudou de ideia? Reinicia sozinho

Trocar a voz, o fundo ou o destino é abrir o assistente de novo (ou clicar em “Reiniciar” no painel): o programa se reinicia sozinho e já sobe com o ajuste — sem fechar e abrir nada na mão.

Sua rádio no ar hoje — com locutora de IA, recados por Pix e a sua audiência participando.

Falar no WhatsApp →
🤝

A configuração é por nossa conta

Você não precisa mexer em nada técnico. A gente instala, configura as vozes, conecta a transmissão (com OBS ou direto para a plataforma, sem OBS), o Pix e a página dos seus ouvintes, e entrega a sua rádio pronta para usar. E se um dia quiser ajustar por conta própria, há o assistente de configuração: um formulário no navegador que faz tudo sem editar arquivo nenhum. O passo a passo abaixo existe só para transparência — para quem quiser ver como tudo funciona por dentro. Pode ficar tranquilo: é tudo com a gente.

Opcional — só para quem quer ver os detalhes.

Por onde começar

Há dois caminhos, e os dois geram exatamente o mesmo resultado: o assistente de configuração (recomendado — um formulário no navegador) e a edição manual do arquivo config.json. O assistente só preenche o arquivo por você.

O jeito fácil: o assistente de configuração

Rode o programa pelo run.bat (no Windows) ou com voxlive --setup. Se ainda não houver configuração, o assistente abre sozinho. Ele sobe uma página em http://127.0.0.1:8080, onde você:

  • Escolhe o tipo (Rádio ou Live) e como transmitir: Direto (o programa envia sozinho para a plataforma) ou pelo OBS (entra na sua cena — o assistente mostra as instruções do Browser Source, e não precisa de cabo virtual).
  • Preenche o essencial: a voz (ElevenLabs ou Resemble — uma chave serve para a locutora e para a narração dos recados), a fila de recados e, no modo direto, o destino RTMP da live. No modo rádio, também o cérebro da DJ (Groq) e a música (sua pasta ou criada por IA).
  • Ajusta o opcional: cena (câmera, vídeo em loop ou cor de fundo), microfone, efeitos sonoros (soundboard) e qualidade.
  • Clica em “Salvar e abrir painel do streamer”: ele grava o config.json com o que você preencheu, inicia a transmissão e abre o seu painel de controle.

Para mudar algo depois, abra o assistente de novo (voxlive --setup) ou use o botão “Reiniciar” no painel: o programa se reinicia sozinho e já sobe com o ajuste — inclusive trocas de destino, dispositivos e resolução, que só valem ao reiniciar. Rodando pelo run.bat, esse reinício é automático (você não fecha e abre nada).

Prefere editar à mão? Toda a configuração fica no arquivo config.json, na pasta do programa. Você abre esse arquivo com um editor de texto (o Bloco de Notas serve), troca os valores e salva. As mudanças passam a valer quando você reinicia o programa — e o resto deste guia detalha cada campo.

As chaves que valem para qualquer modo

Independentemente do que você escolher abaixo, estes itens precisam estar preenchidos para a locutora funcionar:

config.json · trecho "webradio"
"webradio": {
  "enabled": true,
  "groq_api_key": "gsk_...sua_chave...",
  "elevenlabs_api_key": "sk_...sua_chave...",
  "dj_voice_id": "RVmX026jCrF5VqUvpCk0",
  "dj_name": "DJ Aurora",
  "station_name": "Rádio Monster FM 123.4",
  "language": "pt-BR"
}
  • groq_api_key — a chave do "cérebro" que escreve as falas.
  • elevenlabs_api_key e dj_voice_id — a chave e a voz que dão voz à locutora (no serviço padrão, o ElevenLabs). Dá para usar a Resemble.ai no lugar — veja a seção "A voz da locutora".
  • dj_name e station_name — o nome da locutora e o nome da rádio.
  • audio.tts — a voz que lê os recados de texto do ouvinte (narra "Fulano disse: …"). É obrigatória, fica em outro trecho ("audio") e é separada da voz da locutora. Detalhes em "A voz da locutora".
⚠️

A voz é cobrada por uso (créditos do serviço de voz — ElevenLabs ou Resemble). Quando os créditos acabam, a locutora para de responder os recados — só continuam as falas curtas que já ficaram gravadas. Se isso acontecer, é sinal de recarregar os créditos, não um defeito do programa.

🎙 A voz da locutora

A fala da locutora é gerada por um serviço de voz (TTS). Você pode escolher entre dois: o ElevenLabs (padrão) ou o Resemble.ai. A escolha é feita numa única chave, e todo o resto funciona igual nos dois — recados, vinhetas, cache de falas, controle de vídeo. Muda só de onde sai a voz.

🗣️

Existem duas vozes no programa, independentes: a voz da locutora (esta seção — webradio.dj_voice_id), que apresenta a programação e reage aos recados; e a voz que lê os recados de texto do ouvinte (audio.tts, no fim desta seção), que narra "Fulano disse: …". O ouvinte não escolhe a voz — quem dá voz ao texto é o programa. Já um recado em áudio toca na voz do próprio ouvinte.

config.json · trecho "webradio"
"tts_provider": "elevenlabs"

Valores possíveis: "elevenlabs" ou "resemble".

Opção 1 — ElevenLabs (padrão)

Usa a chave e a voz do ElevenLabs. É o que está configurado por padrão.

config.json · trecho "webradio"
"tts_provider": "elevenlabs",
"elevenlabs_api_key": "sk_...sua_chave...",
"dj_voice_id": "RVmX026jCrF5VqUvpCk0",
"elevenlabs_tts_model": "eleven_turbo_v2_5"
elevenlabs_api_key
A chave da sua conta ElevenLabs.
dj_voice_id
O identificador da voz escolhida no ElevenLabs.
elevenlabs_tts_model
O modelo de voz. Padrão eleven_turbo_v2_5. Um modelo Flash sai mais barato (ver a seção de custos).

Opção 2 — Resemble.ai

Para usar a Resemble, mude o tts_provider para "resemble" e preencha os campos abaixo. Quando você usa a Resemble, os campos do ElevenLabs não são exigidos (a não ser que você use o ElevenLabs para criar música, na Seção 1).

config.json · trecho "webradio"
"tts_provider": "resemble",
"resemble_api_key": "...seu_token...",
"resemble_voice_uuid": "...uuid_da_voz...",
"resemble_synthesize_url": "https://f.cluster.resemble.ai/synthesize",
"resemble_stream_url": "https://f.cluster.resemble.ai/stream",
"resemble_sample_rate": 48000
resemble_api_key
O token da sua conta Resemble (fica em API / Settings do painel). É a sua credencial de acesso.
resemble_voice_uuid
O identificador de uma voz da sua conta (em Voices) — algo como 1a2b3c4d. Não é o seu e-mail. É o equivalente ao dj_voice_id do ElevenLabs.
resemble_synthesize_url
Endereço que gera a voz. Já vem com o padrão; só mude se a Resemble alterar o endereço.
resemble_stream_url
Reservado — não é usado por enquanto (o programa gera a fala inteira antes de tocar). Pode deixar como está.
resemble_sample_rate
Qualidade de amostragem pedida à Resemble. Padrão 48000; pode deixar.
🔎

Onde achar o UUID da voz: no painel da Resemble, abra Voices e selecione a voz desejada — o UUID aparece nos detalhes dela ou na URL ao abri-la (algo como .../voices/SEU_UUID). É preciso ter ao menos uma voz criada na conta.

🔄

Pode trocar de serviço quando quiser, sem dor de cabeça: o programa mantém as falas gravadas (cache) separadas por voz, então ao mudar de ElevenLabs para Resemble (ou vice-versa) ela não mistura os timbres — gera o repertório novo na voz certa.

⚠️

Seja qual for o serviço, a voz é paga por uso. Se a locutora parar de responder os recados de repente, normalmente é a cota/créditos do serviço de voz que acabaram — recarregue na conta correspondente (ver "Erros comuns").

A voz que lê os recados de texto (audio.tts)

Quando o ouvinte manda um recado de texto (em vez de gravar um áudio), é o programa que lê a mensagem em voz alta, no formato "Fulano disse: …" (sorteando algumas variações). Essa voz é configurada à parte, no trecho "audio""tts", e é obrigatória: o programa não inicia sem ela, mesmo que você só receba recados em áudio. Ela é separada da voz da locutora — o ideal é usar uma voz diferente aqui (um "narrador" dos recados), mas pode ser a mesma conta/chave. Os provedores são os mesmos ("elevenlabs" padrão ou "resemble"), escolhidos por audio.tts.provider.

Com ElevenLabs (padrão):

config.json · trecho "audio"
"audio": {
  "tts": {
    "provider": "elevenlabs",
    "elevenlabs_api_key": "sk_...sua_chave...",
    "voice_id": "UMA_VOZ_PARA_OS_RECADOS",
    "elevenlabs_model": "eleven_turbo_v2_5"
  }
}

Com Resemble.ai:

config.json · trecho "audio"
"audio": {
  "tts": {
    "provider": "resemble",
    "resemble_api_key": "...seu_token...",
    "resemble_voice_uuid": "...uuid_da_voz..."
  }
}
provider
"elevenlabs" (padrão) ou "resemble" — qual serviço gera a narração dos recados de texto.
voice_id
No ElevenLabs: a voz da narração. Pode (e idealmente deve) ser diferente da dj_voice_id da locutora.
resemble_voice_uuid
No Resemble: o UUID da voz da narração (em Voices). Idealmente diferente do da locutora.
elevenlabs_model
Modelo da voz no ElevenLabs. Padrão eleven_turbo_v2_5; um modelo Flash sai mais barato (ver a seção de custos).
🔑

Os campos seguem a mesma lógica da voz da locutora: no ElevenLabs bastam elevenlabs_api_key + voice_id; no Resemble, resemble_api_key + resemble_voice_uuid. A resemble_synthesize_url e o resemble_sample_rate são opcionais — se você não os escrever, assumem o padrão (os mesmos valores da locutora).

⚠️

Essa voz também é paga por uso e conta para os créditos do serviço. Mas os recados de texto não se perdem se os créditos acabarem: o programa guarda a mensagem e tenta narrar de novo a cada poucos segundos — o recado entra na fila assim que a voz volta a funcionar.

🔑 Chaves e vozes: passo a passo

Aqui está, para cada serviço que o programa pode usar, como criar a conta, pegar a chave (ou token), escolher uma voz pronta e criar/clonar a sua própria voz. Tudo o que você pegar aqui vai parar no config.json — cada valor tem o seu campo, e no fim desta seção tem uma tabelinha de "qual valor vai em qual campo".

🧭

Os sites dessas empresas mudam o visual de tempos em tempos. Se um botão estiver com outro nome ou em outro canto, procure pelo termo em inglês entre parênteses que eu deixo ao lado — a ideia é sempre a mesma. O nome exato dos planos e os preços também mudam; confirme na própria página do serviço.

🔒

Trate as chaves como senhas: o programa as guarda só no seu config.json, na sua máquina, e nunca as mostra na transmissão. Nunca deixe a chave aparecer na tela durante a live nem cole em sites/grupos. Se uma chave vazar, apague-a no painel do serviço e gere outra.

Groq — o cérebro (e a transcrição)

O Groq é o cérebro da locutora: é ele que escreve as falas e faz a moderação dos recados. Também é ele que transcreve o áudio quando você usa um arquivo de áudio como contexto (Seção 3). Não tem voz — é só o texto. Tem um nível gratuito para começar.

  1. Crie uma conta em console.groq.com.
  2. Abra a página de chaves em console.groq.com/keys (no menu, API Keys).
  3. Clique em Create API Key, dê um nome qualquer (ex.: radio) e confirme.
  4. Copie a chave na hora — depois de fechar a janela ela não aparece mais. A chave começa com gsk_.

Cole no campo groq_api_key:

config.json · trecho "webradio"
"groq_api_key": "gsk_...sua_chave..."

ElevenLabs — a voz (padrão) e, opcionalmente, a música

O ElevenLabs é o serviço padrão de voz. A mesma chave serve para três coisas: a voz da locutora (dj_voice_id), a voz que lê os recados de texto (audio.tts) e, se você usar o modo de música por IA, a criação de música (Eleven Music).

1) Pegar a chave

  1. Crie a conta em elevenlabs.io e faça login.
  2. No menu lateral, abra API Keys (fica na área do seu perfil/workspace).
  3. Clique em Create Key, dê um nome e confirme.
  4. Copie na hora — o ElevenLabs mostra a chave uma única vez. Ela começa com sk_.

2) Escolher uma voz pronta (mais rápido)

  1. No menu, abra Voices. Em My Voices ficam as vozes da sua conta; em Explore (Voice Library) há um acervo enorme da comunidade.
  2. Achou uma voz que gostou? Clique nos três pontinhos (More actions) e em Copy voice ID.
  3. Cole esse ID em dj_voice_id (a locutora) e/ou em audio.tts.voice_id (a voz dos recados de texto) — o ideal é usar vozes diferentes nos dois.
💡

No plano gratuito, as vozes do Voice Library podem não funcionar pela chave (API). Se a locutora não falar com uma voz da biblioteca, use uma das vozes padrão que já vêm na conta (em My Voices) — essas funcionam sempre — ou assine um plano.

3) Criar/clonar a sua voz

Em VoicesCreate or Clone a Voice (criar ou clonar uma voz), você tem duas opções:

  1. Instant Voice Clone (clone instantâneo) — envie de 1 a 5 minutos de áudio limpo (sem ruído/música ao fundo). Fica pronta em segundos. É o caminho recomendado para a maioria. Exige um plano pago (a partir do Starter/Creator).
  2. Professional Voice Clone (clone profissional) — precisa de 30 minutos a 3 horas de gravação e treina um modelo (leva algumas horas). Fica bem mais fiel, mas exige plano superior. Vale quando a voz é o seu "produto".

Depois de criar, é só pegar o voice ID dela (os mesmos três pontinhos → Copy voice ID) e colar no campo da voz.

config.json · trecho "webradio"
"elevenlabs_api_key": "sk_...sua_chave...",
"dj_voice_id": "ID_DA_VOZ_QUE_VOCE_COPIOU",
"elevenlabs_tts_model": "eleven_turbo_v2_5"
🎚️

Modelo da voz: o padrão eleven_turbo_v2_5 é rápido e econômico. Existe um mais novo e expressivo, o eleven_v3, e o eleven_multilingual_v2. Para gastar menos, há modelos Flash (veja a seção "Reduzir custos"). Vale o mesmo para a voz dos recados (audio.tts.elevenlabs_model).

4) Criar música por IA (opcional — só no Modo 1)

Se você usa o modo em que a rádio cria as músicas, o Eleven Music usa a mesma chave do ElevenLabs. O modelo padrão da API hoje é o music_v1 (já existe o v2 no site, e ele está vindo para a API).

config.json · trecho "webradio"
"music_provider": "elevenlabs",
"elevenlabs_music_model": "music_v1"
⚠️

A criação de música do ElevenLabs é só para assinantes pagos (não funciona no plano grátis). Se você só quer a locutora lendo recados e tocando o seu acervo (Modos 2 e 3), não precisa disso.

Resemble.ai — alternativa de voz

É a outra opção de voz (no lugar do ElevenLabs), tanto para a locutora quanto para os recados de texto. Você só precisa dela se escolher "resemble" em tts_provider (ou em audio.tts.provider).

1) Pegar o token

  1. Crie a conta em resemble.ai e faça login.
  2. Clique no menu do canto superior direito e escolha API.
  3. Copie o API Token que aparece ali. É a sua credencial (não é o seu e-mail).

2) Escolher ou criar a voz

No painel, abra Voices. Você pode usar uma voz pronta, criar por descrição (Voice Design — você descreve a voz em texto e ela gera opções) ou clonar:

  1. Rapid Voice Clone (clone rápido) — a partir de uns 10 segundos de áudio; fica pronta em cerca de 1 minuto.
  2. Professional Voice Clone (clone profissional) — precisa de 10 a 25 minutos de gravação e leva uns 40 minutos para treinar; resultado mais fiel.
💡

Clonar pela API (programaticamente) exige o plano Business ou superior. Mas dá para criar a voz pelo próprio site num plano menor e depois só usar o UUID dela aqui no programa.

3) Achar o UUID da voz

Em Voices, abra a voz desejada — o UUID aparece nos detalhes dela ou na URL ao abri-la (algo como .../voices/SEU_UUID). É o equivalente ao dj_voice_id do ElevenLabs.

config.json · trecho "webradio"
"tts_provider": "resemble",
"resemble_api_key": "...seu_token...",
"resemble_voice_uuid": "...uuid_da_voz...",
"resemble_synthesize_url": "https://f.cluster.resemble.ai/synthesize"

O resemble_synthesize_url já vem com o endereço certo; só mude se a Resemble alterar o endereço dela.

Musicful — alternativa de música (opcional/avançado)

É a outra opção de criação de música (no lugar do Eleven Music), e só vale no Modo 1 (a rádio criando as músicas). Para a maioria, o Eleven Music (padrão) é o caminho mais simples — use o Musicful só se preferir o serviço deles.

  1. Crie uma conta em musicful.ai.
  2. No painel (dashboard), gere a sua API key.
  3. Confira na documentação do Musicful o endereço completo da API de geração (o endpoint).
config.json · trecho "webradio"
"music_provider": "musicful",
"musicful_api_key": "...sua_chave...",
"musicful_base_url": "https://...endereco_da_doc_do_musicful..."
⚠️

Diferente do ElevenLabs, o formato exato da API do Musicful (o endereço e os campos) pode variar — por isso o musicful_base_url precisa apontar para o endpoint que eles indicarem na documentação atual. Na dúvida, fique no Eleven Music (padrão), que já vem configurado.

Resumo: qual valor vai em qual campo

groq_api_key
Groq — o cérebro (falas + moderação) e a transcrição do áudio de contexto. Sempre necessário.
elevenlabs_api_key + dj_voice_id
ElevenLabs — a voz da locutora (no serviço padrão). Necessário, a menos que você use a Resemble.
audio.tts.*
A voz que lê os recados de textoElevenLabs ou Resemble. Obrigatória (o programa não inicia sem ela), mesmo que você só receba áudio.
resemble_api_key + resemble_voice_uuid
Resemble — só se você escolher a Resemble como voz (em vez do ElevenLabs).
music_provider + (Eleven Music / musicful_*)
Provedor de música por IA — só no Modo 1. Nos modos de acervo próprio, não é usado.

O mínimo para subir: a chave do Groq, uma voz para a locutora e uma voz para os recados (audio.tts). Música por IA e Resemble são opcionais, conforme o modo e o serviço de voz que você escolher.

📨 A página dos ouvintes

Os recados não saem do programa — eles chegam de uma página pública que é o seu subdomínio (ex.: seunome.postaudio.live). É essa página que você divulga para a audiência. Ninguém precisa instalar nada nem fazer login: a pessoa entra, escreve (ou grava), paga o Pix e manda. O recado entra na fila, e o programa puxa essa fila e toca no ar.

🔗

O endereço que você divulga é o seu subdomínio. O programa se liga a ele pelo source.url (a fila), e o token dos dois lados precisa ser o mesmo — veja o mapa no fim desta seção.

O que o ouvinte faz

  1. Abre a sua página e digita o nome.
  2. Escolhe Escrever ou Gravar — um ou o outro, nunca os dois.
  3. Escrevendo: digita a mensagem. Gravando: toca no microfone e grava a própria voz.
  4. Informa o valor do Pix (com o mínimo já indicado) e clica em Enviar recado.
  5. Aparece um "Recado enviado!" e ele já entra na fila.

O que acontece com cada tipo (ligando com a seção "A voz da locutora"): o texto é narrado pela voz do programa (a audio.tts), no formato "Fulano disse: …"; o áudio toca na voz do próprio ouvinte e é transcrito para você poder ler antes de colocar no ar.

É assim que ela aparece

Abaixo, um exemplo do que o ouvinte vê. O logo, o nome e o estilo seguem a sua marca; o campo de Pix some se você desligar o Pix.

Ao vivo
Rádio Monster FM 123.4
Mande seu recado no ar
Escreva uma mensagem para a gente ler no ar — ou grave um áudio e entre com a sua própria voz. Depois é só mandar.
Seu nome
Como devemos te chamar?
✍️ Escrever
🎙️ Gravar
Mensagem
Ex.: Um salve para a galera da quinta-feira!
Valor do Pix
R$ 0,00
Mínimo R$ 5,00
Enviar recado
postaudio.live® Termo de uso · Política de privacidade
Exemplo do que o ouvinte vê. Logo, nome e cores seguem a sua marca; o campo de Pix some se você desligar o Pix.

O que dá para mudar (e onde)

A aparência e os limites dessa página são controlados por um arquivo de configuração que fica na plataforma (na pasta do seu subdomínio), chamado config/audio_config.json. Os principais ajustes:

brand.contractorName / brand.logoUrl
O nome e o logo que aparecem no topo da página.
pix.min / pix.max
O valor mínimo (que aparece como dica) e o máximo do Pix.
features.pix
Liga/desliga o Pix. Em false, o campo de Pix some e nada de valor é exigido nem enviado.
limits
Limite do nome, do texto e da duração/tamanho do áudio gravado, além dos formatos aceitos.
links.terms / links.privacy
Para onde vão os links de Termo de uso e Política de privacidade no rodapé.
queue.token
O segredo que liga o programa à fila. Tem que ser o mesmo token que vai no source.url do programa.
⚠️

Atenção — são dois arquivos diferentes. Esta configuração da página (audio_config.json) fica na plataforma, na pasta do seu subdomínio — não é o config.json do programa. O programa não controla a aparência da página; ele só puxa a fila dela. Na primeira vez que você acessa o subdomínio, esse arquivo é criado automaticamente com valores padrão, prontos para você editar (marca, Pix mínimo, queue.token).

🎙️

Lembre: a voz que lê os recados de texto não fica aqui — fica no programa (audio.tts). O ouvinte não escolhe a voz; ele só escreve. Quem dá voz ao texto é o programa, com a voz que você configurou.

Qual modo escolher

Existem duas decisões independentes. A primeira: de onde vêm as músicas — a IA cria sozinha, ou a rádio toca o seu acervo. A segunda: quem é a locutora — uma apresentadora de rádio comum, ou um personagem/assistente que você descreve (o "contexto"). Combinando as duas, você tem quatro jeitos:

Músicas por IA · sem contexto

Rádio criativa automática

A IA inventa as músicas (sozinha e a pedido via Pix) e apresenta como uma rádio normal. → Seção 1.

Músicas por IA · com contexto

Rádio temática automática

A IA cria as músicas e a locutora segue um personagem que você define. → Seções 1 + 3.

Seu acervo · sem contexto

Rádio de músicas suas

Toca as suas músicas (de uma pasta) com uma locutora comum. → Seção 2.

Seu acervo · com contexto

Programa temático / assistente

Suas músicas ao fundo e a locutora vira um especialista no assunto que você descreve. → Seções 2 + 3.

💡

O controle de vídeo (Seção 4) é à parte: funciona junto com qualquer um desses quatro modos.

1 Músicas criadas por IA

Aqui a locutora inventa as músicas — tanto sozinha (24h, para nunca ficar sem som) quanto a pedido dos ouvintes que mandam um Pix. Você dá os gêneros e os limites de criação por dia (para controlar o custo), e ela cuida do resto.

config.json · trecho "webradio"
"ai_music": true,
"music_source": "",
"music_dir": "webradio/music",
"music_provider": "elevenlabs",
"genres": ["lo-fi","pop","sertanejo","eletronica","rock","mpb"],
"track_length_seconds": 90,
"vocals": "auto",

"autonomous": true,
"min_ready_tracks": 4,
"autonomous_daily_max": 30,
"renew_every_tracks": 20,

"about_every_minutes": 8,
"talk_every_tracks": 1,
"pix_every_minutes": 12,
"station_id_every_minutes": 20,

"submit_hint": "Acesse postaudio.live, escreva o estilo da música e finalize com um Pix",
"pix_suggested": "R$ 5",
"credit_template": "Essa música foi criada a pedido de {name}. Valeu, {name}!"
ai_music
true liga a criação de músicas por IA. É o que define este modo.
music_source
Precisa ficar vazio (""). Se você apontar uma pasta aqui, a criação por IA é desligada automaticamente (vira o modo da Seção 2).
genres
A lista de estilos que a IA usa na rotação e na criação.
vocals
auto (a IA decide), com (sempre cantada) ou sem (sempre instrumental).
autonomous_daily_max
Teto de músicas que a IA cria por dia — o seu freio de custo. 0 = sem limite (não recomendado).
renew_every_tracks
A cada N músicas tocadas, a IA aposenta a mais antiga e cria uma nova, renovando o repertório. 0 desliga.
about_every_minutes
De quanto em quanto tempo ela comenta que é uma rádio de IA. 0 desliga.
submit_hint / pix_suggested
Como o ouvinte participa e o valor sugerido de Pix que ela cita.
💸

Criar música consome créditos do provedor. Use sempre o autonomous_daily_max para limitar quantas músicas ela inventa por dia — especialmente junto com a renovação, senão o custo dispara.

2 Seu acervo, sem contexto

Este é o modo de rádio comum tocando as suas próprias músicas. Você aponta para uma pasta no computador e a locutora toca essas faixas, anuncia, lê os recados — e nunca diz que as músicas são feitas por IA. Nada é criado por IA aqui.

config.json · trecho "webradio"
"music_source": "C:\\Development\\postaudio.live\\musics\\live",
"ai_music": false,
"context": "",
"context_file": "",
"library_rotation": "shuffle",

"talk_every_tracks": 1,
"pix_every_minutes": 12,
"station_id_every_minutes": 20,
"about_every_minutes": 0,

"submit_hint": "Acesse postaudio.live e mande seu recado com um Pix",
"pix_suggested": "R$ 5"
music_source
A pasta do seu acervo. O programa varre todas as subpastas. É isto que liga este modo.
ai_music
Deixe false. (Apontar o music_source já desliga a IA, mas é bom deixar explícito.)
context / context_file
Ambos vazios — assim a locutora é uma apresentadora de rádio comum (sem personagem).
library_rotation
Como sortear as faixas: weighted (pasta maior toca mais — recomendado), flat (toca o acervo inteiro antes de repetir), even (tempo igual por pasta) ou shuffle (sorteio aleatório, priorizando as que ainda não tocaram; depois sorteia entre todas, sem repetir a última).
talk_every_tracks
A locutora fala a cada N músicas. 1 = fala em toda faixa.
station_id_every_minutes
De quanto em quanto tempo entra a vinheta da estação (a "chamada"). Atenção ao nome exato desta chave.
pix_every_minutes
De quanto em quanto tempo ela explica como mandar recado/Pix.
🎚️

As "chamadas" automáticas (vinheta e Pix) têm valores padrão mesmo se você não escrever nada: vinheta a cada 20 min e Pix a cada 12 min. Só mexa se quiser mudar o ritmo. Para deixar a locutora mais presente, baixe esses números.

3 Com contexto (assistente temático)

O "contexto" é onde você descreve quem a locutora é e o que ela pode falar. Em vez de uma apresentadora genérica, ela vira o personagem que você definir — por exemplo, "uma especialista em energia solar que só responde sobre esse assunto". As músicas continuam tocando (do seu acervo ou da IA); o que muda é a personalidade e o conhecimento dela e como ela responde aos recados.

Opção A — escrever o contexto direto no arquivo

config.json · trecho "webradio"
"music_source": "C:\\Development\\postaudio.live\\musics\\live",
"ai_music": false,

"context": "Você é uma IA especialista em placas solares e energia fotovoltaica. Responda apenas perguntas sobre esse tema, de forma simples e clara. Se a pergunta fugir do assunto, responda: Posso falar somente sobre energia solar.",
"context_max_chars": 5000,

"talk_every_tracks": 1,
"pix_every_minutes": 12,
"station_id_every_minutes": 20

Opção B — usar um arquivo de contexto (texto ou áudio)

Para textos grandes, é mais cômodo deixar o conteúdo num arquivo à parte e só apontar o caminho. O arquivo pode ser texto (.txt, .md, .html) ou até um áudio — neste caso o programa transcreve o áudio sozinho na primeira vez.

config.json · trecho "webradio"
"context_file": "C:\\Development\\postaudio.live\\context\\placasolar.md",
"context_max_chars": 8000
context
O texto que define o personagem e as regras dela. Vazio = locutora comum.
context_file
Caminho de um arquivo de contexto. Tem prioridade sobre o context acima: se preenchido, o conteúdo do arquivo vira o contexto. Aceita texto ou áudio.
context_max_chars
Tamanho máximo do contexto que a IA "enxerga". Padrão 5000. Use 0 para sem limite. Textos maiores que esse número são cortados.
✂️

Se o seu texto for maior que o context_max_chars, a parte que passar é ignorada — e a locutora não saberá responder sobre o que ficou de fora. Se o conteúdo é grande, aumente esse número (ex.: 8000 a 10000). Lembrando: contexto maior deixa cada fala um pouco mais lenta e mais cara, porque ele é usado em toda resposta.

💡

Quando há contexto, a locutora não força papo de música — ela fala do assunto que você definiu. Você pode combinar isto com a Seção 1 (IA criando música) ou com a Seção 2 (seu acervo). O mais comum é seu acervo + contexto.

O console manual: efeitos, tons e músicas

Além da locutora automática, o programa abre um painel no navegador (o "console") onde uma pessoa pode operar a rádio ao vivo: soltar efeitos sonoros, tocar tons rápidos e pôr músicas pra tocar na mão. Ele roda em paralelo à IA — quando você toca algo no console, a locutora cede a vez e volta sozinha depois.

🎛️

O console abre no endereço http://127.0.0.1:8080 (a porta vem de ui.port). É por ali que você dispara tudo desta seção com um clique.

É assim que ele aparece

Esta é a cara do console. Tudo o que aparece aqui é disparado com um clique (ou pelo teclado) e roda em paralelo à locutora — quando você toca algo, a IA cede a vez.

O console do programa: barra da IA no topo, placar da sessão, botão Tocar tudo, grade de efeitos sonoros, tons embutidos, biblioteca de músicas em loop e os efeitos de voz
O console do streamer, aberto em 127.0.0.1:8080.

De cima para baixo:

Barra da IA (topo)
IA NO AR com o ponto verde mostra que a locutora está no ar. Clicar nela ("toque para assumir o microfone") pausa a IA para você assumir; clicar de novo devolve o ar a ela. Só aparece com a webradio ligada.
Placar da sessão
na fila / tocados e, à direita, recados recebidos, total em Pix e o maior Pix. Zera toda vez que você reinicia o programa.
NO AR / FORA DO AR + Tocar tudo
A tarja diz se há um recado tocando agora. Tocar tudo dispara a fila em sequência, respeitando o corte (tempo máximo do recado) e o intervalo entre um e outro.
SONS
O soundboard: as abas são os pacotes (todos, Sons, virais…), com busca, volume e os pads de efeito. O caractere no canto de cada pad é a tecla de atalho.
TONS EMBUTIDOS
Os 10 tons prontos do programa (beep, blip, ding…), sempre disponíveis — os mesmos usados como vinheta das falas.
MÚSICAS
A sua biblioteca: ligue o loop e clique nas faixas para montar uma trilha sobrepondo loops; dá para salvar e recuperar essas montagens. As linhas são as pastas/gêneros.
VOZ
O efeito de voz aplicado ao recado na hora de tocar: normal, grave, agudo, eco, robô ou telefone.

Tons embutidos (vinhetas rápidas)

São 10 sons curtos já prontos no programa, sem precisar baixar nada. Servem como "carimbo" sonoro — tanto nos botões do console quanto como vinheta antes das falas da locutora. Os nomes são:

beepblippopdingbuzzboingrisercoinfanfaresadtrom

Você escolhe quais tons a locutora usa antes de cada tipo de fala — esta parte fica fora do console, no config.json:

config.json · trecho "webradio"
"stinger": "ding",
"stinger_credit": "coin",
"stinger_track": "blip",
"stinger_gain": 0.6
stinger
Tom das vinhetas da estação (identificação, "sobre a rádio", Pix).
stinger_credit
Tom dos momentos de Pix/crédito (pedido pago, recado).
stinger_track
Tom da entrada de músicas.
stinger_gain
Volume da vinheta em relação à voz, de 0 a 1 (padrão 0.6).
qualquer um deles
Use "none" para desligar aquela vinheta, ou "" para usar o tom padrão.

Efeitos sonoros (soundboard)

São os botões de efeito do console — aquelas "zoeiras" e sons temáticos que o operador solta ao vivo. No assistente há um campo para isso (uma entrada por linha); por baixo, ele vira o campo sounds do config.json, e cada item pode ser um link da internet ou um arquivo do seu computador:

config.json · trecho "sounds"
"sounds": [
  "https://www.myinstants.com/media/sounds/vine-boom.mp3",
  "C:\\Development\\postaudio.live\\efeitos\\aplausos.mp3",
  { "url": "https://exemplo.com/tada.mp3", "gain": 0.6 },
  { "path": "C:\\Development\\postaudio.live\\myinstants\\viral", "name": "Virais", "gain": 0.8 }
]
  • Link (URL): o programa baixa e converte na primeira vez (depois fica em cache).
  • Arquivo do PC: aponte o caminho de um arquivo de áudio (mp3, wav, etc.).
  • Com volume próprio: use a forma { "url": "...", "gain": 0.6 }gain vai de 0 a 1 (deixe de fora para volume cheio).
  • Pasta inteira = uma aba: aponte uma pasta com "path" e ela vira um grupo de botões (aba) no console, com todos os áudios de dentro. O "name" é o nome da aba.
🗂️

Sons soltos (links e arquivos avulsos) ficam juntos numa aba chamada "Sons". Cada pasta que você adicionar vira uma aba separada, ótimo pra organizar por tema (memes, aplausos, suspense…). No console você ainda tem um botão para parar todos os efeitos de uma vez.

Músicas do console

O operador também pode tocar músicas na mão, separadas das que a locutora coloca. Elas saem de uma pasta no seu computador, e a organização é simples: cada subpasta vira uma aba, e os arquivos dentro são as faixas.

config.json · trecho "music"
"music": {
  "root": "C:\\Development\\postaudio.live\\musics\\live",
  "cache_dir": "C:\\Development\\postaudio.live\\musics\\cache",
  "volume": 1.0
}
root
A pasta das músicas do console. Cada subpasta vira uma aba; os arquivos são as faixas. Vazio = recurso desligado.
cache_dir
Onde o programa guarda as músicas já convertidas (pra tocar rápido na próxima vez). Pode deixar o padrão.
volume
Volume geral das músicas do console, de 0 a 1 (1.0 = cheio).
▶️

No console, clicar numa música toca; clicar de novo para. Dá pra tocar várias de uma vez e parar todas juntas. A conversão é feita sob demanda (só quando a faixa vai tocar pela primeira vez), então a primeira reprodução pode levar um instante a mais.

💡

Não confunda as três pastas de música: music.root é a do console manual (operador); webradio.music_source é o acervo da locutora automática (Seção 2); e webradio.music_dir é onde a IA salva as músicas que cria (Seção 1). Elas têm finalidades diferentes — mas nada impede que music.root e music_source apontem pra mesma pasta, se você quiser o mesmo acervo nos dois.

4 Controle de vídeo

O programa pode controlar um vídeo em sincronia com a locutora — usando o player VLC ou um vídeo dentro do OBS. Tudo isto fica no bloco video_control. Você pode usar VLC, OBS, ou os dois ao mesmo tempo. Por padrão vem tudo desligado.

📺

Quer que o programa escolha e toque videoclipes sozinho (em vez de só sincronizar um vídeo que você controla)? Isso é a Seção 5 — Rádio de vídeo. Esta seção (4) trata apenas de sincronizar um vídeo já controlado por você.

Três comportamentos que você liga ou desliga

  • Pausar quando a locutora fala (pause_on_speech) — a locutora/recado começa a falar e o vídeo pausa; ao terminar, volta a tocar.
  • Não tocar música com o vídeo (suppress_music) — enquanto o vídeo está rodando, a rádio não toca música (o som é o do vídeo). Quando o vídeo para ou acaba, a música volta sozinha.
  • Repetir o vídeo (loop) — quando o vídeo termina, ele recomeça do início.

Usando o VLC

config.json · bloco "video_control"
"video_control": {
  "vlc_enabled": true,
  "vlc_host": "127.0.0.1",
  "vlc_port": 8081,
  "vlc_password": "minhaSenha",
  "pause_on_speech": true,
  "suppress_music": true,
  "loop": true
}
▶️

Para o VLC aceitar o controle, abra-o uma vez assim (a senha precisa ser a mesma do vlc_password):

como abrir o VLC
vlc --extraintf http --http-host 127.0.0.1 --http-port 8081 --http-password minhaSenha
⚠️

Use a porta 8081 (como no exemplo), e não 8080 — a 8080 é usada pelo próprio painel do programa e dá conflito.

Usando o OBS

config.json · bloco "video_control"
"video_control": {
  "obs_enabled": true,
  "obs_host": "127.0.0.1",
  "obs_port": 4455,
  "obs_password": "senhaDoWebSocket",
  "obs_input": "Video",
  "pause_on_speech": true,
  "suppress_music": true,
  "loop": true
}
  • No OBS, ligue em Ferramentas → Configurações do Servidor WebSocket (porta padrão 4455) e use a senha de lá no obs_password.
  • obs_input precisa ser o nome exato da sua Fonte de Mídia (o vídeo) no OBS.
vlc_enabled / obs_enabled
Ligam cada um. Você pode ligar só um, ou os dois.
pause_on_speech
true = pausa o vídeo enquanto a locutora fala; false = o vídeo continua tocando por baixo da voz.
suppress_music
true = sem música enquanto o vídeo toca (o vídeo é o áudio); volta quando o vídeo para.
loop
true = o vídeo recomeça ao terminar.
obs_input
O nome exato da Fonte de Mídia no OBS que será controlada.
🎬

Para o vídeo voltar a tocar música depois (com suppress_music ligado), pare ou deixe o vídeo acabar — apenas pausar mantém a música em espera (porque pausar pode ser a própria locutora falando).

5 Rádio de vídeo: tocar videoclipes

Aqui a rádio deixa de tocar só som e passa a tocar vídeos: o programa escolhe um videoclipe da sua pasta, manda tocar e, quando ele acaba, volta para um vídeo padrão que fica em repetição (um "stand-by"). Ao abrir o programa, esse vídeo padrão já entra no ar. O som vem do próprio vídeo — a voz da locutora continua entrando por cima, normalmente.

🎬

Não confunda com a Seção 4: lá o programa só sincroniza um vídeo que você controla (pausa quando a locutora fala). Aqui é o programa que escolhe e toca os videoclipes da sua pasta, troca de um para o outro e cai no vídeo padrão entre eles. As duas coisas usam o mesmo player (OBS ou VLC), configurado no bloco video_control — veja a Seção 4 para ligar a conexão.

As três chaves novas

config.json · trecho "webradio"
"media_kind": "video",
"video_source": "C:\\Development\\postaudio.live\\videos",
"default_video": "C:\\Development\\postaudio.live\\videos\\standby.mp4"
media_kind
O que entra na programação: "audio" (padrão — só músicas), "video" (só videoclipes da pasta abaixo) ou "both" (mistura áudios e vídeos na mesma rotação).
video_source
A pasta dos videoclipes. O programa varre todas as subpastas — cada subpasta funciona como um "gênero" na rotação, igual ao acervo de músicas.
default_video
O vídeo padrão (stand-by): toca ao abrir o programa e sempre que um clipe termina, em repetição. Recomenda-se um vídeo curto e sem som (logo, vinheta). Veja o destaque abaixo.
🖥️

Para aparecer vídeo (clipes ou o padrão) é obrigatório ter um player ligado no video_control: OBS (com obs_input) ou VLC. Se você definir vídeo sem nenhum player, o programa não inicia e avisa o motivo. A conexão com o OBS/VLC é a mesma da Seção 4.

De onde vem o som

O áudio do videoclipe é o som do próprio vídeo (tocado pelo OBS/VLC) — o programa não toca uma música por baixo. A voz da locutora continua saindo pelo programa e se mistura ao vídeo. Quando ela fala, o vídeo abaixa o volume (no OBS) ou pausa (no VLC) e volta sozinho ao terminar.

O vídeo padrão vale em qualquer modo

O default_video funciona em qualquer media_kind — inclusive no "audio". Ou seja: dá para ter uma rádio só de áudio com um vídeo fixo de fundo (um visual, um logo animado) enquanto as músicas tocam por cima. Basta definir o default_video e ter um player ligado; o media_kind continua "audio" e só áudios alternam sobre o vídeo parado.

🔇

Use um default_video sem som. Ele só tem o volume abaixado quando a locutora falanão durante a música. Então, se o vídeo padrão tiver áudio, ele vai somar com a música que estiver tocando. Um loop mudo resolve.

Misturando áudio e vídeo ("both")

Com media_kind: "both", a rotação alterna sozinha: quando cai uma música, ela toca e o vídeo padrão fica na tela; quando cai um videoclipe, ele aparece com o próprio som; ao acabar, volta para o padrão. O ouvinte também pode pedir um clipe pelo nome, igual aos pedidos de música. Para equilibrar quanto toca de cada, use o library_rotation (Seção 2): weighted pesa pelo tamanho das pastas; flat toca tudo antes de repetir.

Deixando a janela do vídeo do jeito certo

Por padrão, o VLC redimensiona a janela a cada vídeo (cada clipe tem um tamanho). Para manter estável, abra o VLC em tela cheia (ou trave o tamanho da janela) e esconda o nome do arquivo:

como abrir o VLC (rádio de vídeo)
vlc --extraintf http --http-host 127.0.0.1 --http-port 8081 --http-password minhaSenha --fullscreen --no-video-title-show --no-osd
  • Prefere janela em vez de tela cheia? Troque --fullscreen por --no-qt-video-autoresize e maximize a janela uma vez — o vídeo passa a escalar para dentro dela.
  • No OBS isso não acontece (não há "janela"): a Fonte de Mídia renderiza dentro da cena. Para vídeos de tamanhos diferentes ficarem sempre iguais, clique na fonte com o botão direito → Transformar → Editar transformação → Caixa delimitadora: "Escalar para limites internos".
📺

Cada videoclipe toca uma vez e o vídeo padrão fica em repetição — isso é automático; você não precisa mexer no loop da Seção 4 (ele é ignorado aqui, assim como o pause_on_speech e o suppress_music). E, como nos modos de acervo, a locutora nunca diz que os vídeos são feitos por IA — ela apenas apresenta o que está tocando.

6 Transmitir sem OBS (modo direto)

Por padrão, o programa toca o som num cabo virtual e quem leva tudo para a live é o OBS. Mas existe um segundo modo, em que o próprio programa transmite: ele gera a imagem (um vídeo em repetição, uma imagem fixa ou uma cor de fundo), desenha o letreiro por cima — a faixa com “NO AR”, o texto do recado, o selo de Pix e o placar — e envia direto para a plataforma. Sem OBS, sem cabo virtual, sem placa de som.

🐧

É o modo ideal para servidor (VPS/VDS) com Linux. A rádio roda 24 horas numa máquina alugada, sem tela e sem placa de áudio — basta o programa e o ffmpeg instalado. No Linux: sudo apt install ffmpeg fonts-dejavu-core (a fonte é para o letreiro). No Windows o ffmpeg.exe que já acompanha o programa serve.

Tudo fica num bloco próprio do config.json chamado broadcast. A primeira chave, mode, escolhe o caminho: "obs" (padrão — tudo continua como sempre foi) ou "ffmpeg" (modo direto desta seção).

config.json · trecho "broadcast"
"broadcast": {
  "mode": "ffmpeg",

  "ffmpeg": {
    "rtmp_url": "rtmp://a.rtmp.youtube.com/live2/SUA_CHAVE",

    "video_size": "1280x720",
    "fps": 30,
    "video_bitrate_kbps": 2500,
    "audio_bitrate_kbps": 128,
    "preset": "veryfast",

    "background_video": "",
    "background_image": "C:/radio/fundo.png",
    "background_color": "#101014",

    "mix_video_audio": false,
    "video_audio_volume": 1.0,
    "video_audio_duck": true,

    "overlay_text": true,
    "overlay_style": "band",
    "accent": "#ff4d3d",
    "overlay_font": "",
    "overlay_font_size": 0,
    "overlay_position": "bottom-center",
    "idle_text": "Rádio Monster FM 123.4",
    "show_stats": true,

    "extra_output_args": []
  }
}

O destino: rtmp_url

É o endereço da live mais a chave de transmissão que a plataforma te dá (a mesma chave que você colaria no OBS). Onde pegar a chave nas mais usadas:

YouTube
YouTube Studio → Transmitir ao vivo → copie a chave. Endereço: rtmp://a.rtmp.youtube.com/live2/CHAVE
Twitch
Painel do criador → Configurações → Stream → chave primária. Endereço: rtmp://live.twitch.tv/app/CHAVE
Facebook Live
Meta Live Producer → Software de transmissão. Endereço: rtmps://live-api-s.facebook.com:443/rtmp/CHAVE
Kick
Creator Dashboard → Settings → Stream key (o painel mostra o endereço RTMP junto da chave).
TikTok LIVE
Para contas com acesso ao LIVE Studio, o painel fornece servidor e chave RTMP — cole os dois juntos no campo.
Trovo · Rumble · outros
Qualquer serviço que aceite RTMP funciona — inclusive um servidor seu (nginx-rtmp): rtmp://seu-servidor/live/stream.
🔑

A chave de transmissão é secreta — quem tiver a chave transmite no seu canal. O programa já esconde a chave nos registros (logs), mas não compartilhe o seu config.json com ela dentro.

A imagem da live (o fundo)

background_video
Um vídeo que fica repetindo (loop) como fundo — a opção mais bonita. Por padrão o som dele é ignorado (veja o bloco do som do vídeo logo abaixo).
background_image
Uma imagem fixa (a arte da rádio, por exemplo). Usada se não houver vídeo. Gasta quase nada do computador — ótima para VPS pequena.
background_color
Sem vídeo nem imagem, a live sai com esta cor sólida (formato #rrggbb).

O som do vídeo de fundo (a “cama” musical)

Se o seu vídeo de fundo tem trilha sonora, dá para colocá-la na live como uma cama musical — e ela abaixa sozinha quando a locutora fala (ou quando entra um recado), voltando ao normal no silêncio. É o comportamento de rádio de verdade. O vídeo em si continua rodando na tela; só o som dele cede a vez.

mix_video_audio
true liga a trilha do vídeo na live (exige um background_video com som). Sem a chave, o padrão é false — mas o assistente já liga (com volume baixo) quando você usa um vídeo de fundo.
video_audio_volume
Volume da trilha, de 0.0 a 2.0. O assistente usa 0.1 (vídeo de fundo discreto sob a música da rádio). Se a trilha do vídeo for a música principal — sem a rotação da rádio —, suba para 0.70.9.
video_audio_duck
true (padrão): a trilha abaixa quando a locutora/recado fala e volta sozinha. false: a trilha fica fixa.
🎚

Com a cama do vídeo ligada, o ideal é não usar a rotação de música da rádio ao mesmo tempo — seriam duas trilhas tocando juntas. Para “vídeo institucional com trilha + locutora + recados”, ligue mix_video_audio e deixe a música do programa de fora.

O letreiro (o “overlay” da live)

O letreiro é desenhado pelo próprio programa, em cima do fundo. Quando um recado toca, sobe o selo NO AR com o texto do ouvinte e o valor do Pix; quando nada toca, mostra AO VIVO com o nome da rádio e o placar da sessão (recados e Pix). É a mesma informação do overlay do OBS — só que sem precisar do OBS.

overlay_text
Liga/desliga o letreiro. Padrão: true.
overlay_style
"band" (padrão): faixa de rodapé com fio colorido, ponto pulsando, selo e texto — visual de transmissão. "card": um cartão simples de uma cor só.
accent
A cor de destaque do fio, do ponto e do selo (#rrggbb). Padrão #ff4d3d; use a cor da sua marca.
overlay_font
Caminho de uma fonte .ttf. Vazio = o programa acha uma do sistema sozinho (no Linux, instale fonts-dejavu-core).
overlay_font_size
Tamanho da letra. 0 = automático conforme a resolução.
overlay_position
No estilo band, vale o começo: bottom-… (faixa embaixo) ou top-… (em cima). No estilo card, valem as seis posições (bottom-center, top-left etc.).
idle_text
Frase fixa quando nada está tocando — normalmente o nome da rádio.
show_stats
Mostra o placar (Recados e Pix da sessão) quando a rádio está só na música. Padrão: true.

Qualidade (e o peso no computador)

video_size · fps
Resolução e quadros por segundo. 1280x720 a 30 fps é o ponto de partida; numa VPS pequena, 854x480 e 24 fps aliviam bastante.
video_bitrate_kbps
Qualidade do vídeo. 2500 serve bem para 720p; siga a recomendação da plataforma.
audio_bitrate_kbps
Qualidade do som. 128 é ótimo para voz e música.
preset
Esforço do codificador: veryfast (padrão) equilibra; superfast gasta menos máquina.
extra_output_args
Avançado: parâmetros extras do ffmpeg, se você souber o que está fazendo.
⚙️

Fundo de cor ou imagem quase não gasta processador; vídeo de fundo é o que mais pesa. Uma VPS de 2 vCPUs dá conta de 720p30 com folga usando imagem de fundo. No modo direto, o campo audio.playback_device é ignorado (não há placa de som envolvida) e o console continua em http://127.0.0.1:8080 — numa VPS, acesse por túnel SSH: ssh -L 8080:127.0.0.1:8080 usuario@servidor.

Testar sem transmitir de verdade

Antes de apontar para o YouTube, dá para ensaiar sem plataforma nenhuma — só trocando o destino:

  • Gravar num arquivo"rtmp_url": "teste.flv". Rode um ou dois minutos, feche o programa e assista ao arquivo. Use .flv ou .ts (um .mp4 interrompido no meio não abre).
  • Assistir ao vivo no próprio computador"rtmp_url": "tcp://127.0.0.1:9999" e, antes de abrir o programa, rode num terminal: ffplay -fflags nobuffer -f mpegts "tcp://127.0.0.1:9999?listen". A live abre na janela do ffplay.

Quando estiver tudo certo, é só trocar o rtmp_url pelo endereço real — nada mais muda. Se a transmissão cair (internet, plataforma), o programa religa sozinho, insistindo a cada poucos segundos até voltar.

⚠️

O que não entra no modo direto: a Seção 5 (Rádio de vídeo — videoclipes) e a Seção 4 (Controle de vídeo) dependem do OBS/VLC e continuam exclusivas do modo OBS. No modo direto, use a rádio com acervo de áudio (media_kind: "audio") e deixe o video_control desligado. Todo o resto — locutora, recados, Pix, soundboard, músicas, letreiro — funciona igual.

$ Reduzir custos sem perder funcionalidades

O programa usa serviços pagos por uso. Saber onde está o gasto ajuda a economizar sem desligar recursos. Abaixo, os custos em ordem — do maior para o menor — e os ajustes que cortam despesa mantendo tudo funcionando.

Onde está o gasto

1 · Criar música por IA
De longe o mais caro — mas só existe com ai_music: true. Se você usa o seu acervo (Seção 2), isto já está desligado e não custa nada.
2 · Vozes (TTS)
Cobradas por caractere falado (ElevenLabs/Resemble). São duas: a da locutora e a que lê os recados de texto (audio.tts). No modo de acervo próprio, é o seu maior gasto — e o que faz a cota acabar.
3 · Texto / cérebro
Cobrado por uso (Groq), mas barato mesmo com muitas falas. Pouco impacto.
4 · Transcrição do contexto
Só roda uma vez e fica em cache. Desprezível.

Economizando na voz (o caso mais comum)

Existem dois tipos de fala, e eles custam de formas diferentes:

  • Falas genéricas (vinheta, Pix, "sobre a rádio", comentários de faixa) já são gravadas uma vez e reaproveitadas do disco (o "cache de falas"). O gasto escondido aqui é a renovação: por padrão a IA gera uma fala nova de tempos em tempos, o tempo todo.
  • Falas personalizadas (a apresentação e a reação a cada recado) nunca são gravadas — são feitas na hora, toda vez. É o gasto que cresce com o uso, e é a parte mais valiosa.
💡

Detalhe importante: com o cache ligado e a renovação desligada, a frequência das chamadas não afeta o custo — uma vinheta tocada do disco 100 vezes custa zero a mais. Ou seja, você pode deixar a locutora bem presente sem gastar mais. Os intervalos (station_id_every_minutes, pix_every_minutes) são só ritmo, não dinheiro.

Os ajustes que economizam sem tirar nenhum recurso:

talk_cache_renew_every
Ponha 0: o repertório de falas genéricas é gerado uma vez e reproduzido para sempre. Acaba o gasto contínuo em segundo plano. Única "perda": menos variedade nas vinhetas.
elevenlabs_tts_model
Troque por um modelo mais barato (família Flash, ex.: eleven_flash_v2_5). Reduz o preço por caractere das falas da locutora (inclusive as reações aos recados), com pouca diferença de qualidade. Confirme as tarifas atuais no painel do ElevenLabs.
max_dj_talk_seconds
Corta o tamanho das falas. Baixar de 18 para ~14 reduz os caracteres de cada recado.
talk_cache_size
Menos variantes = menos gravações iniciais. Impacto pequeno (é gasto de uma vez só), mas ajuda.
bright_model
Deixe vazio (""): evita usar um cérebro mais caro para algumas falas.
🗣️

A voz que lê os recados de texto tem o seu próprio modelo, separado do da locutora: para baratear também essa parte, ponha um modelo Flash em audio.tts.elevenlabs_model (ex.: eleven_flash_v2_5).

Configuração de "economia máxima" (modo acervo próprio)

config.json · trecho "webradio"
"talk_cache": true,
"talk_cache_renew_every": 0,
"talk_cache_size": 5,
"elevenlabs_tts_model": "eleven_flash_v2_5",
"max_dj_talk_seconds": 14,
"bright_model": ""
🛑

O que NÃO cortar: não reduza a frequência nem desligue os recados para economizar — eles são a parte que dá valor à rádio. Para baratear os recados sem removê-los, use o modelo de voz mais barato e o corte de duração acima. O resto (vinhetas) já fica quase de graça com o cache.

🎵

Se você usa criação de música por IA (Seção 1), aí o maior gasto é gerar faixas. Os freios são autonomous_daily_max (teto por dia — o principal), renew_every_tracks (a renovação cria faixas novas o tempo todo — aumente bastante ou ponha 0), min_ready_tracks (buffer menor) e track_length_seconds (faixas mais curtas).

Como aplicar mudanças

Pelo assistente (mais fácil): rode voxlive --setup, ajuste o que quiser e clique em “Salvar e abrir painel”. O programa se reinicia sozinho com o novo ajuste e já abre o painel.

Pelo painel: o botão “Reiniciar” (ou abrir http://127.0.0.1:8080/api/restart) reinicia o programa relendo a configuração — útil depois de editar o config.json à mão.

Editando à mão:

  • Abra o config.json com um editor de texto (Bloco de Notas ou VS Code).
  • Altere os valores que quiser e salve o arquivo.
  • Reinicie o programa — as mudanças só valem depois disso. Trocas de destino RTMP, dispositivos e resolução exigem reiniciar (o botão “Reiniciar” faz isso).
  • Os nomes das configurações diferenciam maiúsculas de minúsculas e precisam ser escritos exatamente como nos exemplos.
💡

O run.bat é a forma recomendada de rodar: quando o programa pede reinício (botão “Reiniciar” ou o assistente), ele relança sozinho — você não precisa fechar e abrir nada. Sair normal (Ctrl+C / fechar a janela) encerra de vez.

Erros comuns

  • Vírgula sobrando ou faltando. No JSON, cada item é separado por vírgula — mas o último item de um bloco não leva vírgula antes do }. Esse é o erro nº 1: se houver, o programa nem inicia.
  • Aspas "curvas". Ao copiar de e-mail/Word, as aspas podem virar “curvas” e quebram o arquivo. Use sempre aspas retas (").
  • Nome de configuração errado. Ex.: o certo é station_id_every_minutes (e não "station_every_mins"). Nome errado é simplesmente ignorado.
  • A locutora parou de responder recados. Geralmente são os créditos do serviço de voz (da locutora e/ou da narração dos recados — ElevenLabs ou Resemble) que acabaram. As falas curtas já gravadas continuam, mas as respostas personalizadas param. Os recados de texto não se perdem: ficam aguardando e são narrados assim que os créditos voltam. Recarregue os créditos.
  • O programa não inicia e reclama de audio.tts. A voz que lê os recados de texto é obrigatória: preencha o trecho "audio""tts" com o provedor e a voz (ElevenLabs: chave + voice_id; Resemble: token + resemble_voice_uuid). Veja "A voz da locutora".
  • O som some quando chega uma notificação (WhatsApp/Discord/Teams). É o Windows abaixando o áudio dos outros programas quando um app de mensagens fica ativo (o “ducking de Comunicações”) — não é defeito do programa. Vá em Som → aba Comunicações → “Não fazer nada” (rode mmsys.cpl) e feche o app de mensagens pela bandeja (clique com o botão direito no ícone → Sair; só fechar a janela não basta — ele continua ativo no fundo). Alternativa à prova de tudo: mande a saída do programa para um cabo de áudio virtual e capture esse cabo no OBS — por ser um dispositivo separado, o Windows não o abaixa.

Na dúvida se o arquivo está válido, cole o conteúdo em um validador de JSON on-line (por exemplo, jsonlint.com) — ele aponta a linha exata de qualquer erro antes de você reiniciar o programa.