Articlehuggingface.co·2026년 10월 29일·0

Introducing AnySpeechRecognizer and AnyDecisionModel: Open Models for Speech and Decisions on Apple Platforms

Quick Summary

AnySpeechRecognizer와 AnyDecisionModel은 Apple 플랫폼에서 익숙한 Swift API로 음성 인식 엔진을 선택하고, 모델의 확률에 기반한 타입화된 의사결정을 수행하도록 지원하는 공개 모델 활용 패키지다.

Introducing AnySpeechRecognizer and AnyDecisionModel: Open Models for Speech and Decisions on Apple Platforms 관련 대표 이미지

🖼️ 인포그래픽

Introducing AnySpeechRecognizer and AnyDecisionModel: Open Models for Speech and Decisions on Apple Platforms 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Introducing AnySpeechRecognizer and AnyDecisionModel: Open Models for Speech and Decisions on Apple Platforms의 핵심 내용을 4단계로 요약한 인포그래픽
Introducing AnySpeechRecognizer and AnyDecisionModel: Open Models for Speech and Decisions on Apple Platforms 핵심 내용을 4단계로 압축한 4컷 인포그래픽

💡 한 줄 요약

AnySpeechRecognizer와 AnyDecisionModel은 Apple 플랫폼에서 익숙한 Swift API로 음성 인식 엔진을 선택하고, 모델의 확률에 기반한 타입화된 의사결정을 수행하도록 지원하는 공개 모델 활용 패키지다.

📌 핵심 요약

  • AnySpeechRecognizer는 Apple의 SpeechAnalyzer 계열 API를 따르면서 기본 Apple 엔진 외에 Core ML 기반 Parakeet와 Qwen3-ASR를 지원하고, 최대 4명의 중첩 발화까지 추적하는 화자 분리를 추가한다.
  • Parakeet v3는 유럽 25개 언어를 자동 인식하며 실시간 입력·단어별 시간·신뢰도를 지원한다. Qwen3-ASR는 한국어를 포함한 30개 언어와 중국어 방언 22개를 지원하지만, 최대 40초 구간마다 최종 결과만 제공하고 속도가 느리며 수 GB의 메모리가 필요해 파일 전사에 더 적합하다.
  • 두 패키지는 Hugging Face Hub의 공개 모델을 내려받아 기기에서 실행할 수 있다. 음성 모델 변환본은 고정 리비전과 파일별 체크섬으로 관리되며, 다운로드 용량은 Parakeet 모델당 약 600 MB, 추가 실시간 인코더 약 590 MB, Qwen3-ASR 0.9~2.4 GB, Sortformer 약 250 MB다.
  • macOS 27.0.1의 M4 Max Mac Studio 측정에서 Parakeet는 1시간 음성을 파일 방식으로 약 20~40초, 실시간 입력 방식으로 약 1.5~2.5분에 전사했고 Core ML 컴파일 후 메모리는 약 100 MB였다. 중첩 발화가 있는 AMI 회의 녹음에서는 모든 시험 엔진의 단어 오류율이 23%를 넘었으며, 결과는 단일 장비와 소수 데이터셋에 한정되고 iPhone에서는 아직 시험하지 않았다.
  • AnyDecisionModel은 생성 텍스트를 파싱하는 대신 모델의 확률에서 예·아니요, 객관식, 척도형 답변을 도출하고 타입화된 결과를 제공한다. MLX·Core AI·llama.cpp 또는 Jev·Ollama를 활용하며, Emoji Magnet의 343개 질문은 호스팅 Jev에서 한 요청으로 약 0.5초, 로컬 Qwen3 4B를 쓰는 MLX에서는 M4 Max 기준 전체 약 10초가 걸렸다.

🧩 주요 포인트

  1. 익숙한 API와 엔진 선택의 분리 → AnySpeechRecognizer는 기존 Swift 코드의 전환 부담을 줄이면서 언어 범위·실시간 기능·속도·메모리에 따라 음성 모델을 선택할 여지를 넓힌다.
  2. 공개 모델 배포와 검증 가능한 변환 → 고정 리비전·체크섬·원본 대조는 모델 출처와 변환 과정을 확인하는 근거가 되지만, 실제 품질 판단에는 단일 M4 Max 측정과 AMI 단어 오류율 23% 초과라는 한계를 함께 반영해야 한다.
  3. 문자열 답변에서 확률 기반 결과로의 전환 → AnyDecisionModel은 선택지별 확률과 타입을 앱 로직에 직접 연결하며, Emoji Magnet 사례는 같은 다수 질문 작업에서도 Jev와 MLX의 처리 시간이 크게 달라짐을 보여준다.

🧠 상세 정리

1. 언어 모델을 넘어 음성과 판단으로 확장

글은 언어 모델이 글쓰기·요약·번역·도구 호출을 수행할 수 있지만, 머신러닝 전체에서 차지하는 영역은 일부라는 문제의식으로 시작한다. 고객 지원 전화에서는 먼저 발화를 알아듣고 다음으로 적절한 담당 부서를 정해야 하며, 저자는 두 작업을 모두 언어 모델에 맡길 수도 있지만 각각에 특화된 모델이 더 정확하고 빠르며 저렴할 수 있다고 설명한다. AnyLanguageModel과 swift-huggingface가 1.x에 도달한 시점에, 익숙한 Swift API와 모델 선택권을 결합하는 접근을 음성 인식과 의사결정으로 확장한 것이 이번 두 패키지의 취지다. AnySpeechRecognizer는 인식 엔진 선택과 화자 분리를 제공하고, AnyDecisionModel은 모델의 확률에서 타입화된 답변을 도출하며, 두 패키지 모두 Hugging Face Hub의 공개 모델을 내려받아 기기에서 실행할 수 있다.

2. Apple 음성 API를 유지하면서 엔진 선택

macOS 26과 iOS 26에서 도입된 Apple의 SpeechAnalyzer는 SpeechTranscriber나 SpeechDetector 같은 모듈에 파일 또는 오디오 버퍼 스트림을 전달하고, 비동기 시퀀스로 결과를 받는 구조다. AssetInventory가 모델 설치를 담당하므로 앱이 다운로드 시점을 결정할 수 있지만, 원래 API의 인식 엔진은 Apple 것으로 한정된다. AnySpeechRecognizer는 SpeechAnalyzer, SpeechTranscriber, DictationTranscriber, SpeechDetector, AssetInventory를 본떠 제공하고 Apple Speech 프레임워크를 기본 엔진으로 사용한다. 두 구현이 공유하는 API만 쓰는 코드라면 import를 Speech에서 AnySpeechRecognizer로 바꾸는 것으로 전환할 수 있고, Parakeet를 쓰려면 전사기를 생성하는 부분을 변경하면 된다. 자산 설치, 분석기 실행, 결과 읽기 절차는 유지되며, Apple 프레임워크와의 차이 및 전체 사용 예시는 README에 정리돼 있다.

3. Parakeet와 Qwen3-ASR의 언어·기능 차이

NVIDIA의 Parakeet TDT 0.6B v3는 유럽 25개 언어를 자동으로 식별하므로 별도 로케일 지정이 필요 없고, Moondream이 v3를 추가 학습한 Parakeet Ultra는 저자들의 측정 대부분에서 더 정확했다. Parakeet v3·Ultra·Unified 세 모델은 패키지 자체 Core ML 런타임에서 파일과 실시간 입력, 잠정 결과, 단어별 시간 정보와 신뢰도를 지원한다. Alibaba의 Qwen3-ASR는 0.6B와 1.7B 크기로 제공되며, Parakeet가 다루지 않는 한국어·일본어·표준 중국어·광둥어 등을 포함해 30개 언어와 중국어 방언 22개를 지원한다. Qwen3-ASR는 언어를 자동 감지하거나 명시적으로 지정할 수 있지만, 최대 40초 구간마다 최종 결과 하나만 반환하고 잠정 결과·단어별 시간·신뢰도는 제공하지 않는다. 또한 GPU에서 실행되고 Parakeet보다 느리기 때문에 저자는 실시간 입력보다 파일 전사에 더 적합하다고 설명한다.

4. Core ML 변환본의 출처·라이선스·다운로드

저자들은 앱에서 실행할 수 있도록 Parakeet 세 모델, Qwen3-ASR 두 모델, Streaming Sortformer v2와 v2.1을 Core ML로 변환해 Hugging Face Hub에 공개했다. Parakeet v3·Ultra와 Sortformer v2는 CC BY 4.0, Parakeet Unified EN 0.6B와 Sortformer v2.1은 NVIDIA Open Model License, Qwen3-ASR 두 모델은 Apache 2.0 라이선스다. 각 저장소에는 원본 체크포인트와 파일별 체크섬이 기록되고 패키지는 고정 리비전을 사용하며, 변환 워크플로 대부분은 FluidInference의 mobius 스크립트를 따르고 각 변환본을 원본 모델과 대조한다. Parakeet 저장소의 8초 실시간 인코더는 실시간 분석 시간을 약 3분의 1 줄이지만 단어 오류율이 다소 높아지는 절충이 있다. 다운로드는 앱이 요청할 때만 진행되며, Parakeet 모델당 약 600 MB와 추가 실시간 인코더 약 590 MB, Qwen3-ASR 0.9~2.4 GB, Sortformer 약 250 MB가 필요하다. 파일은 표준 Hugging Face 캐시에 저장되므로 샌드박스 밖의 Mac 앱은 Python 및 다른 Hugging Face 도구와 모델 파일을 공유한다.

5. 최대 네 명의 화자를 같은 시간축에서 추적

대화 전사에는 발화 내용뿐 아니라 누가 언제 말했는지도 필요하지만, Apple Speech 프레임워크에는 이를 위한 화자 분리 모듈이 없다. AnySpeechRecognizer의 SpeakerDiarizer는 NVIDIA Streaming Sortformer를 Core ML에서 실행하고, Apple 또는 Parakeet 전사기와 같은 시간축에서 함께 동작하도록 이 기능을 추가한다. 전사기와 화자 분리기를 함께 자산 설치 대상으로 지정한 뒤 같은 SpeechAnalyzer의 모듈로 넣는 방식으로 구성한다. 화자 분리기는 발화가 겹치는 상황에서도 최대 네 명을 추적하고, SpeakerTimeline은 결과를 모아 시간 정보가 있는 각 단어에 화자를 연결하므로 화자별 발화 순서로 전사문을 출력할 수 있다. 기본 모델은 Sortformer v2이며, 선택 가능한 v2.1은 NVIDIA가 더 많은 회의 데이터로 학습했고 저자들의 회의 측정에서도 더 정확했다.

6. 전사 성능과 측정 범위의 한계

저자들은 macOS 27.0.1을 실행하는 M4 Max Mac Studio에서 hear 명령줄 도구로 3~8분 길이 LibriSpeech 파일을 측정했으며, 파일 방식의 test-clean/test-other 단어 오류율은 Parakeet v3 1.55%/2.78%, Ultra 1.66%/2.55%, Unified 1.43%/2.19%, Apple 전사기 2.12%/3.97%였다. 실시간 입력 방식에서는 같은 순서로 Parakeet v3 4.73%/4.29%, Ultra 2.65%/3.28%, Unified 1.45%/2.42%를 기록해 모델과 입력 방식에 따른 차이가 나타났다. Parakeet는 1시간 음성을 파일 방식으로 약 20~40초, 실시간 입력 방식으로 약 1.5~2.5분에 전사했고 Core ML 모델 컴파일 후 메모리는 약 100 MB였지만, Qwen3-ASR는 훨씬 느리고 수 GB의 메모리가 필요했다. 중첩 발화가 있는 AMI 회의 녹음에서는 시험한 모든 엔진의 단어 오류율이 23%를 넘어 회의 음성의 어려움이 드러났다. 이 결과는 단일 장비와 소수 데이터셋에서 나온 것이므로 저자는 실제 하드웨어와 음성으로 측정할 것을 권하며, 자체 파일에는 hear evaluate를, 제시된 측정의 재현에는 natural-speech-eval.py를 사용할 수 있다고 안내한다. 현재 시험은 macOS 27에서만 수행됐고 iPhone에서는 아직 진행하지 않았으며, 향후 macOS 27과 iOS 27의 Core AI를 포함한 추가 음성 엔진 지원을 희망한다고 밝혔다.

7. 생성 문자열 대신 타입과 확률로 받는 판단

AnyDecisionModel은 대응되는 Apple 프레임워크가 없는 영역에서 출발하며, 저자는 의사결정 모델이라는 이름과 관심은 새로워도 그 바탕이 되는 분류 작업 자체가 새로운 것은 아니라고 짚는다. 앱은 흔히 메시지의 긴급성, 티켓 담당 팀, 고객의 불만 정도를 언어 모델에 묻고 생성된 텍스트를 파싱하지만, 이 방식은 선택된 답변만 보여주고 다른 선택지에 배정된 확률은 드러내지 않는다. AnyDecisionModel은 예·아니요, 객관식, 평가 척도 질문의 답을 모델 확률에서 도출하며, 기기 내 MLX·Core AI·llama.cpp 또는 Jev·Ollama의 의사결정 모델을 사용할 수 있다. 예제에서 긴급성에 대한 probability 호출은 Double을, 담당 부서에 대한 choice 호출은 선택된 열거형 값·선택지별 확률·신뢰도를 담은 Choice<Department>를 반환한다. 불만 정도에 대한 score 호출은 기대 수준·각 수준의 확률·신뢰도를 담은 Score를 반환하고, Choosable을 따르는 Department 값은 모든 경우를 처리하는 switch에 직접 사용할 수 있다.

8. 고정된 상태에 독립 질문을 적용하는 실행 구조

AnyDecisionModel의 모델과 세션 구성은 Foundation Models나 AnyLanguageModel을 사용한 개발자에게 익숙한 형태를 따른다. DecisionSession은 텍스트 또는 JSON으로 된 단일 상태를 보유하고, 모든 질문은 그 상태를 대상으로 하므로 같은 고객 티켓에 긴급성·담당 부서·불만 정도를 각각 물을 수 있다. 질문들은 서로 독립적이어서 앞선 답변이 뒤 질문의 입력으로 들어가지 않으며, 여러 질문을 함께 처리하려면 decide(_:)에 배치로 전달한다. MLX 백엔드는 각 질문의 허용 답변마다 한 토큰짜리 라벨을 배정한 프롬프트를 구성하고, 한 번의 순전파에서 각 라벨의 확률을 읽는다. 따라서 핵심 실행 방식은 답변 문장을 길게 생성한 뒤 해석하는 절차가 아니라, 지정된 답변 후보의 확률을 직접 가져와 결과로 구성하는 것이다.

9. Emoji Magnet 데모와 학습된 의사결정 헤드

macOS 앱 Emoji Magnet은 343개 이모지 위의 입력창에 ‘입는 것’ 같은 구절을 쓰면 해당 이모지가 떠오르고, ‘겨울에 입는 것’으로 좁히면 더 이상 맞지 않는 이모지가 내려가는 예시로 의사결정 API를 보여준다. 내장 키워드 규칙 없이 입력이 잠시 멈출 때 각 이모지에 대해 예·아니요 질문을 던지며, 세션 상태에는 사용자가 입력한 구절이 저장된다. 시연의 호스팅 Jev 백엔드는 343개 질문을 한 요청으로 처리해 구절마다 약 0.5초 안에 결과가 정리된다. TYPESAFE_AI_API_KEY가 없으면 Mac에서 MLX 백엔드로 Qwen3 4B를 실행하며, 접두부 캐싱으로 상태를 한 번 평가한 뒤 순전파마다 16개 질문에 답한다. M4 Max에서 모델을 불러온 후 16개 묶음은 약 0.45초, 343개 전체는 약 10초가 걸리고 각 묶음의 결과는 도착하는 대로 표시된다. 글은 이어 범용 언어 모델의 다음 토큰 확률을 읽는 방법이 작동하더라도 해당 모델이 의사결정을 위해 학습된 것은 아니라며, 상태와 타입화된 질문 스키마를 받아 허용 선택지의 확률을 반환하는 학습된 의사결정 헤드의 사례로 Cloudflare의 Clef를 소개한다. 다만 제공된 원문은 이 설명 도중에 끊겨 있어 Clef에 관한 후속 설명이나 비교 결과는 확인할 수 없다.

🧾 핵심 주장 / 시사점

  • 음성 엔진 선택은 정확도 하나로 끝나지 않는다. Parakeet의 실시간 기능과 Qwen3-ASR의 한국어 지원처럼 언어 범위, 결과의 세밀함, 처리 속도와 메모리 요구를 함께 판단해야 한다.
  • 공개된 변환본과 재현 도구는 검증의 출발점을 제공하지만, LibriSpeech의 낮은 오류율이 중첩 발화가 있는 회의에서도 유지되는 것은 아니다. AMI 결과와 iPhone 미시험 상태가 적용 범위를 제한한다.
  • AnyDecisionModel은 판단 결과를 타입과 확률로 앱에 연결하는 방식을 제시한다. Emoji Magnet은 이러한 인터페이스의 활용 가능성과 함께 로컬·호스팅 백엔드 사이의 응답 시간 차이를 보여준다.

✅ 액션 아이템

  • Parakeet와 Qwen3-ASR의 언어 범위·실시간 기능·속도·메모리 요구를 기준으로 음성 인식 엔진 선택.
  • 단일 M4 Max 측정과 iPhone 미시험 상태를 고려해 실제 하드웨어와 음성에서 전사 성능 검증.
  • AnyDecisionModel 적용 시 타입화된 결과와 선택지별 확률을 활용하고, 343개 질문의 Jev 약 0.5초·MLX 약 10초 차이를 반영해 백엔드 선택.

❓ 열린 질문

  • 아직 시험하지 않은 iPhone에서 Parakeet와 Qwen3-ASR의 처리 속도와 메모리 사용량은 어느 정도인가?
  • 한국어를 지원하는 Qwen3-ASR는 실제 사용 대상 음성에서 어느 정도의 전사 정확도를 보이는가?
  • AnyDecisionModel의 선택지별 확률은 실제 적용할 의사결정에서 얼마나 신뢰할 수 있는가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.