-
Apple Silicon에서 Swift/MLX로 구현된 PersonaPlex 7B 모델이 실시간 양방향 음성 대화를 지원함
- 기존의 ASR→LLM→TTS 3단계 음성 파이프라인을 하나의 모델로 통합해, 텍스트 변환 없이 오디오 입력과 출력을 직접 처리함
-
4비트 양자화(quantization) 로 모델 크기를 16.7GB에서 5.3GB로 줄였으며, 68ms/step(RTF 0.87) 로 실시간보다 빠른 처리 속도를 달성함
-
Mimi 오디오 코덱과 Depformer 구조를 활용해 음성 품질 저하 없이 효율적인 스트리밍을 구현함
-
Swift 네이티브 환경에서 서버 없이 동작하며, 음성 비서·대화형 에이전트 개발을 위한 기반 기술로 중요함
qwen3-asr-swift와 PersonaPlex 7B 통합
-
qwen3-asr-swift 라이브러리가 Apple Silicon에서 NVIDIA PersonaPlex 7B를 통합해 양방향 음성 대화(full-duplex speech-to-speech) 기능을 지원
- 입력 오디오를 실시간으로 처리하며, 동시에 응답 오디오를 생성
-
ASR, TTS, 다국어 합성 기능을 포함한 통합 음성 처리 라이브러리로 확장됨
- 모델은 4비트 양자화된 5.3GB 버전으로 Hugging Face의 aufklarer/PersonaPlex-7B-MLX-4bit에서 제공
기존 음성 파이프라인의 단일화
- 전통적인 음성 비서는 ASR → LLM → TTS의 3단계 구조로, 각 단계에서 지연(latency) 과 감정 손실이 발생
- PersonaPlex는 이를 단일 모델로 통합해, 음성 토큰(audio tokens) 을 직접 처리
-
17개 병렬 스트림(12.5Hz) 으로 오디오를 실시간 변환
-
Kyutai의 Moshi 아키텍처를 기반으로, 18개 음성 프리셋과 역할 기반 시스템 프롬프트를 지원
모델 구조와 변환
- 원본 16.7GB PyTorch 체크포인트를 MLX 최적화 safetensors로 변환
- 변환 스크립트(convert_personaplex.py)가 가중치 분류, 4비트 양자화, 프리셋 추출, Hugging Face 업로드를 자동 처리
-
Temporal Transformer(7B 파라미터) 와 Depformer를 모두 4비트로 압축
- Depformer는 단계별 가중치 전환(MultiLinear) 구조를 사용해 2.4GB → 650MB로 축소
- 품질 저하 없이 3.7배 용량 절감
음성 처리 파이프라인
-
Mimi Encoder/Decoder를 통해 24kHz 오디오를 16개 코드북 토큰으로 변환
- Temporal Transformer가 사용자·에이전트 오디오 스트림을 통합 처리
- Depformer가 16단계로 에이전트 오디오 토큰을 생성
- Mimi Decoder가 이를 다시 24kHz 오디오로 복원
-
Mimi 코덱, KV 캐시, RoPE, SwiGLU, RMSNorm 등 기존 TTS 모델의 구성요소를 그대로 재사용
시스템 프롬프트와 대화 제어
- PersonaPlex는 텍스트 기반 시스템 프롬프트로 대화 스타일을 제어
- 프롬프트가 없으면 모델이 주제에서 벗어나거나 장황하게 응답
- CLI 또는 API에서 assistant, customer service, teacher 등 프리셋 선택 가능
- 동일한 질문에서도 프롬프트 유무에 따라 응답 품질이 크게 달라짐
성능 및 실시간 처리
-
M2 Max(64GB) 환경에서 68ms/step, RTF 0.87로 실시간보다 빠른 처리 속도 달성
- 80ms 프레임 예산(12.5Hz) 내에서 안정적으로 동작
-
ASR, TTS, Speech-to-Speech를 하나의 라이브러리에서 통합 테스트 가능
-
E2E 검증은 ASR을 통해 응답 오디오를 다시 텍스트로 변환하여 주제 일관성을 확인
스트리밍 및 최적화
-
respondStream() API가 2초 단위 오디오 청크를 실시간으로 생성
-
AsyncThrowingStream<AudioChunk> 형태로 즉시 재생 가능
- 주요 최적화 네 가지:
-
eval() 통합으로 GPU 동기화 감소
-
Bulk audio extraction으로 디코딩 효율 향상
-
Prefill batching으로 초기 단계 병렬 처리
-
Temporal transformer 컴파일로 Metal 커널 호출 450회 이상을 최적화
-
--compile 플래그 또는 model.warmUp()으로 커널 퓨전 활성화 가능
실행 및 배포
- GitHub 저장소: ivan-digital/qwen3-asr-swift
-
swift build -c release로 빌드 후, CLI 명령으로 ASR, TTS, Speech-to-Speech 실행 가능
- 첫 실행 시 약 5.3GB 모델 다운로드 필요
-
MLX 프레임워크 기반으로, Python이나 서버 없이 Swift 네이티브 환경에서 완전 동작
기술적 의의
-
Apple Silicon의 통합 메모리 구조와 Metal 가속을 활용해 고성능 음성 모델의 온디바이스 실행을 입증
-
단일 모델 기반 실시간 음성 대화 구현으로, AI 비서·콜센터·교육용 음성 인터페이스 등 다양한 응용 가능성 확보
- NVIDIA, Kyutai, Alibaba Qwen, FunAudioLLM, Apple MLX 등 여러 오픈소스 생태계의 통합 성과로 평가됨