AI 기반 음성 채팅
DanceXR는 2026.5 릴리스에서 도입된 전용 로컬 AI 백엔드 DanceXR Operator를 통해 더 완성도 높은 로컬 AI 채팅 워크플로를 지원합니다. Operator는 게임과 함께 로컬 서버로 실행되며, 외부 온라인 서비스에 의존하지 않고 AI 대화, 롤플레이, 캐릭터 음성 기능의 기반을 제공합니다.
DanceXR에서 최신 AI 채팅 경험을 원한다면, 현재 권장 구성은 Operator입니다.
주요 기능
- DanceXR Operator를 전용 로컬 AI 백엔드로 권장
- 장면 맥락, 기억, 멀티턴 기록을 활용하는 장기 롤플레이형 AI 채팅
- AI가 생성한 메시지를 음성으로 변환하는 TTS 지원
- 캐릭터가 말할 때 얼굴을 자동으로 애니메이션하는 내장 립싱크
- 음성을 텍스트로 변환해 AI에 보내는 내장 음성 인식
- 각 캐릭터에 다른 말투를 줄 수 있는 다국어 및 다중 음성 지원
제한 사항
- 일부 음성 기능은 플랫폼과 백엔드 구성에 따라 달라집니다. 음성 출력이 불가능한 플랫폼에서도 AI 응답은 텍스트로 표시할 수 있습니다.
AI 서비스
DanceXR는 이제 로컬 AI 채팅 백엔드에 집중하고 있습니다. 권장 옵션은 DanceXR Operator이며, 필요하다면 다른 수동 로컬 백엔드도 사용할 수 있습니다.
DanceXR Operator
DanceXR Operator는 DanceXR 전용 로컬 AI 백엔드입니다. 게임과 함께 로컬 서버로 실행되며, 음성 합성과 대규모 언어 모델 채팅을 하나의 통합 API 뒤에 묶어 하나의 로컬 서비스에서 AI 대화, 롤플레이, 캐릭터 음성 기능을 제공합니다.
Operator는 2026.5 릴리스에서 도입된 새로운 AI 채팅 스택의 핵심입니다. 사용자의 게이밍 PC에서 직접 모델 관리와 음성 파이프라인을 로컬로 처리하며, 더 길고 장면 맥락에 맞는 캐릭터 상호작용을 안정적으로 지원합니다.
장점:
- DanceXR 전용으로 설계됨
- 사용자의 하드웨어에서 로컬 실행됨
- 하나의 백엔드로 AI 채팅, 롤플레이, 캐릭터 음성을 모두 지원
- 장면 인식과 지속성이 필요한 멀티턴 상호작용에 더 적합함
단점:
- DanceXR 폴더 옆에 로컬 설치가 필요함
- 성능은 하드웨어와 선택한 모델에 따라 달라짐
설정:
- DanceXR 폴더 옆에 Operator를 설치합니다. 설치 방법은 DanceXR Operator 기능 페이지를 참고하세요.
- DanceXR에서 AI Chat을 활성화하고, 사용 가능한 경우 Operator를 백엔드로 선택합니다.
- 권장 폴더 구조에 설치하면 Operator는 DanceXR와 함께 자동으로 시작할 수 있으며, 모델 및 TTS 관리를 위한 로컬 웹 인터페이스를 제공합니다.
2026.5 AI 채팅 개선 사항
최신 AI 채팅 스택은 특히 Operator 사용 시 효과가 큰 몇 가지 개선을 포함합니다.
- 환경 인식: 캐릭터가 시간, 조명, 무대 상태 같은 장면 정보를 더 일관되게 활용할 수 있습니다.
- 기억과 지속성: 멀티턴 기록, 의도 추적, 세션 지속성, 메모리 압축이 대화를 더 자연스럽게 이어 줍니다.
- 향상된 상호작용 흐름: 프롬프트 처리, 화자 전환, 시작 동작, 상태 표시가 장시간 세션에 맞게 개선되었습니다.
- 개선된 TTS 동작: 음성 품질, 언어 지원, 폴백 동작이 모두 향상되었습니다.
로컬에서 LLM 실행 (LM Studio, OobaBooga, Ollama)
컴퓨터가 충분히 강력하다면 LLM을 로컬에서 실행할 수도 있습니다. 예를 들어 최신 Llama3 8b는 롤플레이에 충분할 것입니다. OobaBooga, LM Studio 및 Ollama를 테스트했으며 DanceXR과 잘 작동합니다.
직접 세밀하게 구성하고 싶다면 이러한 방법도 여전히 유효하지만, 이제는 기본 권장 경로가 아니라 Operator의 대안으로 보는 편이 맞습니다.
AI 영역은 매우 빠르게 발전하고 있으며 항상 새로운 도구와 모델이 출시되고 있습니다. 여기의 추천은 작성 당시 우리가 알고 있는 것에 기반하며, 읽고 있는 시점에서는 최신 정보가 아닐 수 있습니다. 자신만의 선택지를 탐색해 보세요. DanceXR은 호환 가능한 채팅 API를 제공하는 로컬 LLM 도구와 함께 동작할 수 있어야 합니다.
장점:
- 프라이버시, 아무것도 외부로 전송되지 않으며 모든 것이 로컬에서 처리됩니다.
- 실행할 모델을 자유롭게 선택할 수 있으며, 검열되지 않은 모델도 포함됩니다.
- 무료
단점:
- 온라인 모델만큼 똑똑하지는 않음
- 설정이 약간 필요함
- LLM을 로컬에서 실행하는 것은 매우 많은 자원이 필요할 수 있으며, 특히 DanceXR과 LLM을 같은 기계에서 실행할 계획이라면 더욱 그렇습니다.
설정: 현재 LM Studio는 명령줄 도구를 다루고 싶지 않다면 더 나은 선택입니다. LM Studio의 경우 다음 지침을 따르십시오:
- LM Studio를 웹사이트 https://lmstudio.ai/ 에서 다운로드하고 설치합니다.
- LM Studio 내에서 LLM 모델을 선택하고 다운로드합니다. 현재 Llama3 8b 사용을 추천합니다.
- 채팅 탭으로 전환하고 다운로드한 모델을 로드합니다.
- “로컬 서버” 탭으로 가서 “서버 시작”을 클릭합니다. 포트 번호를 메모하십시오 (기본값은 1234입니다).
OobaBooga의 경우 다음 지침을 따르십시오:
- https://github.com/oobabooga/text-generation-webui 에서 다운로드 및 설치 지침을 따릅니다.
- DanceXR에서 WebUI가 작동하도록 하려면 API를 활성화해야 합니다. 이를 위해 CMD_FLAGS.txt 파일을 열고 그 안에 “–listen –api”를 추가한 후 재시작합니다.
- 실행 중이면 모델 탭으로 이동하여 모델을 다운로드합니다.
- 우리는 다음 2개의 모델 중 하나를 사용하는 것을 추천합니다: https://huggingface.co/TheBloke/Luna-AI-Llama2-Uncensored-GPTQ (7b, 더 쉽게 실행) https://huggingface.co/TheBloke/Nous-Hermes-Llama2-GPTQ (13b, 더 똑똑함)
- 모델 목록을 새로 고침하고 모델을 로드합니다. 기본 포트 번호는 5000입니다.
Ollama 설정: Ollama는 최소한의 설정으로 로컬 AI 모델을 실행하는 쉬운 방법을 제공합니다.
- https://ollama.ai/ 에서 Ollama를 다운로드하고 설치합니다.
- Ollama 앱을 열고 원하는 모델을 다운로드합니다.
- DanceXR에서 AI 서비스 -> 서비스 선택에서 “Ollama”를 선택합니다.
- “모델 이름” 상자에 모델 이름을 입력합니다. 예: “llama2-7b-chat”.
- 이제 Ollama를 AI 백엔드로 사용할 수 있어야 합니다.
DanceXR의 설정:
- DanceXR에서 AI 서비스 -> 서비스 선택에서 “로컬 WebUI”를 선택합니다.
- 서버 URL과 포트 번호를 입력합니다. 예: “http://127.0.0.1:1234”(LM Studio) 또는 “http://127.0.0.1:5000”(OobaBooga).
로컬 모델을 위한 개선된 프롬프트
DanceXR은 이제 작은 로컬 모델을 사용할 때 대화 품질을 향상시키기 위한 개선된 프롬프트 기법을 포함합니다. 이를 통해 더 나은 응답과 더 매력적인 상호작용을 보장합니다.
채팅 제어
템플릿
템플릿은 AI 모델이 각 캐릭터의 채팅 메시지를 생성하도록 유도하는 것입니다. 복잡하다고 생각할 수 있지만 사실은 매우 간단합니다. chat/templates 폴더를 열어 기본 템플릿을 열고 작동 방식을 확인할 수 있습니다.
기본적으로 누군가에게 특정 작업을 텍스트로 지시하는 것과 유사합니다. 기본 템플릿을 수정하고 다른 이름으로 저장하여 그것이 채팅 내용에 어떤 영향을 미치는지 확인할 수 있습니다. 예를 들어, 거기에 환경 설명을 추가하여 채팅의 시나리오를 설정할 수 있습니다.
DanceXR에서는 채팅 설정 -> 템플릿으로 가서 생성한 템플릿을 선택할 수 있습니다.
캐릭터
캐릭터는 배우 모델의 이름에서 파생됩니다. 예를 들어 “Koharu Bouquet Cattleya Hair B Side Ponytail”에서 “Koharu”는 캐릭터 이름으로 해석되며, 나머지 “Bouquet Cattleya Hair B Side Ponytail”은 그녀의 의상을 설명하는 데 사용됩니다.
잘 알려진 캐릭터라면 언어 모델이 그 캐릭터에 대한 어느 정도의 지식을 갖고 있을 수 있으므로, 사용하는 모델에 따라 그들이 누구인지와 어떻게 행동하는지를 어느 정도 이해할 수 있습니다.
캐릭터 설정에서는 캐릭터에 대한 설명과 성격을 입력할 수 있으며, 이는 캐릭터의 채팅 행동에 큰 영향을 미칩니다. 예를 들어, 자랑스럽고 오만한 캐릭터를 “복종하고 기쁨을 주고 싶어하는”으로 설명하기만 하면 순종적으로 변화시킬 수 있습니다.
“플레이어”는 기술적으로도 캐릭터입니다. 자신의 이름, 설명, 성격을 변경하여 원하는 누구로든 바뀔 수 있습니다.
페르소나
캐릭터 설정에는 페르소나 드롭다운이 있습니다. 이는 TavernAI와 같은 AI 롤플레이 프로그램에서 다운로드한 캐릭터를 사용할 수 있도록 해줍니다. 이들은 일반적으로 PNG 포맷으로 제공됩니다. PNG 이미지의 메타데이터에는 캐릭터에 대한 설명이 포함되어 있습니다.
이 온라인 캐릭터 편집기를 사용하여 png 캐릭터를 json 형식으로 변환합니다: https://zoltanai.github.io/character-editor/
그런 다음 json 파일을 “chat/personas” 폴더에 넣으면 캐릭터 설정의 페르소나 드롭다운에 나타납니다. 이렇게 하면 페르소나의 설명이 캐릭터 설명을 덮어쓰게 됩니다.
채팅 기록
채팅 기록은 새로운 콘텐츠를 생성할 때마다 AI에 전송되어 맥락을 유지하도록 합니다. 다른 시나리오나 주제로 전환하고 싶다면, AI가 이전 채팅 맥락에 영향을 받지 않도록 먼저 기록을 지우십시오. 이렇게 하여 환경을 조작하고 채팅을 이끌어갈 수도 있습니다. 예를 들어 메시지에서 무언가가 발생했다고 설명하면 AI는 그 맥락을 계속 따릅니다.
프롬프트 제한이 도달하면 가장 오래된 메시지는 무시되며 맥락에 포함되지 않습니다. 따라서 AI는 기록에서 너무 멀리 있는 것들을 잊을 수 있습니다.
새로운 Operator 기반 워크플로에서는 DanceXR가 멀티턴 기록, 세션 지속성, 메모리 압축을 더 잘 활용할 수 있어 대화가 길어져도 롤플레이의 일관성을 유지하기 쉬워졌습니다.
채팅 인터페이스에서 채팅 메시지 옆의 아이콘을 클릭하여 채팅 기록을 조작할 수 있습니다. 옵션은 다음과 같습니다:
- 재생성: 모든 메시지를 삭제하고 AI가 이 메시지를 재생성하도록 함
- 수정: 메시지를 인수하고 직접 수정함. 이렇게 하면 메시지의 이름과 콜론을 그대로 유지해야 시스템이 이 메시지의 출처를 알 수 있습니다.
- 재생: 이 메시지부터 채팅 기록을 재생함
- 항목 삭제: 이 메시지를 삭제
- 위로 삭제: 이 메시지 위의 모든 메시지를 삭제
- 아래로 삭제: 이 메시지 아래의 모든 메시지를 삭제
온도
이 값은 AI 모델이 채팅 메시지를 생성할 때 얼마나 자유롭게 할 수 있는지를 제어합니다. 이미지 생성과 마찬가지로 동일한 입력으로 생성할 때마다 약간씩 다를 수 있으며, 온도는 그 변동성을 조절합니다.
존재 패널티 및 빈도 패널티
이 값을 증가시키면 AI가 반복하는 콘텐츠를 생성할 가능성을 줄일 수 있습니다.
최대 생성 토큰 및 최대 프롬프트 길이
LLM은 토큰 한도가 있으며, 이 한도를 초과하는 콘텐츠는 올바르게 생성되지 않습니다.
자동 생성 및 플레이어를 위한 생성
“자동 생성 다음”을 켜면 타이머가 만료되었을 때 AI가 자동으로 다음 메시지를 생성하도록 할 수 있습니다.
“플레이어를 위한 생성”을 켜면 AI가 플레이어를 위한 메시지를 생성하도록 할 수 있습니다.
텍스트 음성 변환
추가 음성
DanceXR은 Piper라는 TTS 엔진을 사용합니다. 여기에서 DanceXR에서 사용할 추가 음성 모델을 듣고 다운로드할 수 있습니다.
https://rhasspy.github.io/piper-samples/
다운로드한 후 chat\voices\piper 폴더에 넣으십시오. onnx와 onnx.json 파일이 모두 필요하다는 점을 기억하십시오.
음성 관리자
내장 음성 모델에는 900개가 넘는 서로 다른 음성이 포함되어 있습니다. 기본적으로는 처음 20개만 활성화되어 있습니다. 900개는 사용자가 고르기에는 너무 많기 때문입니다. 다른 음성을 활성화하려면 채팅 설정에서 음성 -> 음성 관리자로 이동하여 목록에서 음성을 선택하고 들어본 뒤 “선택됨”을 체크해 음성 목록에 추가될 수 있도록 하십시오.
시스템, 플레이어, 각 캐릭터에 서로 다른 음성을 선택할 수 있습니다.
언어 일치 및 폴백
AI 모델은 서로 다른 언어의 메시지를 생성할 수 있지만 음성 모델은 그렇지 못합니다. DanceXR은 메시지의 언어를 판단하려고 하며, 그것이 선택한 음성 언어와 일치하지 않을 경우 음성 설정의 “폴백”을 활성화하면 음성 목록 안에서 해당 언어와 맞는 다른 음성을 선택할 수 있습니다.
1.5.1 업데이트에서 도입된 새 설정은 기본 “자동” 모드에 더해 채팅 언어를 직접 선택할 수 있게 합니다. 자동 모드는 이전과 똑같이 텍스트 내용 자체로부터 언어를 판단하려고 합니다. 하지만 채팅 언어 설정에서 특정 언어를 선택하면 그 언어가 채팅 메시지와 음성 모두에 사용됩니다.
프롬프트 메시지는 언어 모델이 어떤 언어로 응답할지 결정할 때 강한 영향을 미친다는 점에 유의하십시오. 영어 이외의 언어를 선택하는 경우, 선택한 언어의 네이티브 텍스트로 프롬프트 템플릿도 업데이트하는 것이 좋습니다.
음성 텍스트 변환
내장 Whisper 모델은 사용자의 음성을 텍스트로 변환한 다음 AI에 전송할 수 있습니다. 수동과 자동의 두 가지 모드가 있습니다.
수동 모드
수동 모드는 마이크 버튼을 클릭하면 녹음을 시작하고, 끝나면 다시 클릭하여 오디오를 처리한 뒤 결과를 AI에 전송하는 방식입니다.
자동 모드
자동 모드는 채팅이 유휴 상태일 때(캐릭터가 말하지 않을 때) 자동으로 녹음을 시작하고, 실시간으로 오디오를 처리한 뒤 말이 끝나면 전송하는 방식입니다. 다만 때로는 그리 똑똑하지 않을 수 있습니다.
사양이 낮은 장치에서는 오디오를 텍스트로 처리하는 데 시간이 걸릴 수 있습니다. 따라서 자동 모드는 Android와 Quest에서는 권장되지 않습니다.
키 바인딩
입력 설정에서 마이크 상태를 전환할 버튼을 지정할 수 있으므로 UI에 들어가지 않고도 녹음을 제어할 수 있습니다. 기본적으로 오른손 컨트롤러 메뉴 버튼에 할당되어 있습니다.
설정 및 캐릭터 설정 초기화
모든 것은 콘텐츠 라이브러리의 chat 폴더에 저장됩니다. chat 폴더를 삭제하면 모든 설정을 기본값으로 되돌릴 수 있습니다.