功能说明
联合主持有两种工作流程:持续对话的语音伙伴,位于 cohost.html,以及将已批准文本发送到以下目标的手动停靠面板操作: cohost-overlay.html.
停靠面板控制
舞台叠加层连接后,右键点击停靠面板中的聊天消息,选择 联合主持。停靠面板可以朗读消息、向 AI 提问,或生成轻度调侃草稿。
AI 舞台叠加层
叠加层显示头像、对话气泡,并可选择使用浏览器文字转语音。把这个浏览器来源放进 OBS 即可。
私人聊天机器人
回答和轻度调侃通过私人聊天机器人桥接调用已配置的 LLM 服务。朗读不需要 AI。
多模态联合主持
cohost.html 通过相同的以下参数打开时,会连接到 SSN 实时聊天流: session。默认的仅上下文模式让 AI 记住近期观众消息,在主播提问时进行讨论。
设置停靠面板右键联合主持功能
- 使用你的会话打开 Streaming Chat 停靠面板:
dock.html?session=YOUR_SESSION_ID. - 将 AI 舞台叠加层添加到 OBS:
cohost-overlay.html?session=YOUR_SESSION_ID。添加&tts,仅用于文本回复流程。 - 要使用 AI 回答,请在弹出菜单中配置 LLM 服务。快速测试时可选择 SSN 托管试用 LLM,它使用
llm.socialstream.ninja. - 启用 聊天机器人和 AI 服务 > 聊天机器人-私人界面 > 启用私人聊天机器人选项.
- 右键点击停靠面板中的消息,选择 联合主持。检测到舞台叠加层后才会显示菜单。停靠面板的消息行暂不支持用键盘打开此上下文菜单;键盘用户可使用以下页面上的文字输入框或语音控件:
cohost.html.
cohost.html 控制页面:选择摄像头和麦克风,选择 AI 服务,设置系统指令,并查看 Live Chat 状态面板。提示: 使用相同的 session 值,用于停靠面板和联合主持叠加层。 &tts 适用于文本叠加层流程。控制器原生音频启用时,SSN 会抑制重复的叠加层 TTS; &forcetts 会有意覆盖这项保护。
简单 AI 选项
llm.socialstream.ninja 可通过以下选项使用: SSN 托管试用 LLM ,在试用服务可用期间可作为简单免费的测试选项。
- 打开 聊天机器人和 AI 服务 > 配置 LLM 服务提供商.
- 选择 SSN 托管试用 LLM(实验性).
- 默认试用配置中,将端点、令牌和模型留空。
- 长期使用时,如果试用服务被关闭或限流,请使用自己的令牌或本地服务。
语音对话支持
- OpenAI Realtime: 将以下页面中选中的麦克风音频传输
cohost.html直接发送给 OpenAI,构成一次原生语音到语音对话。语音对话与实时聊天上下文保留在同一个联合主持会话中。 - SSN 桌面端: 使用本地 Whisper,麦克风选择位于
cohost.html。首次使用会下载约 42 MB,之后转录可离线运行。 - Chrome/Chrome 扩展链接: 扩展在 Chrome 标签页中打开托管的联合主持页面。OpenAI Realtime 通过短期客户端密钥使用 WebRTC;文本回复服务使用 Chrome 语音识别,可能需要联网。
- 其他浏览器: 不保证语音识别一定可用。即使没有语音识别,联合主持文字聊天、实时聊天输入、摄像头或屏幕输入,以及已配置的 LLM 回复仍可工作。
使用 OpenAI Realtime 时,诊断面板应显示 正在聆听(OpenAI WebRTC)。使用桌面 Whisper 时,应显示 正在聆听(桌面 Whisper) ,然后在以下位置显示识别文本: 识别内容.
隐私: 所选麦克风、明确选择的摄像头或屏幕帧,以及所选 Live Chat 模式共享的观众消息,都会发送给该 AI 服务。观众消息被视为不可信上下文,不能授权联合主持工具操作。请从弹出菜单打开生成的联合主持控制器链接,并妥善保密;其中的私有授权凭证在 12 小时后过期,仅限当前 SSN 会话使用,页面加载后会从地址栏中移除。
OpenAI Realtime 设置
- 在 SSN 弹出菜单中选择 ChatGPT API,添加 OpenAI 项目 API 密钥,并使用 测试所选聊天机器人.
- 打开生成的
cohost.html?session=YOUR_SESSION_ID链接,来自弹出菜单。其私有且会过期的联合主持授权凭证可授权 Realtime,无需启用独立的私人聊天机器人选项。 - 选择 OpenAI Realtime。标准密钥保留在 SSN 扩展或桌面应用的后台;联合主持页面仅获得有效期很短的 Realtime 客户端密钥。
- 明确选择你说话时使用的麦克风,保持 音频回复 保持选中,然后按 启动联合主持.
- 可选:将视频来源保持为 无视频 (默认),或明确选择 屏幕共享 或摄像头。OpenAI 在每次直接语音或文字请求时接收一张当前图像,而非连续视频;这可能增加 API 费用和延迟。
- 将 Live Chat 保持为 仅上下文 — 提问时才回答。问它“聊天里在说什么?”,就能让同一个语音 AI 讨论近期观众消息。
- 在 OBS 中捕获联合主持浏览器或应用的音频。OpenAI 原生语音仅从以下页面播放:
cohost.html;cohost-overlay.html接收头像和文本,不接收同一条音频流。如果支持,请在以下位置选择虚拟音频线: 联合主持输出 ,以便在 OBS 中单独路由音频。 - 保持舞台叠加层的对话气泡可见,或提供字幕,让 AI 回复不只通过音频传达。
此功能使用 OpenAI API 计费,并通过 WebRTC 建立一个 SSN Realtime 对话,独立于 chatgpt.com。回复最多输出 512 个 token;诊断面板显示累计 token 用量和测得的首次输出延迟。主播打断时,OpenAI 会自动截断尚未播放的音频。SSN 最多保留 20 条近期聊天消息,最长 90 秒,包括付费支持、会员、管理员、事件和来源频道的上下文,随后删除这些临时内容。SSN 会检查静默会话、重连失败的传输,并在 60 分钟上限前切换到新会话。恢复后的会话会重新应用系统指令和性能设置,但不包含之前的语音对话。
OpenAI 的速度、质量与费用
- 模型: Mini 通常更快且费用更低。Full quality 能力更强,费用也更高。
- 推理强度: Minimal 或 Low 通常可降低回复延迟和计费输出用量。High 或 Extra high 可改善复杂问题的回答,但可能更慢且更贵。连接期间更改会即时生效。
- 轮流发言速度: Fast 最多等待约 2 秒来判断一句话是否结束;Balanced 约 4 秒;Patient 约 8 秒。Fast 响应更快,但可能打断自然停顿。
- 诊断: 延迟显示从一轮发言结束到首次出现文本或音频的时间,并在可行时单独标出模型延迟。即使请求相似,网络状况和服务负载仍可能不同。
可选直播控制
OpenAI Realtime 支持下列 Spotify、OBS 场景和精选聊天工具。SSN Configured LLM 目前仅支持 Spotify;其他联合主持服务暂未开放这些工具。
- 在 SSN 弹出菜单中,仅启用你需要的联合主持工具:Spotify、OBS 场景或精选聊天。
- 对于 OBS,请输入准确的允许场景名称,以逗号分隔,并保持
actions.html连接到 OBS,或使用具备完整权限的 OBS 浏览器来源。 - 开启
cohost.html,打开 联合主持直播控制 ,并为该控制器启用相同的工具。 - 直接发出请求,例如“切换到 BRB”“展示最后一条消息”或“清空精选聊天”。观众消息不能授权工具操作,每次主播直接请求最多运行一个改变直播状态的工具。
工具访问受允许列表限制,并非通用 API 访问。OBS 只能选择 SSN 设置中列出的场景。精选展示请求使用近期捕获的聊天消息,并要求 Streaming Chat 停靠面板已打开;工具回复报告的是命令送达,不代表 OBS 或叠加层已完成操作。
页面如何通信
停靠面板与叠加层使用现有的 Social Stream 会话桥接。消息以以下形式发送: overlayNinja 消息体,并按标签指定目标。
由联合主持朗读: 停靠面板将选中的聊天消息直接发送到 cohost-overlay.html.
回答/轻度调侃: 停靠面板向 SSN 后台服务发送私人聊天机器人请求,在面板中显示 AI 草稿,只有主播点击朗读后才发送给叠加层。
{
"action": "cohostOverlay",
"target": "cohost-overlay",
"meta": {
"command": "say",
"text": "The line the avatar should say",
"speak": true,
"emotion": "happy"
}
}
可用操作
| 操作 | 需要 | 结果 |
|---|---|---|
| 由联合主持朗读 | 已连接 cohost-overlay.html |
在叠加层中朗读选中的聊天消息。 |
| 回答 | 私人聊天机器人 + 已配置的 LLM 或托管试用 LLM | 创建简短回答草稿,供主播批准。 |
| 轻度调侃 | 私人聊天机器人 + 已配置的 LLM 或托管试用 LLM | 创建简短、轻松幽默、内容温和的草稿,供主播批准。 |
| 朗读 | 审批面板草稿 | 将已批准的文本发送到 AI 舞台叠加层。 |
| 复制 | 审批面板草稿 | 复制草稿,不发送到叠加层。 |
状态与故障排查
- 如果缺少联合主持菜单,说明在同一会话中没有检测到联合主持叠加层。
- 如果回答或轻度调侃不可用,说明 SSN 桥接或私人聊天机器人不可用。
- 主聊天机器人叠加层开关是可选项,不会启用停靠面板右键联合主持操作。
- 如果
cohost.html看不到聊天时,请确认 URL 中的以下参数一致:session,与弹出菜单保持一致,并确认 Live Chat 设置为 Context、Questions 或 All。 - 仅上下文 目前仅在使用 OpenAI Realtime 时将聊天内容共享给 AI。其他服务会监听聊天流,但不会把它输入模型。
- 静音麦克风 停止向联合主持发送音频。 静音联合主持语音、音量滑块、输出设备选择器,以及 停止朗读 控制播放。 静音共享的系统音频 是独立选项,仅对支持屏幕输入的服务显示。
- 如果直播控制工具不可用,请同时在 SSN 弹出菜单和以下位置启用: 联合主持直播控制。OBS 还需要在允许列表中至少包含一个准确的场景名称。
- 使用 测试叠加层 发送一条无害的可见测试文本,然后确认它出现在 OBS 的 AI 舞台叠加层中。
- 如果联合主持知道聊天内容却不说话,这是以下模式的正常行为: 仅上下文:问它聊天在说什么。Questions 或 All 模式会从联合主持页面自动朗读回复,但不会把回复发布到 YouTube、Twitch 或 Kick 聊天。
- 如果桌面端显示 正在聆听(桌面 Whisper) ,但始终没有填入 识别内容,确认选中的麦克风没有静音,并等待首次模型下载完成。
- 如果 Chrome 始终没有填入 识别内容,允许使用麦克风,检查操作系统的默认麦克风,确认能访问互联网,并验证 Chrome 语音识别是否可用。
- 如果 OpenAI Realtime 显示文本但没有播放音频,请检查 音频回复、浏览器音频权限,以及 OBS 对浏览器或应用音频的捕获。使用
&tts,仅用于独立的文本叠加层流程。 - 如果 OpenAI Realtime 回复较慢,尝试 Mini、Low 推理强度和 Fast 轮流发言速度,再比较诊断面板中的延迟。较高推理强度和 Patient 轮流发言速度会有意牺牲速度,以换取更深入的回答或更长的停顿。
- 如果 OpenAI Realtime 断开连接,请让联合主持保持运行并等待重试。诊断面板会区分数据、对等连接、服务提供商或健康检查故障。恢复后的会话保留选定的系统指令和性能设置,但无法恢复之前的语音对话。
- 如果回答、轻度调侃或 SSN Configured LLM 请求超时,请检查 Social Stream 已开启、会话一致、私人聊天机器人已启用,且所选 LLM 服务可访问。OpenAI Realtime 不需要私人聊天机器人。
- 如果 Local Gemma 无法从默认资源主机下载模型文件,请将资源主机设为你自己镜像的 Gemma 文件夹。
- 如果托管试用 AI 停止响应,可能已被禁用或限流;请改用自己的令牌、Ollama 或自定义 API。
- 如果打开了多个叠加层,请确认叠加层标签与停靠面板目标一致。默认标签为
cohost-overlay.
常用 URL 参数
session=YOUR_SESSION_ID— 停靠面板与叠加层加入同一个房间所必需。tts或speak=1— 让叠加层使用浏览器 TTS 朗读。forcetts— 即使联合主持控制器已在播放音频,也允许叠加层使用 TTS;这会有意产生第二路声音。label=cohost-overlay— 设置叠加层的目标标签。name=NinjaBot— 设置叠加层上的显示名称。avatar=https://...— 使用自定义头像图片。position=bottom-right— 控制舞台位置。scale=1.2— 缩放叠加层。status— 在叠加层上显示连接和状态文本。
设计说明
- 在停靠面板或手动文本流程中,叠加层负责画面显示和可选的 TTS 播放。对于 OpenAI 原生语音,请单独捕获
cohost.html的音频;舞台叠加层不会重播同一条 WebRTC 音频流。 - 停靠面板是操作控制界面,因此主播的审批过程不会出现在直播画面中。
- 生成的回复不会自动朗读,必须先由主播批准。
- 非标准命令细节放在
meta,使叠加层和自动化收到的数据保持一致。