← Docs hub

보이스 프로필 전체 구조와 책임

상위 기준: 보이스 프로필 등록 제품 구현 기준서 2~3장

책임은 4개 역할과 책임에 따라 모바일 APP, AWS Backend·클라우드, SoC·DeviceAgent, 화자인식 등록·인식 APP·Service로 나눈다.

구조 한눈에 보기

현재 보이스 프로필 책임 구조

구조도 크게 보기

모바일 APP -> AWS Backend -> MQTT -> IotAgent -> Binder -> DeviceAgent
                                                        ├-> Registration App
                                                        └-> OnDevice Agent Service
                                                               └-> Voice Profile Store

등록 화면과 음성 처리는 분리한다. Registration App은 상태를 표시하고 버튼 입력을 보낸다. OnDevice Agent Service만 마이크와 화자 모델을 사용한다.

주체·목적·행동

역할 세부 주체
모바일 APP 휴대폰 앱
AWS Backend·클라우드 Backend, AWS IoT Core, 클라우드 보이스 프로필 저장소
SoC·DeviceAgent IotAgent, DeviceAgent
화자인식 등록·인식 APP·Service Registration App, OnDevice Agent Service
주체 목적 행동 하지 않는 일
모바일 APP 등록 사용자와 기기 선택 HTTPS 등록·취소·조회·삭제 요청 A1 녹음
AWS Backend 계정·기기 인증 APP 요청을 MQTT 명령으로 변환 화자 판정
IotAgent A1 MQTT 접점 topic 구독·발행, JSON과 Bundle 변환 UI·모델 실행
DeviceAgent A1 내부 제어 관문 호출자·TTL·payload 검사, Activity 실행, Binder 중계 PCM/WAV 처리
Registration App A1 등록 UI 시작·취소·재시도, 상태 표시 마이크·임베딩 처리
OnDevice Agent Service 등록과 런타임 식별 PCM 수집, 품질 검사, Voice ID·임베딩, 로컬 비교 계정 권한 결정
클라우드 보이스 프로필 저장소 사용자 정보 원본 Voice ID 동기화·사용자 조회 원음 저장·화자 재판정

표준 용어

책임 주체는 모바일 APP, AWS Backend, IotAgent, DeviceAgent, Registration App, OnDevice Agent Service, 클라우드 보이스 프로필 저장소로 쓴다. On-device Matcher, OnDevice UI, 로컬 Matcher 같은 이름은 책임 주체로 사용하지 않는다.

Service 내부 모듈은 다음처럼 구분한다.

모듈 역할
AudioRecordManager 단일 마이크 소유권과 PCM 콜백
VoiceProfileAudioQualityGate 세트별 신호·발화량 검사
VoiceProfileEmbeddingQualityGate 5세트 임베딩 일관성 검사
SpeakerIdentificationEngine 임베딩 생성과 등록 화자 비교
SpeakerProfileStore Voice ID와 기준 임베딩을 보관하는 로컬 기준 저장소

제어 경로와 데이터 경로

제어·상태

HTTPS JSON -> MQTT JSON -> Binder Bundle -> UI/Service
결과는 Binder 콜백 -> MQTT 결과 -> HTTPS 응답으로 복귀

일반 메시지에는 contractVersion, requestId, method, 상태, 진행률, 사유만 넣는다.

음성·프로필

Built-In Mic -> AudioRecordManager -> OnDevice Agent Service
             -> 품질 검사 -> 임베딩 생성 -> SpeakerProfileStore

구현 위치

파트 작업공간
OnDevice Agent Service /home/silogood/work/2.A1_LLM_Aent/skmagic_ondeviceai_agent_speaker_recognition
Registration App /home/silogood/work/1.A1_SoC_new/SoC/a1-packages-mr6/apps/VoiceProfileRegistrationApp
Mobile Sample /home/silogood/work/1.A1_SoC_new/SoC/a1-packages-mr6/apps/VoiceProfileMobileSample
Local Gateway /home/silogood/work/1.A1_SoC_new/SoC/a1-packages-mr6/tools/voice_profile_sample_gateway
IotAgent·DeviceAgent /home/silogood/work/1.A1_SoC_new/SoC/a1-packages-mr6, branch speaker_identification

Registration App은 별도 APK로 빌드해 A1 플랫폼 키로 서명한다. Mobile Sample은 일반 휴대폰용 시험 앱이며 두 앱을 서로 대체하지 않는다.

현재와 제품 목표

항목 현재 CPU PoC 제품 목표
MQTT 로컬 Broker 시험 경로 AWS IoT 인증 command/status/result
등록 5.2초 고정 수집 5세트 실기기 데이터로 판정 기준 확정
검증 신호 품질 + 세트 간 동일 화자 다화자·재생·합성 음성 방어 범위 결정
저장 앱 전용 저장소 + DeviceAgent 암호화 전달 대기 저장소 암호화·마이그레이션·보존 정책
Cloud 실제 동기화 미연결 클라우드 프로필 저장소와 사용자 조회 API

코드 근거

Keyboard shortcuts

⌘K / Ctrl+KOpen command palette
/Focus search
g hGo to home
g pGo to projects
g sGo to sessions
j / kNext / prev row (tables)
?Show this help
EscClose dialogs

Structured queries

Mix key:value filters with free text in the palette:

type:sessionOnly session pages
project:llm-wikiFilter by project name (substring)
model:claudeFilter by model name (substring)
date:>2026-03-01Sessions after a date
date:<2026-04-01Sessions before a date
tags:rustPages mentioning a tag/topic
sort:dateSort results by date (newest first)

Example: type:session project:llm-wiki date:>2026-04 sort:date