AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

WWDC 2025 - iOS 26의 SpeechAnalyzer: 음성 인식의 다음 진화

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발, 앱 개발

대상자

  • *경험 많은 iOS 개발자**

- Swift concurrency 및 iOS 17 이상의 AudioKit, AVFoundation 프레임워크 이해 필요

- SFSpeechRecognizer 대체 기술 및 AsyncSequence 활용 경험이 있는 개발자

- on-device processingmodule system 아키텍처 설계에 관심 있는 개발자

핵심 요약

  • SpeechAnalyzerSFSpeechRecognizer 대체로 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 설정
  • reportingOptionsattributeOptions을 통해 volatile resultsaudio 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 구현 시 모델 설치 여부 확인네트워크 오류 처리를 반드시 포함
  • AsyncSequencemodule system을 활용한 비동기 처리확장성 설계를 권장
  • on-device processing개인정보 보호 기능을 사용자 커뮤니케이션에 강조해야 함