연결과 설정
WebRTC 재생 화면에 연결하고, 아바타·음성·세션을 관리하며 로컬과 원격 접속의 차이를 이해합니다.
현재 환경은 같은 Mac에서 사용하는 로컬 WebRTC 서버입니다. 문서 사이트는 4321 포트, VisionAI 서버는 8010 포트를 사용합니다. 두 서버는 각각 실행합니다.
접속 주소
| 화면 | 로컬 주소 | 역할 |
|---|---|---|
| 영상 재생 | index-en.html | 연결, 텍스트·음성 입력, 녹화 |
| 아바타 생성 | avatar-en.html | 영상 제출과 작업 확인 |
| 관리 화면 | admin-en.html | 활성 세션과 설정 확인 |
| 음성 관리 | tts/index-en.html | 음성 관리 UI, 엔진별 구성 필요 |
127.0.0.1은 페이지를 여는 컴퓨터 자체를 의미합니다. 다른 컴퓨터에서 이 주소를 열면 이 Mac에 접속하는 것이 아닙니다.
연결 필드
- Avatar ID:
data/avatars/아래 폴더 이름입니다. 새 인물은person_camera_20260917을 사용합니다. - Ref Audio: 현재 Edge TTS에서는 음성 ID입니다. 남성 음성은
ko-KR-InJoonNeural입니다. - Ref Text: 참조 음성의 문장입니다. Edge TTS에서는 비워두어도 됩니다.
- Connect: WebRTC 연결을 만들고 새로운
sessionid를 받습니다. - Disconnect: 연결과 서버의 아바타 세션을 해제합니다.
인물·음성을 바꿀 때는 Disconnect 후 재접속합니다. Text Driver의 Echo는 문장을 그대로 읽고, Chat은 별도 LLM 설정을 사용합니다.
연결 순서
브라우저에서 음성·영상 수신용 WebRTC offer를 만들고, POST /offer로 서버에 제출합니다. 서버가 반환한 answer를 브라우저에 적용하면 영상과 음성 트랙을 받습니다.
- 서버 실행과 모델 준비
- 브라우저의 SDP offer 생성 및 ICE 후보 수집
/offer로 offer와avatar,refaudio,reftext전달- answer 적용과
sessionid저장 - 영상·음성 재생
/human또는/humanaudio로 해당 세션 구동
텍스트 API만 호출해도 WebRTC 화면이 자동으로 생성되지는 않습니다. 먼저 재생 세션을 연결해야 합니다. 서버의 정상 응답과 브라우저의 실제 영상 재생도 각각 확인하세요.
현재 Mac 기본값
| 옵션 | 현재 값 | 의미 |
|---|---|---|
model |
wav2lip |
실행 모델 |
batch_size |
2 |
립싱크 추론 배치 |
fps |
25 |
현재 구현에서 사용하는 영상 프레임 속도 |
transport |
webrtc |
브라우저 수신 |
max_session |
1 |
한 번에 연결 가능한 세션 수 |
listenhost |
127.0.0.1 |
이 Mac에서만 접속 |
listenport |
8010 |
HTTP 서버 포트 |
stun |
빈 문자열 | 로컬 테스트에서 STUN 비활성화 |
기본 파일의 인물은 공식 여성 샘플, 음성은 SunHi입니다. 재생 화면에서 입력한 인물·음성이 새 세션의 값을 덮어씁니다. 아래 설정 생성기는 새로 만든 남성 아바타를 기본 선택으로 제공합니다.
세션 해제와 로컬 수정
현재 로컬 버전에는 연결 문제를 해결하기 위해 아래 사항을 추가했습니다.
--listenhost: 서버가 바인딩할 주소를 선택합니다.- 빈 STUN 처리: 로컬에서 외부 STUN 없이 연결할 수 있습니다.
POST /disconnect:sessionid에 해당하는 연결과 세션을 해제합니다.- 기본 중국어·영어 재생 페이지의 Disconnect, 새로고침·닫기 처리: 서버에 세션 해제를 요청합니다.
이 수정은 현재 작업 폴더의 코드에 적용되어 있습니다. 새로운 GitHub 복제본에 /disconnect가 있다고 가정하지 마세요. 페이지 닫기 알림은 브라우저와 네트워크 상태에 따라 전달이 실패할 수 있어, 사용 후 Disconnect를 누르는 것이 좋습니다.
다른 컴퓨터와 원격 접속
현재의 127.0.0.1 바인딩은 다른 장비의 연결을 받지 않습니다. LAN 접속을 구성할 때는 서버를 외부 인터페이스에 바인딩하고 서버의 LAN IP로 접속해야 합니다. HTTP 포트뿐 아니라 WebRTC 미디어의 연결 경로와 방화벽도 함께 확인합니다.
인터넷 원격 접속은 NAT, STUN/TURN, HTTPS와 접근 제어를 별도로 구성해야 합니다. 웹페이지가 열리는 것만으로 미디어가 연결되지는 않습니다. 문서의 로컬 설정 생성기는 원격 배포 설정을 만들지 않습니다.
참고: 공식 접속 안내, 로컬 server/rtc_manager.py, config-mac.yaml.
설정 파일 만들기
현재 Mac에서 사용하는 Wav2Lip + Edge TTS 설정입니다. 아바타와 음성을 선택하면 YAML이 바뀝니다.
model: wav2lip
avatar_id: person_camera_20260917
batch_size: 2
fps: 25
tts: edgetts
REF_FILE: ko-KR-InJoonNeural
transport: webrtc
max_session: 1
listenhost: 127.0.0.1
listenport: 8010
stun: ""생성한 내용을 config-mac.yaml에 저장하고 서버를 재시작하면 기본값에 적용됩니다. 실행 중인 연결의 인물·음성만 바꿀 때는 재접속하면 됩니다.