뇌와 몸의 경계 정리
블로킹 I/O와 의존성 문제를 기록하고, 프롬프트·데이터·학습 순서를 다시 정리했습니다.
대화, 음성, 표정과 기억을 이어 붙인 로컬 AI 캐릭터 시스템.
말을 생성하는 것만으로는 캐릭터가 되지 않습니다. 음성 인식, 대화 생성, 감정 정보, 합성 음성, 아바타의 표정이 함께 움직이도록 연결해온 프로젝트입니다.
INSIDE THE WORK / 결과물과 과정
한 문장의 답변이 목소리와 표정이 되기까지. 입력, 추론, 음성, 아바타를 따로 만들고 연결한 과정입니다.
근거 자료 · 개발 기록 · 로컬 Python 코드
개발 기록의 태그 분리 규칙을 예시 문장으로 체험합니다.
TTS에 전달할 발화 텍스트
표정 제어에 전달할 감정
설명용 체험 · 문장은 예시이며 실제 모델·음성 서버를 호출하지 않습니다.
각 단계를 선택해 실제 구조와 연결된 자료를 확인하세요.
VAD와 Whisper로 소리를 텍스트로 바꾸고, 호출어와 명령어로 응답할 발화를 고릅니다. 모든 잡담에 반응하던 문제에서 선택적 청취로 방향을 바꿨습니다.
진행 기록: Smart Addressing / Strict ModeFROM THE SOURCE
outputs = self.model.generate(
input_ids=inputs,
max_new_tokens=100,
eos_token_id=terminators,
repetition_penalty=1.2,
temperature=0.6, # SFT는 창의성보다 안정성을 위해 온도를 낮춤
top_p=0.9,
do_sample=True,
pad_token_id=self.tokenizer.eos_token_id
)로컬에 남아 있는 SFT 복원 시점의 추론 코드 발췌입니다. 응답 길이·반복 패널티·온도를 제한합니다. 이후 EXAONE 전환은 별도의 개발 기록으로 구분합니다.
DEVELOPMENT NOTES
블로킹 I/O와 의존성 문제를 기록하고, 프롬프트·데이터·학습 순서를 다시 정리했습니다.
선호도 학습 이후 품질 문제가 생겨 SFT 어댑터로 돌아간 서버 스냅샷을 확인했습니다.
문장이 나뉠 때 표정이 초기화되던 문제를 직전 감정 유지 방식으로 다뤘습니다.
진행 기록에 EXAONE 3.5 전환, GPU 자원 재배치, TTS 감정 태그 분리 작업이 남아 있습니다.
Llama·Qwen 계열 SFT·DPO 실험과 EXAONE 기반 로컬 추론 전환 기록
GPT-SoVITS 음성 합성과 감정별 참조 오디오 선택, TTS에서 감정 태그 분리
VTube Studio WebSocket 연동, 표정 전송, 오디오 라우팅을 통한 립싱크
화자·호출어 처리, 턴 테이킹, 자율 발화와 시간 정보를 고려한 기억 설계
치지직과 Discord의 비동기 클라이언트 연결 및 오류 대응
감정 태그를 소리로 읽는 문제를 막기 위해 발화 텍스트와 감정 정보를 분리합니다. 표정은 VTS로, 텍스트는 음성 합성기로 전달합니다.
DPO 이후 한국어 품질 저하로 SFT로 돌아간 기록, 감정 고착, 연결 끊김과 재접속 처리를 함께 남겼습니다. 모든 시도를 성과로 포장하지 않습니다.
2026년 2월까지의 진행 기록과 현재 저장소 구조를 바탕으로 정리했습니다. 기록상의 지연 시간·인식률을 재현 검증된 성능으로 사용하지 않으며, 완전 무인 방송이나 인간 같은 의식의 구현을 주장하지 않습니다.
원본 문서·코드의 작업 범위를 기준으로 정리했습니다. 비공개 원본과 개인 정보는 첨부하지 않았습니다.