기능
공동 진행자에는 두 가지 작업 흐름이 있습니다. 연속 음성 대화 상대는 다음에서 사용합니다: cohost.html및 승인한 문장을 다음으로 보내는 수동 도크 동작: cohost-overlay.html.
도크 제어
무대 오버레이가 연결되면 도크의 채팅 메시지를 마우스 오른쪽 버튼으로 클릭하고 다음을 선택하세요: 공동 진행자(Co-host). 도크에서 메시지를 읽거나, AI 답변을 요청하거나, 가벼운 놀림 답변 초안을 만들 수 있습니다.
AI 무대 오버레이
오버레이에는 아바타, 말풍선, 선택적 브라우저 음성 읽기 오디오가 표시됩니다. OBS에 추가할 브라우저 소스는 이 오버레이입니다.
비공개 챗봇
Answer와 Light Roast는 비공개 채팅 봇 브리지를 통해 설정된 LLM 제공자를 사용합니다. Read는 AI가 필요하지 않습니다.
멀티모달 공동 진행자
cohost.html 은 같은 값으로 열면 SSN 실시간 채팅 피드에 연결됩니다: session. 기본 문맥 전용 모드에서는 AI가 최근 시청자 메시지를 기억하고 진행자가 물었을 때 그 내용을 이야기합니다.
도크 오른쪽 클릭 공동 진행자 설정
- 세션을 사용해 스트리밍 채팅 도크를 여세요:
dock.html?session=YOUR_SESSION_ID. - AI 무대 오버레이를 OBS에 추가합니다:
cohost-overlay.html?session=YOUR_SESSION_ID. 다음을 추가합니다:&tts는 텍스트 응답 작업 흐름에만 사용하세요. - AI 답변을 사용하려면 팝업에서 LLM 제공자를 설정하세요. 빠른 테스트에는 다음을 선택합니다: SSN Hosted Trial LLM이며 다음을 사용합니다:
llm.socialstream.ninja. - 활성화 Chat Bots and AI services > Chat Bot - Private Interface > Enable private chat bot option.
- 도크 메시지를 마우스 오른쪽 버튼으로 클릭하고 다음을 선택하세요: 공동 진행자(Co-host). 무대 오버레이가 감지되기 전에는 메뉴가 숨겨져 있습니다. 도크 메시지 행의 이 메뉴는 아직 키보드로 접근할 수 없습니다. 키보드 사용자는 다음 페이지의 텍스트 입력란이나 음성 제어를 사용할 수 있습니다:
cohost.html.
cohost.html 제어 페이지에서 카메라와 마이크를 고르고 AI 제공자를 선택한 다음 시스템 지침을 설정하고 실시간 채팅 상태 패널을 확인하세요.팁: 동일한 값을 사용하세요: session 값을 도크와 공동 진행자 오버레이에서 동일하게 사용하세요. &tts 은 텍스트 오버레이 작업 흐름에 적용됩니다. 컨트롤러의 기본 오디오가 활성화되면 SSN은 중복 오버레이 음성 읽기를 억제합니다. &forcetts 는 이 보호 기능을 명시적으로 무시합니다.
간단한 AI 옵션
llm.socialstream.ninja 은 다음에서 사용할 수 있습니다: SSN Hosted Trial LLM 를 체험판 제공 기간에 간단한 무료 테스트 옵션으로 사용하세요.
- 열기 Chat Bots and AI services > Configure LLM Service Provider.
- 선택: SSN Hosted Trial LLM(실험적).
- 기본 체험 설정을 사용하려면 엔드포인트, 토큰, 모델을 비워 두세요.
- 장기간 사용 중 체험 서비스가 비활성화되거나 사용량 제한에 걸리면 자신의 토큰이나 로컬 제공자를 사용하세요.
음성 대화 지원
- OpenAI Realtime: 다음에서 선택한 마이크를 스트리밍합니다:
cohost.html을 OpenAI에 직접 보내 하나의 기본 음성 간 대화를 진행합니다. 음성 대화와 실시간 채팅 맥락은 같은 공동 진행자 세션 안에 유지됩니다. - SSN 데스크톱: 다음에서 선택한 마이크로 로컬 Whisper를 사용합니다:
cohost.html. 처음 사용할 때 약 42 MB를 다운로드하며 이후 음성 인식은 오프라인으로 실행됩니다. - Chrome / Chrome 확장 프로그램 링크: 확장 프로그램은 Chrome 탭에서 호스팅된 공동 진행자 페이지를 엽니다. OpenAI Realtime은 수명이 짧은 클라이언트 비밀 키와 함께 WebRTC를 사용합니다. 텍스트 응답 제공자는 Chrome 음성 인식을 사용하며 인터넷 연결이 필요할 수 있습니다.
- 다른 브라우저: 음성 인식 작동은 보장되지 않습니다. 음성 인식 없이도 입력한 공동 진행자 채팅, 실시간 채팅 입력, 카메라/화면 입력, 설정된 LLM의 응답은 작동할 수 있습니다.
OpenAI Realtime을 사용하면 진단에 다음이 표시되어야 합니다: 듣는 중(OpenAI WebRTC). Desktop Whisper를 사용하면 다음이 표시되어야 합니다: 듣는 중(Desktop Whisper) 그리고 인식된 텍스트는 다음 아래에 표시됩니다: 인식한 내용(Heard).
개인정보 보호: 선택한 마이크, 명시적으로 선택한 카메라/화면 프레임, 선택한 실시간 채팅 모드에서 공유하는 시청자 메시지는 해당 AI 제공자에게 전송됩니다. 시청자 메시지는 신뢰할 수 없는 맥락으로 취급되며 공동 진행자 도구 사용을 승인할 수 없습니다. 팝업에서 생성된 공동 진행자 컨트롤러 링크를 열고 비공개로 유지하세요. 이 비공개 권한은 12시간 후 만료되며 현재 SSN 세션으로 범위가 제한되고, 페이지가 로드되면 주소 표시줄에서 제거됩니다.
OpenAI Realtime 설정
- SSN 팝업에서 다음을 선택합니다: ChatGPT API를 선택하고 OpenAI 프로젝트 API 키를 추가한 뒤 다음을 사용합니다: 선택한 챗봇 테스트.
- 생성된 링크를 여세요:
cohost.html?session=YOUR_SESSION_ID링크를 팝업에서 여세요. 이 링크의 비공개 공동 진행자 권한은 만료 시간이 있으며, 별도의 비공개 챗봇 옵션을 활성화하지 않아도 Realtime 사용을 승인합니다. - 선택: OpenAI Realtime. 일반 API 키는 SSN 확장 프로그램·데스크톱 앱의 백그라운드에 보관되며, 공동 진행자 페이지에는 수명이 짧은 Realtime 클라이언트 시크릿만 전달됩니다.
- 사용할 마이크를 명시적으로 선택하고 다음 설정을 유지합니다: 음성 응답(Audio Response) 을 선택한 상태에서 다음을 누르세요: 공동 진행자 시작.
- 선택 사항: 영상 소스를 다음으로 두세요: 영상 없음 (기본값)을 사용하거나 다음을 명시적으로 선택합니다: 화면 공유 또는 카메라를 선택하세요. OpenAI는 연속 영상 대신 직접 말하거나 입력한 요청마다 현재 이미지 한 장을 받습니다. 이로 인해 API 비용과 지연 시간이 늘어날 수 있습니다.
- Live Chat을 다음으로 설정해 둡니다: 문맥만 — 요청받으면 답변. ‘채팅에서 무슨 이야기를 하고 있어?’라고 물으면 같은 음성 AI가 최근 시청자 메시지를 설명해 줍니다.
- 공동 진행자 브라우저·앱의 오디오를 OBS에서 캡처하세요. OpenAI 기본 음성은 다음에서만 재생됩니다:
cohost.html;cohost-overlay.html는 아바타와 텍스트를 받으며 같은 오디오 스트림을 받지는 않습니다. 지원되는 경우 다음에서 가상 케이블을 선택하세요: 공동 진행자 출력 를 사용해 OBS 오디오를 별도로 라우팅하세요. - AI 답변을 소리로만 제공하지 않도록 무대 오버레이의 말풍선을 표시하거나 자막을 제공하세요.
이 기능은 OpenAI API 요금을 사용하고 WebRTC를 통해 하나의 SSN Realtime 대화를 생성하며, 다음과는 별개입니다: chatgpt.com. 답변은 출력 토큰 512개로 제한됩니다. Diagnostics에서 누적 토큰 사용량과 첫 출력까지 측정된 지연 시간을 확인할 수 있습니다. 진행자가 말을 끊으면 OpenAI가 아직 재생되지 않은 오디오를 자동으로 잘라냅니다. SSN은 유료 후원, 회원, 관리자, 이벤트, 소스 채널 문맥을 포함한 최근 채팅 메시지를 최대 20개, 90초까지 보관한 뒤 임시 문맥을 지웁니다. SSN은 조용한 세션을 점검하고 연결 실패 시 다시 연결하며, 60분 제한 전에 새 세션으로 전환합니다. 복구된 세션에는 시스템 지침과 성능 설정을 다시 적용하지만 이전 음성 대화는 이어받지 않습니다.
OpenAI 속도, 품질, 비용
- 모델: Mini는 일반적으로 더 빠르고 비용이 적습니다. Full quality는 기능이 더 뛰어나지만 비용이 더 듭니다.
- 추론 노력: Minimal이나 Low는 일반적으로 응답 지연과 과금되는 출력 사용량을 줄입니다. High나 Extra high는 복잡한 답변을 개선할 수 있지만 더 느리고 비쌀 수 있습니다. 연결된 상태에서도 변경 사항이 적용됩니다.
- 발화 전환 속도: Fast는 생각이 끝나기를 최대 약 2초, Balanced는 약 4초, Patient는 약 8초 기다립니다. Fast는 더 빠르게 반응하지만 자연스러운 말 사이의 쉼을 끊을 수 있습니다.
- 진단(Diagnostics): Latency는 대화 차례가 끝난 시점부터 첫 텍스트나 오디오가 나올 때까지의 시간을 표시하며, 가능하면 모델 지연을 별도로 구분합니다. 비슷한 요청이어도 네트워크 상태와 제공자 부하에 따라 달라질 수 있습니다.
선택적 방송 제어
OpenAI Realtime은 아래의 Spotify, OBS 장면, 채팅 강조 표시 도구를 지원합니다. SSN Configured LLM은 현재 Spotify만 지원하며, 다른 공동 진행자 제공자는 아직 이 도구들을 제공하지 않습니다.
- SSN 팝업에서 원하는 공동 진행자 도구만 활성화하세요. Spotify, OBS 장면, 선택한 채팅 표시 중에서 고릅니다.
- OBS에는 허용할 장면 이름을 정확히 입력하고 쉼표로 구분합니다. 다음을 유지하세요:
actions.html를 OBS에 연결하거나 전체 권한을 가진 OBS 브라우저 소스를 사용하세요. - 켜짐
cohost.html를 선택하고 다음을 엽니다: 공동 진행자의 방송 제어 그리고 해당 컨트롤러에서 같은 도구들을 사용 준비 상태로 설정하세요. - ‘BRB로 전환해 줘’, ‘마지막 메시지를 띄워 줘’, ‘선택한 채팅을 지워 줘’처럼 직접 요청하세요. 시청자 메시지로는 도구 사용을 승인할 수 없으며, 진행자의 직접 요청 한 번당 방송을 변경하는 도구는 하나만 실행됩니다.
도구 접근은 허용 목록으로 제한되며 일반 API 접근 권한이 아닙니다. OBS는 SSN 설정에 지정된 장면만 선택할 수 있습니다. 채팅 강조 표시 요청은 최근 캡처된 채팅 메시지를 사용하며 스트리밍 채팅 도크가 필요합니다. 도구 응답은 전달 여부를 알려줄 뿐, OBS나 오버레이가 동작을 완료했다는 증거는 아닙니다.
페이지 간 통신 방식
도크와 오버레이는 기존 Social Stream 세션 브리지를 사용합니다. 메시지는 다음 형식으로 전송됩니다: overlayNinja 페이로드로 전송되며 라벨로 대상이 지정됩니다.
공동 진행자로 읽기: 도크는 선택한 채팅 메시지를 다음으로 직접 보냅니다: cohost-overlay.html.
답변 / 가벼운 놀림(Answer / Light Roast): 도크는 SSN 백그라운드 서비스에 비공개 챗봇 요청을 보내고 AI 초안을 도크에 표시한 뒤, 방송자가 말하기를 클릭해야 오버레이로 전송합니다.
{
"action": "cohostOverlay",
"target": "cohost-overlay",
"meta": {
"command": "say",
"text": "The line the avatar should say",
"speak": true,
"emotion": "happy"
}
}
사용 가능한 동작
| 동작 | 필요 항목: | 결과 |
|---|---|---|
| 공동 진행자로 읽기 | 연결됨(Connected) cohost-overlay.html |
선택한 채팅 메시지를 오버레이에서 읽습니다. |
| 답변(Answer) | 비공개 챗봇 + 설정된 LLM 또는 호스팅 체험 LLM | 진행자가 승인할 짧은 답변 초안을 만듭니다. |
| 가벼운 놀림(Light Roast) | 비공개 챗봇 + 설정된 LLM 또는 호스팅 체험 LLM | 진행자가 승인할 짧고 장난스러우며 온 가족이 볼 수 있는 초안을 만듭니다. |
| 말하기 | 승인 패널의 초안 | 승인한 텍스트를 AI 무대 오버레이로 보냅니다. |
| 복사 | 승인 패널의 초안 | 오버레이에 보내지 않고 초안을 복사합니다. |
상태 및 문제 해결
- Co-host 메뉴가 없으면 같은 세션에서 공동 진행자 오버레이가 감지되지 않은 것입니다.
- Answer나 Light Roast가 비활성화되어 있다면 SSN 브리지 또는 비공개 채팅 봇을 사용할 수 없는 상태입니다.
- 기본 챗봇 오버레이 스위치는 선택 사항이며 도크의 마우스 오른쪽 버튼 공동 진행자 동작을 활성화하지 않습니다.
- 다음 경우:
cohost.html에 채팅이 표시되지 않으면 URL에 같은 값이 있는지 확인하세요:session이 팝업과 같은지, 실시간 채팅이 Context, Questions 또는 All로 설정되어 있는지 확인하세요. - 문맥만(Context only) 은 현재 OpenAI Realtime을 사용할 때만 채팅을 AI와 공유합니다. 다른 제공자는 피드를 모니터링하지만 모델에 삽입하지는 않습니다.
- 마이크 음소거 은 공동 진행자에게 보내는 오디오를 중지합니다. 공동 진행자 음성 음소거, 음량 슬라이더, 출력 장치 선택기, 다음 항목: 말하기 중지 로 재생을 제어합니다. 공유 시스템 오디오 음소거 은 별도 항목이며 화면을 지원하는 제공자에서 표시됩니다.
- 방송 제어 도구를 사용할 수 없다면 SSN 팝업과 다음 두 곳에서 활성화하세요: 공동 진행자의 방송 제어. OBS는 허용 목록에 정확한 장면 이름이 최소 하나 있어야 합니다.
- 사용: 오버레이 테스트 를 사용해 무해한 테스트 문구를 표시하고 OBS의 AI 무대 오버레이에 나타나는지 확인하세요.
- 공동 진행자가 채팅 내용을 알지만 말하지 않는다면 다음 모드에서는 정상입니다: 문맥만(Context only): 채팅 내용을 물어보세요. Questions나 All 모드는 공동 진행자 페이지에서 자동 답변을 음성으로 재생하며, YouTube·Twitch·Kick 채팅에 게시하지는 않습니다.
- 데스크톱 앱에 다음이 표시되면: 듣는 중(Desktop Whisper) 하지만 다음 값은 채우지 않습니다: 인식한 내용(Heard)을 확인하고 선택한 마이크가 음소거되지 않았는지 확인한 뒤 첫 모델 다운로드가 끝날 때까지 기다리세요.
- Chrome에서 다음 항목이 채워지지 않으면: 인식한 내용(Heard)을 확인하고 마이크 권한을 허용하세요. 운영체제의 기본 마이크와 인터넷 연결을 확인하고 Chrome 음성 인식을 사용할 수 있는지 확인합니다.
- OpenAI Realtime의 텍스트는 나타나지만 소리가 나지 않으면 다음을 확인합니다: 음성 응답(Audio Response), 브라우저 오디오 권한, OBS의 브라우저·앱 오디오 캡처를 확인하세요. 다음을 사용합니다:
&tts는 별도의 텍스트 오버레이 작업 흐름에만 사용하세요. - OpenAI Realtime 답변이 느리면 Mini, Low 추론, Fast 대화 전환을 사용해 보고 Diagnostics의 Latency 항목을 비교하세요. 더 높은 추론 수준과 Patient 대화 전환은 속도 대신 깊이 있는 답변이나 긴 쉼을 선택하는 설정입니다.
- OpenAI Realtime 연결이 끊기면 재시도하는 동안 공동 진행자를 계속 실행하세요. Diagnostics에서 데이터, 피어, 제공자, 상태 확인 중 무엇이 실패했는지 알 수 있습니다. 복구된 세션은 선택한 시스템 지침과 성능 설정을 유지하지만 이전 음성 대화는 복구하지 못합니다.
- Answer, Light Roast, SSN Configured LLM 요청이 시간 초과되면 Social Stream이 켜져 있는지, 세션이 같은지, 비공개 채팅 봇이 활성화되어 있는지, 선택한 LLM 제공자에 접근할 수 있는지 확인하세요. OpenAI Realtime에는 비공개 채팅 봇이 필요하지 않습니다.
- Local Gemma가 기본 리소스 호스트에서 모델 파일을 다운로드하지 못하면, 리소스 호스트를 직접 미러링한 Gemma 폴더로 설정하세요.
- 호스팅 체험 AI가 응답하지 않으면 서비스가 비활성화되었거나 사용량 제한에 걸렸을 수 있습니다. 자신의 토큰, Ollama, Custom 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에 넣어 오버레이와 자동화에서 일관되게 처리할 수 있도록 합니다.