O que faz
Existem dois fluxos de coapresentador: um assistente contínuo de voz em cohost.html, e ações manuais do dock que enviam falas aprovadas para cohost-overlay.html.
Controles do dock
Quando a sobreposição de palco estiver conectada, clique com o botão direito em uma mensagem de chat no dock e escolha Coapresentador. O dock pode ler a mensagem, pedir uma resposta à IA ou criar um rascunho de brincadeira leve.
Sobreposição de palco de IA
A sobreposição mostra o avatar, o balão de fala e, opcionalmente, áudio de síntese de voz do navegador. Esta é a Fonte de navegador que você coloca no OBS.
Bot de chat privado
Responder e Brincadeira leve usam o provedor LLM configurado pela ponte do Bot de chat privado. Ler não exige IA.
Coapresentador multimodal
cohost.html se conecta ao feed de chat ao vivo do SSN quando aberto com o mesmo session. Seu modo padrão de somente contexto permite que a IA se lembre de mensagens recentes dos espectadores e as comente quando o streamer perguntar.
Configuração do coapresentador pelo botão direito no dock
- Abra o dock de Chat da transmissão com sua sessão:
dock.html?session=YOUR_SESSION_ID. - Adicione a sobreposição de palco de IA ao OBS:
cohost-overlay.html?session=YOUR_SESSION_ID. Adicione&ttsapenas para um fluxo de resposta em texto. - Para respostas de IA, configure um provedor LLM no popup. Para um teste rápido, escolha LLM hospedado de teste do SSN, que usa
llm.socialstream.ninja. - Ative Bots de chat e serviços de IA > Bot de chat - Interface privada > Ativar opção de bot de chat privado.
- Clique com o botão direito em uma mensagem do dock e selecione Coapresentador. O menu fica oculto até que a sobreposição de palco seja detectada. As linhas de mensagens do dock ainda não oferecem esse menu de contexto pelo teclado; usuários de teclado podem usar o campo de mensagem digitada ou os controles de voz em
cohost.html.
cohost.html página de controle: escolha câmera e microfone, selecione um provedor de IA, defina instruções de sistema e observe o painel de status do Chat ao vivo.Dica: Use o mesmo session para o dock e a sobreposição do coapresentador. &tts se aplica a fluxos de sobreposição de texto. Quando o áudio nativo do controlador está ativo, o SSN suprime a síntese de voz duplicada da sobreposição; &forcetts substitui essa proteção intencionalmente.
Opção simples de IA
llm.socialstream.ninja está disponível em LLM hospedado de teste do SSN como uma opção simples e gratuita para testar enquanto o serviço de teste estiver disponível.
- Abrir Bots de chat e serviços de IA > Configurar provedor de serviço LLM.
- Selecione LLM hospedado de teste do SSN (experimental).
- Deixe endpoint, token e modelo vazios para a configuração padrão de teste.
- Para uso prolongado, use seu próprio token ou um provedor local se o serviço de teste estiver desativado ou limitado.
Suporte a conversa por voz
- OpenAI Realtime: Transmite o microfone selecionado em
cohost.htmldiretamente para a OpenAI em uma conversa nativa de fala para fala. A conversa de voz e o contexto do chat ao vivo ficam na mesma sessão do coapresentador. - SSN Desktop: Usa Whisper local com o microfone selecionado em
cohost.html. O primeiro uso baixa cerca de 42 MB; transcrições posteriores são executadas offline. - Link para Chrome / extensão do Chrome: A extensão abre a página hospedada do coapresentador em uma aba do Chrome. O OpenAI Realtime usa WebRTC com um segredo de cliente de curta duração; provedores de respostas em texto usam Reconhecimento de fala do Chrome e podem exigir internet.
- Outros navegadores: O reconhecimento de fala não é garantido. Chat digitado do coapresentador, entrada de chat ao vivo, entrada de câmera/tela e respostas do LLM configurado ainda podem funcionar sem reconhecimento de fala.
Com OpenAI Realtime, Diagnóstico deve mostrar Ouvindo (OpenAI WebRTC). Com Desktop Whisper, deve mostrar Ouvindo (Desktop Whisper) e depois o texto reconhecido em Ouvido.
Privacidade: o microfone selecionado, quaisquer quadros de câmera/tela explicitamente selecionados e as mensagens de espectadores compartilhadas pelo modo escolhido de Chat ao vivo são enviados a esse provedor de IA. Mensagens dos espectadores são tratadas como contexto não confiável e não podem autorizar ferramentas do coapresentador. Abra o link gerado do controlador pelo popup e mantenha-o privado; sua autorização privada expira após 12 horas, fica restrita à sessão atual do SSN e é removida da barra de endereços depois que a página carrega.
Configuração do OpenAI Realtime
- No popup do SSN, escolha ChatGPT API, adicione sua chave de API do projeto OpenAI e use Testar bot de chat selecionado.
- Abra o link gerado
cohost.html?session=YOUR_SESSION_IDpelo popup. Sua autorização privada e temporária de coapresentador permite Realtime sem ativar a opção separada de Bot de chat privado. - Selecione OpenAI Realtime. A chave padrão fica no serviço de segundo plano da extensão/aplicativo do SSN; a página do coapresentador recebe apenas um segredo de cliente Realtime de curta duração.
- Escolha explicitamente o microfone em que você fala, mantenha Resposta em áudio selecionado e pressione Iniciar coapresentador.
- Opcional: deixe Fonte de vídeo em Sem vídeo (o padrão), ou escolha explicitamente Compartilhamento de tela ou uma câmera. A OpenAI recebe uma imagem atual a cada solicitação direta falada ou digitada, em vez de vídeo contínuo; isso pode aumentar o custo de API e a latência.
- Deixe Chat ao vivo em Somente contexto - responder quando solicitado. Pergunte “O que o chat está dizendo?” para que a mesma IA de voz comente as mensagens recentes dos espectadores.
- Capture o áudio do navegador/aplicativo do coapresentador no OBS. A voz nativa da OpenAI é reproduzida somente em
cohost.html;cohost-overlay.htmlrecebe avatar e texto, não o mesmo fluxo de áudio. Quando houver suporte, escolha um cabo virtual em Saída do coapresentador para encaminhamento isolado no OBS. - Mantenha visível o balão de fala da sobreposição de palco ou forneça legendas para que a resposta da IA não esteja disponível apenas por áudio.
Isso usa o faturamento da API da OpenAI e cria uma conversa Realtime do SSN por WebRTC, separada de chatgpt.com. As respostas são limitadas a 512 tokens de saída; Diagnóstico mostra o uso acumulado de tokens e a latência medida até a primeira saída. A OpenAI corta automaticamente o áudio ainda não reproduzido quando o streamer interrompe. O SSN retém no máximo 20 mensagens recentes de chat por até 90 segundos, incluindo contexto de apoio pago, membros, moderadores, eventos e canal de origem, e depois remove esse contexto temporário. O SSN verifica sessões silenciosas, reconecta transportes que falharam e renova as sessões antes do limite de 60 minutos. Uma sessão recuperada reaplica as instruções de sistema e configurações de desempenho, mas começa sem a conversa de voz anterior.
Velocidade, qualidade e custo da OpenAI
- Modelo: Mini normalmente é mais rápido e custa menos. Qualidade completa tem mais capacidade e custa mais.
- Esforço de raciocínio: Mínimo ou Baixo normalmente reduz o atraso da resposta e o uso faturado de saída. Alto ou Muito alto pode melhorar respostas complexas, mas responder mais devagar e custar mais. As alterações se aplicam durante a conexão.
- Velocidade de alternância de fala: Rápido espera até cerca de 2 segundos pelo fim de uma ideia; Equilibrado, cerca de 4 segundos; Paciente, cerca de 8 segundos. Rápido parece mais ágil, mas pode interromper uma pausa natural.
- Diagnóstico: Latência informa o tempo entre o fim da fala e o primeiro texto ou áudio e separa o atraso do modelo quando possível. As condições de rede e a carga do provedor ainda podem variar entre solicitações semelhantes.
Controles opcionais de transmissão
O OpenAI Realtime suporta as ferramentas de Spotify, cenas do OBS e chat em destaque abaixo. O LLM configurado no SSN atualmente suporta apenas Spotify; outros provedores de coapresentador ainda não oferecem essas ferramentas.
- No popup do SSN, ative somente as ferramentas desejadas do coapresentador: Spotify, cenas do OBS ou chat em destaque.
- Para OBS, insira os nomes exatos das cenas permitidas como uma lista separada por vírgulas e mantenha
actions.htmlconectado ao OBS, ou use uma Fonte de navegador do OBS com Permissões completas. - Ligado
cohost.html, abra Controles de transmissão do coapresentador e habilite as mesmas ferramentas para esse controlador. - Peça diretamente, por exemplo, “mude para BRB”, “destaque a última mensagem” ou “limpe o chat em destaque”. Mensagens de espectadores não podem autorizar ferramentas, e apenas uma ferramenta que altera a transmissão é executada por solicitação direta do streamer.
O acesso às ferramentas usa uma lista de permissões, não acesso geral à API. O OBS só pode selecionar cenas nomeadas nas configurações do SSN. Solicitações de destaque usam uma mensagem recente de chat capturada e exigem o Dock de chat da transmissão; as respostas das ferramentas informam a entrega, não comprovam que o OBS ou a sobreposição concluiu a ação.
Como as páginas se comunicam
O dock e a sobreposição usam a ponte de sessão existente do Social Stream. As mensagens são enviadas como payloads overlayNinja e direcionadas por rótulo.
Ler no coapresentador: o dock envia a mensagem de chat selecionada diretamente para cohost-overlay.html.
Responder / Brincadeira leve: o dock envia uma solicitação de chatbot privado ao serviço de segundo plano do SSN, mostra o rascunho da IA no dock e só o envia à sobreposição depois que o streamer clica em Falar.
{
"action": "cohostOverlay",
"target": "cohost-overlay",
"meta": {
"command": "say",
"text": "The line the avatar should say",
"speak": true,
"emotion": "happy"
}
}
Ações disponíveis
| Ação | Exige | Resultado |
|---|---|---|
| Ler no coapresentador | Conectado cohost-overlay.html |
Lê a mensagem de chat selecionada na sobreposição. |
| Responder | Bot de chat privado + LLM configurado ou LLM hospedado de teste | Cria um rascunho de resposta curta para aprovação do streamer. |
| Brincadeira leve | Bot de chat privado + LLM configurado ou LLM hospedado de teste | Cria um rascunho curto, divertido e adequado para todos os públicos para aprovação do streamer. |
| Falar | Rascunho do painel de aprovação | Envia o texto aprovado à sobreposição de palco de IA. |
| Copiar | Rascunho do painel de aprovação | Copia o rascunho sem enviá-lo à sobreposição. |
Status e solução de problemas
- Se o menu Coapresentador não aparecer, a sobreposição do coapresentador não foi detectada na mesma sessão.
- Se Responder ou Brincadeira leve estiver desativado, a ponte do SSN ou o Bot de chat privado não está disponível.
- A opção de sobreposição do bot de chat principal é opcional e não ativa as ações de coapresentador pelo botão direito no dock.
- Se
cohost.htmlnão estiver vendo o chat, confirme que a URL tem o mesmosessiondo popup e se Chat ao vivo está definido como Contexto, Perguntas ou Todas. - Somente contexto atualmente compartilha o chat com a IA apenas para OpenAI Realtime. Outros provedores monitoram o feed sem injetá-lo no modelo.
- Silenciar microfone interrompe o áudio enviado ao coapresentador. Silenciar voz do coapresentador, o controle de volume, o seletor de dispositivo de saída e Parar de falar controlam a reprodução. Silenciar áudio compartilhado do sistema é separado e aparece para provedores com suporte a tela.
- Se uma ferramenta de controle de transmissão estiver indisponível, ative-a no popup do SSN e em Controles de transmissão do coapresentador. O OBS também precisa de pelo menos um nome exato de cena na lista de permissões.
- Use Testar sobreposição para enviar uma linha de teste visível e inofensiva e confirme que ela aparece na Sobreposição de palco de IA no OBS.
- Se o coapresentador souber do chat, mas ficar quieto, isso é esperado em Somente contexto: pergunte o que o chat está dizendo. Perguntas ou Todas falam respostas automáticas pela página do coapresentador; não publicam essas respostas no chat do YouTube, Twitch ou Kick.
- Se o Desktop mostrar Ouvindo (Desktop Whisper) mas nunca preencher Ouvido, confirme que o microfone selecionado não está silenciado e deixe o primeiro download do modelo terminar.
- Se o Chrome nunca preencher Ouvido, permita o uso do microfone, confira o microfone padrão do sistema operacional, confirme o acesso à internet e verifique se o Reconhecimento de fala do Chrome está disponível.
- Se o texto do OpenAI Realtime aparecer, mas não houver áudio, verifique Resposta em áudio, as permissões de áudio do navegador e a captura de áudio do navegador/aplicativo no OBS. Use
&ttsapenas para o fluxo separado de sobreposição de texto. - Se as respostas do OpenAI Realtime estiverem lentas, tente Mini, raciocínio Baixo e alternância de fala Rápida e compare a linha Latência em Diagnóstico. Raciocínio mais alto e alternância Paciente trocam intencionalmente velocidade por profundidade ou pausas maiores.
- Se o OpenAI Realtime desconectar, deixe o coapresentador em execução enquanto ele tenta novamente. Diagnóstico identifica a falha de dados, par, provedor ou verificação de integridade. Uma sessão recuperada mantém as instruções de sistema e configurações de desempenho selecionadas, mas não consegue recuperar a conversa de voz anterior.
- Se uma solicitação de Responder, Brincadeira leve ou LLM configurado no SSN expirar, confira se o Social Stream está ligado, a sessão corresponde, o Bot de chat privado está ativado e o provedor LLM selecionado está acessível. O OpenAI Realtime não exige o Bot de chat privado.
- Se o Local Gemma não conseguir baixar os arquivos do modelo do servidor padrão de recursos, defina esse servidor como sua própria pasta espelhada do Gemma.
- Se a IA hospedada de teste parar de responder, ela pode estar desativada ou limitada; mude para seu próprio token, Ollama ou API personalizada.
- Se várias sobreposições estiverem abertas, verifique se o rótulo da sobreposição corresponde ao destino do dock. O rótulo padrão é
cohost-overlay.
Parâmetros de URL úteis
session=YOUR_SESSION_ID- necessário para que o dock e a sobreposição compartilhem uma sala.ttsouspeak=1- permite que a sobreposição fale usando a síntese de voz do navegador.forcetts- permite síntese de voz na sobreposição mesmo quando o controlador do coapresentador já está reproduzindo áudio; isso cria intencionalmente uma segunda voz.label=cohost-overlay- define o rótulo de destino da sobreposição.name=NinjaBot- define o nome de exibição na sobreposição.avatar=https://...- usa uma imagem de avatar personalizada.position=bottom-right- controla a posição no palco.scale=1.2- altera a escala da sobreposição.status- mostra texto de conexão/status na sobreposição.
Notas de design
- Nos fluxos de texto manual/do dock, a sobreposição é a fonte visual e, opcionalmente, de síntese de voz. Para a voz nativa da OpenAI, capture
cohost.htmlseparadamente; a sobreposição de palco não reproduz o mesmo áudio WebRTC. - O dock é a superfície de controle, então a aprovação do streamer fica fora da transmissão.
- As respostas geradas não são faladas automaticamente; o streamer precisa aprová-las primeiro.
- Detalhes não padronizados de comandos ficam dentro de
meta, mantendo os payloads previsíveis para sobreposições e automações.