WWDC 2025 - iOS 26의 SpeechAnalyzer: 음성 인식의 다음 진화
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발, 앱 개발
대상자
- *경험 많은 iOS 개발자**
- Swift concurrency 및 iOS 17 이상의 AudioKit, AVFoundation 프레임워크 이해 필요
- SFSpeechRecognizer 대체 기술 및 AsyncSequence 활용 경험이 있는 개발자
- on-device processing과 module system 아키텍처 설계에 관심 있는 개발자
핵심 요약
- SpeechAnalyzer는 SFSpeechRecognizer 대체로 on-device processing을 지원하며 자동 언어 관리 및 낮은 지연 시간을 제공
- SpeechTranscriber 모듈과 Module System을 통해 확장 가능한 아키텍처 구현 가능
- AsyncSequence 통합으로 Swift concurrency 기반의 비동기 처리 및 백프레셔 관리 지원
섹션별 세부 요약
1. **SpeechAnalyzer의 주요 기능**
- Long-form audio support - 강의, 회의, 대화 등 장문 음성 지원
- On-device processing - Apple 서버 의존성 제거 및 개인정보 보호 강화
- Distant audio capability - 마이크와 음성 거리에 관계없이 정확한 인식
- Automatic language management - 사용자 설정 없이 자동 언어 감지
2. **SpeechAnalyzer 아키텍처**
- SpeechAnalyzer - 분석 세션 관리 및 모듈 조정
- SpeechTranscriber - 음성-문자 변환 수행
- Module System - 다양한 분석 유형을 위한 확장 가능한 아키텍처
- AsyncSequence Integration - Swift concurrency 지원을 통한 비동기 처리
3. **시간 동기화 기능**
- Audio timeline timecodes 사용으로 입력과 결과의 정확한 상관관계 확보
- Sample-accurate timing - 개별 오디오 샘플 단위의 정밀한 타이밍
- Non-overlapping result sequences - 결과 시퀀스의 중복 방지
4. **SpeechTranscriber 설정 예시**
let transcriber = SpeechTranscriber(locale: Locale.current, preset: .progressiveLiveTranscription)
- preset 옵션으로 progressive live transcription 또는 offline transcription 설정
- reportingOptions 및 attributeOptions을 통해 volatile results 및 audio time range 관리
5. **모델 다운로드 및 설치**
- ensureModel 함수로 locale 지원 여부 확인
- AssetInventory.assetInstallationRequest 사용으로 모델 다운로드 진행률 추적
- downloadIfNeeded 함수로 필요한 모델 설치
6. **음성 인식 결과 처리**
- volatile results - 실시간 인식 시 임시 결과 제공 (보라색 투명 효과로 표시)
- final results - 완료된 결과는 변경 불가능
- AttributedString을 통해 시간 정보 (audioTimeRange) 접근
7. **시스템 관리 기능**
- Model storage - 시스템 관리로 앱 메모리 영향 없음
- Automatic updates - 시스템이 모델 개선을 투명하게 처리
- Decoupled processing - 오디오 입력과 결과 처리가 독립적으로 실행
8. **오류 처리 및 정리**
- stopTranscription 함수로 인식 중지 및 정리
- recognizerTask?.cancel()으로 태스크 중지
- audioEngine.stop()으로 오디오 엔진 정지
9. **플랫폼 및 하드웨어 제한**
- 지원 플랫폼 - iOS, macOS, tvOS (watchOS 지원 없음)
- 하드웨어 요구사항 - 기기별 제약이 적용됨
10. **기타 기능 및 권장사항**
- DictationTranscriber - SFSpeechRecognizer 대체 UX 개선
- generateTitle 함수로 스마트 요약 생성
- Audio-text synchronization - 재생 시나리오에서 음성-텍스트 동기화 구현 권장
결론
- SpeechAnalyzer 구현 시 모델 설치 여부 확인 및 네트워크 오류 처리를 반드시 포함
- AsyncSequence와 module system을 활용한 비동기 처리 및 확장성 설계를 권장
- on-device processing의 개인정보 보호 기능을 사용자 커뮤니케이션에 강조해야 함