Swift 온디바이스 AI: 음성 인식과 판단 모델을 고를 때 확인할 조건
AnySpeechRecognizer와 AnyDecisionModel의 한국어 지원, 확률 해석, 실행 환경과 의존성 충돌을 살펴본다.

앱에서 음성을 받아 적고 문의를 분류하려면 어떤 모델과 API를 써야 할까. Hugging Face는 10월 29일 Apple 플랫폼용 Swift 패키지 AnySpeechRecognizer와 AnyDecisionModel을 소개했다. 하나는 음성 인식 엔진을 바꿔 쓸 수 있게 하며 다른 하나는 모델의 확률을 이용해 정해진 선택지 중 답을 고른다. 두 패키지 모두 공개 모델을 내려받아 기기에서 실행할 수 있다.
음성 인식: 언어와 응답 방식부터 고르기
AnySpeechRecognizer는 Apple의 SpeechAnalyzer 계열 API를 닮은 인터페이스를 제공한다. 기본 엔진은 Apple Speech이며, Parakeet이나 Qwen3-ASR을 선택할 수도 있다. 기존 코드가 공통 API만 쓴다면 import를 바꾸는 방식으로 접근할 수 있지만, 엔진별 차이는 확인해야 한다.
한국어가 중요하다면 모델 선택에 주의하자. 발표에 따르면 Parakeet v3는 유럽 언어 25개를 지원하지만 한국어는 포함하지 않는다. Qwen3-ASR은 한국어를 포함한 30개 언어와 중국어 방언 22개를 지원한다. Parakeet 런타임은 실시간 입력과 중간 결과, 단어별 시간과 신뢰도를 지원한다. Qwen3-ASR은 최대 40초 구간마다 최종 결과를 반환하며 중간 결과와 단어별 시간·신뢰도를 제공하지 않는다. 발표 측은 Qwen이 GPU에서 실행되고 Parakeet보다 느려 파일 전사에 더 적합하다고 설명한다. 실제 지연과 정확도는 기기와 음성 자료로 측정해야 한다.
판단 모델: 확률은 정답 보증서가 아니다
AnyDecisionModel은 예·아니요, 선택지, 점수 척도 형태의 질문에 타입이 있는 결과와 확률을 반환한다. 예를 들어 고객 문의를 billing, technical, sales 가운데 한 부서로 분류할 수 있다. MLX, Core AI, llama.cpp 같은 로컬 백엔드와 Jev, Ollama 백엔드를 지원한다. 모든 백엔드가 같은 방식으로 동작하는 것은 아니다. 일부는 다음 토큰의 확률을 읽고, Clef처럼 별도 판단 헤드를 가진 모델을 쓰는 백엔드도 있다.
확률이 높다고 분류가 정확하다는 뜻은 아니다. 공식 발표는 모델 확률이 과신되는 경우와 선택지 순서의 영향을 지적한다. 보정 데이터를 따로 준비하고, 평가 데이터에서 오류율을 확인한 뒤 자동 처리 기준을 정하는 편이 안전하다. 선택지 순서를 바꿔 결과를 평균하는 옵션도 있지만, 순서를 바꾸는 횟수만큼 추가 평가 비용이 든다.
도입 전 확인할 조건
두 패키지는 Swift 6.2 이상과 macOS 26 또는 iOS 26 이상을 요구한다. Parakeet 런타임과 MLX 백엔드는 Apple silicon이 필요하다. MLX 빌드에는 Xcode의 Swift 6.4 이상과 Metal 도구가 필요하고, Core AI는 Xcode 27과 OS 27 런타임이 필요하다.
특히 발표 시점에는 AnyDecisionModel의 CoreAI trait과 AnySpeechRecognizer를 함께 사용할 수 없다. coreai-kit 0.7.3은 swift-huggingface 1.0 미만을 요구하지만 음성 패키지는 1.x를 요구하기 때문이다. 두 기능을 한 앱에 넣을 계획이라면 최신 의존성 상태를 먼저 확인하자. 모델 다운로드 크기, 대상 기기 메모리, 한국어 음성 품질도 배포 전 점검할 항목이다.
이번 공개는 앱 개발자가 음성 인식과 분류 작업을 Swift 인터페이스로 실험할 수 있는 선택지를 넓혔다. 다만 언어 지원, 실시간 처리, 의존성은 모델과 백엔드마다 다르므로 실제 사용 환경에서 검증하는 과정이 남는다.
출처: Hugging Face 공식 발표, 2026년 10월 29일 · AnySpeechRecognizer 저장소 · AnyDecisionModel 저장소



Discussion
No comments yet