init()
SDK를 초기화하고 아바타 연결을 시작합니다.
사용법
js
await SDK.init(options);InitOption
| 파라미터 | 타입 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
sdk_key | string | O | - | SDK 인증 키 |
avatar_id | string | O | - | 아바타 ID |
log_level | LogLevel | X | "warn" | 로그 레벨 |
language | LanguageCode | X | "ko_kr" | TTS 음성, 자막 및 STT 인식에 사용할 언어 코드 |
enable_microphone | boolean | X | true | STT를 위한 마이크 입력 사용 여부. true이면 init() 진행 중 브라우저 마이크 권한을 요청하고, 연결 시점부터 마이크가 활성화되어 오디오가 전송됩니다. 음성 입력을 사용하지 않는다면 false로 초기화하세요. false이면 권한을 요청하지 않습니다. |
auto_send | boolean | X | false | false(수동 전송, Push-to-Send): startListening/endListening으로 음성 인식을 제어합니다. true(자동 전송, Auto Send): STT를 계속 활성화하고 서버 음성 활동 감지(VAD)가 발화 구간을 감지해 자동으로 응답을 요청합니다. |
stt_only | boolean | X | false | STT 전용 모드. true이면 아바타가 응답하지 않고 STT 결과만 반환합니다. false이면 STT 결과를 반환하고, 해당 결과를 기반으로 아바타가 응답합니다. |
enable_microphone이 false인 상태에서 startListening(), endListening(), cancelListening()을 호출해도 오류가 발생하지 않습니다. 시그널은 그대로 서버로 전송되지만 음성은 전달되지 않습니다.
마이크를 가져오지 못한 경우에도 세션은 그대로 유지되며, 경고 로그만 남습니다.
LogLevel
브라우저 콘솔에 출력되는 로그 수준을 제어합니다. 설정한 레벨 이상만 출력됩니다.
| 값 | 출력 범위 | 용도 |
|---|---|---|
"debug" | debug, info, warn, error | 개발 중 상세 디버깅 |
"info" | info, warn, error | 주요 이벤트만 확인 (연결 완료, 초기화 등) |
"warn" | warn, error | 잠재적 문제만 확인 (기본값) |
"error" | error | 에러만 출력 |
"silent" | 없음 | 콘솔 출력 완전 비활성화 |
LanguageCode
아바타의 TTS 음성·자막 언어와 사용자의 STT 인식 언어를 지정합니다.
| 값 | 언어 |
|---|---|
"ko_kr" | 한국어 (기본값) |
"en_us" | 영어 |
"ja_jp" | 일본어 |
"id_id" | 인도네시아어 |
연결 흐름
에러 처리
초기화에 실패하면 내부 연결 리소스를 정리하고 IDLE 상태로 돌아간 뒤 예외를 발생시킵니다.
js
try {
await SDK.init(options);
} catch (error) {
// error.message에 실패 원인 포함
// "Failed to connect: ..." → SDK 키 검증 또는 WebSocket 연결 실패
// "Failed to connect streaming: ..." → 스트리밍 연결 실패
// "Init failed: ..." → 그 외 단계에서 발생한 초기화 실패
console.error(error.message);
}- init/destroy 진행 중 재호출 시 이전 작업 완료를 기다린 후 실행됩니다 (Mutex 직렬화).