본문으로 건너뛰기
버전: 최신 버전

시작하기

빈 HTML에서 시작해 몇 분 만에 말하는 AI 아바타를 웹 페이지에 띄웁니다. 아래는 첫 발화까지의 전 과정입니다.

사전 준비물
  • DeepBrain AI가 발급한 appIduserKey. userKey는 장기 시크릿이므로 고객사 서버에만 두고 브라우저에 절대 노출하지 마세요.
  • 최신 브라우저(Chrome, Edge, Safari 최신 버전).
  • DeepBrain AI Web SDK v2 파일(aiPlayer-2.x.obf.js) — 배포용으로 전달받은 파일.

완전 예제

아래를 index.html 하나로 복사하고, <script src> 와 토큰 단계만 바꿔 브라우저에서 열어보세요. 각 부분은 아래 단계별 설명에서 다룹니다.

index.html
<!doctype html>
<html>
<body>
<!-- 1. 아바타를 담을 컨테이너 -->
<div id="AIPlayerWrapper" style="width: 480px; height: 720px;"></div>

<!-- 2. 버튼 — 첫 발화는 사용자 동작에서 시작해야 함(아래 주의 참고) -->
<button id="speakBtn">말하기</button>

<!-- 3. SDK 로드 (배포용으로 전달받은 파일/URL 사용) -->
<script src="aiPlayer-2.1.0.obf.js"></script>
<script>
async function main() {
const AI_PLAYER = new AIPlayer(document.getElementById("AIPlayerWrapper"));

// 고객사 서버가 발급한 ClientToken을 세션 토큰으로 교환.
const clientToken = await getClientToken(); // <- 고객사 백엔드 호출
await AI_PLAYER.generateToken({ appId: "<your-appId>", token: clientToken });

// 렌더링할 AI 모델 로드.
await AI_PLAYER.getAIList();
await AI_PLAYER.init({ aiName: "<ai_name>" });

// 발화 — 클릭에서 시작해야 브라우저가 오디오를 허용.
document.getElementById("speakBtn").onclick = () =>
AI_PLAYER.send("안녕하세요! 만나서 반갑습니다.");
}
main();
</script>
</body>
</html>
오디오는 사용자 동작이 필요합니다

브라우저는 사용자가 페이지와 상호작용하기 전까지 오디오를 막습니다. send()는 위 예제처럼 클릭(또는 탭)에서 호출하세요. 페이지 로드 시 바로 send()를 부르면 아바타는 나타나지만 소리가 안 납니다.

단계별 설명

1. SDK 포함

<script src="aiPlayer-2.1.0.obf.js"></script>

로드되면 AIPlayer 클래스가 전역에서 사용 가능합니다.

노트

여기 표기된 상대 경로 대신, 배포용으로 전달받은 실제 파일/CDN URL을 사용하세요.

2. 플레이어 생성

const wrapper = document.getElementById("AIPlayerWrapper");
const AI_PLAYER = new AIPlayer(wrapper);

아바타는 컨테이너 요소를 채우도록 그려집니다 — CSS로 크기·위치를 지정하세요.

3. 인증

인증은 2단계입니다:

  1. 고객사 서버에서 appIduserKey로 JWT ClientToken을 생성.
  2. 브라우저에서 generateToken()으로 교환.
const clientToken = await getClientToken(); // 고객사 백엔드 엔드포인트
const result = await AI_PLAYER.generateToken({ appId: appId, token: clientToken });
// result: { status: "success", data: { token_expire, ... } }
userKey를 절대 노출하지 마세요

userKey는 장기 시크릿입니다. ClientToken은 서버에서 생성하고, 브라우저에는 단명 ClientToken만 전달하세요.

4. AI 로드

await AI_PLAYER.getAIList();               // 사용 가능한 AI 모델
await AI_PLAYER.init({ aiName: "<ai_name>" }); // 아바타 준비 완료 시 resolve

init()는 아바타 로드가 끝나면 resolve됩니다. resolve 이후 발화 가능 상태입니다.

5. 발화

AI_PLAYER.send("만나서 반갑습니다");                       // 한 문장
AI_PLAYER.send(["만나서 반갑습니다", "잘 지내세요?"]); // 여러 문장

이벤트 수신 (선택)

AI_PLAYER.onAIPlayerLoadingProgressed = (r) => console.log("loading", r?.loading);
AI_PLAYER.onAIPlayerEvent = (e) => console.log("event", e?.type);
AI_PLAYER.onAIPlayerErrorV2 = (err) => console.error(err?.code, err?.message);
이벤트발생 시점
LOADING_PROGRESS리소스 다운로드 중 (r.loading = %)
LOAD_COMPLETED아바타 준비 완료
SPEECH_STARTED / SPEECH_COMPLETEDsend() 재생 시작 / 완료

다음 단계