-
생성된 자막 및 자막 스타일 살펴보기
생성된 자막으로 비디오 콘텐츠의 접근성을 향상하세요. 생성된 자막은 온디바이스 모델을 사용하여 음성 오디오를 전사하거나 다른 언어의 자막을 번역할 수 있는 강력한 새 기능입니다. 재생 중에 사용자가 자막 스타일을 맞춤 설정하고 미리 볼 수 있는 캡션 스타일 미리보기를 살펴보고, AVKit, AVPlayerLayer, 그리고 Media Accessibility 프레임워크의 구현 세부 정보를 자세히 알아보세요.
챕터
- 0:00 - Introduction
- 1:10 - Media authoring
- 2:14 - Subtitle generation methods
- 3:03 - Availability and support
- 4:31 - Presenting subtitles in your app
- 5:39 - Subtitle style preview
- 8:55 - Demo
- 10:20 - Next steps
리소스
-
비디오 검색…
안녕하세요, 저는 James이고 AVFoundation 팀 엔지니어입니다 저는 여행을 좋아해서, 오늘은 자막과 관련된 두 가지 기능을 함께 살펴볼게요 자막을 사용하는 이유는 다양합니다 자막은 청각 장애가 있거나 난청인 분들께 필수적입니다 또는 다른 접근성 요구가 있는 분들께도요 이분들은 콘텐츠를 이해하기 위해 자막이 필요합니다 일부는 음성 대사를 이해하는 데 자막을 활용하기도 합니다 저는 오디오를 들을 수 없는 상황에서 자막을 사용합니다 바쁜 공항에 있을 때처럼요 Apple AI 생성 자막은 미디어 재생 중 실시간으로 만들어집니다 기기에서 직접, 로컬로요 이 영상에서는 먼저 Apple AI 생성 자막이 앱에서 어떻게 표시되는지 보여드릴게요
그다음에는 자막 스타일 미리보기 기능을 보여드릴 예정입니다 영상 재생 중 자막을 맞춤 설정할 수 있는 기능입니다
다음으로, 미디어 에셋이 제작되는 방법을 보여드릴게요
미디어 제작 과정은 보통 촬영으로 시작됩니다 영상과 오디오 콘텐츠를 편집하면서요 그런 다음, 오디오의 음성을 텍스트로 나타낸 자막이 수동으로 생성됩니다 이 영상 후반부에서 이런 자막을 저작 자막이라고 부를게요 콘텐츠 제작자는 여러 자막을 만들 수 있습니다 각각 다른 언어로요 또한, 여러 오디오 언어도 만들 수 있습니다 최종 미디어에는 영상, 오디오, 저작 자막이 모두 포함됩니다 여러 오디오 및 자막 언어가 있는 콘텐츠라도 시청자가 이해하는 언어가 없을 수 있습니다
이 경우 기기가 생성 자막을 만들어 빈틈을 채울 수 있습니다 원본 콘텐츠에 필요한 자막 언어가 없을 때 도움이 됩니다 더 많은 사람들이 콘텐츠에 접근하고 즐길 수 있게 됩니다
다음으로, 생성 자막이 만들어지는 방법을 살펴봅시다 생성 자막에는 두 가지 사용 사례가 있습니다 첫 번째 사용 사례에서는 오디오에서 자막이 생성됩니다 소스 오디오가 기기 내 음성 텍스트 변환 모델에 입력되어 자막이 생성됩니다 이를 음성 전사라고 합니다 두 번째는 언어 번역으로 다른 자막에서 자막이 생성됩니다 소스 자막, 이 경우에는 영어가 기기 내 번역 모델에 입력됩니다 이탈리아어 등 다른 언어의 새 자막이 생성됩니다 이를 언어 번역이라고 합니다 생성 자막은 추가 언어를 제공합니다 저작 자막이 우선되며 변경되지 않습니다
좋은 소식은 아무것도 구현할 필요가 없다는 것입니다 생성 자막을 켜기 위해서요
영상 재생 중 자동으로 제공됩니다 생성 자막은 다양한 재생 시나리오에 제공됩니다 HTTP 라이브 스트리밍 콘텐츠에 자막을 생성할 수 있습니다 TV 채널과 같은 라이브 스트림 포함 주문형 동영상 영화와 드라마도 포함됩니다 여행 영상과 스포츠 같은 라이브 이벤트도 포함됩니다
파일 기반 콘텐츠도 지원됩니다 앱 번들 비디오나 다운로드한 미디어 등이요
여러 콘텐츠 유형이 지원됩니다 영화, 드라마와 같은 전문 콘텐츠가 지원됩니다 사용자 제작 콘텐츠도 지원됩니다 iPhone 카메라 촬영 영상과 소셜 미디어 영상 등이요
이제 지원 기기와 언어를 보여드리겠습니다 생성 자막은 여러 기기에서 사용할 수 있습니다 이 표는 지원되는 기기와 언어를 보여줍니다 iOS 및 macOS 27부터 영어 오디오에서 영어 자막을 생성할 수 있습니다 tvOS 및 visionOS 27에서도 지원됩니다 또한, 여러 자막 언어를 iOS 및 macOS에서 영어 자막으로 생성할 수 있습니다 생성 자막에 대해 알았으니 앱에서 표시하는 방법을 설명하겠습니다 영상 재생 중 자막 선택 UI를 제공하는 것이 중요합니다 앱에 사용할 수 있는 옵션이 있습니다
iOS의 AVPlayerViewController UI입니다 자막 선택과 플레이어 컨트롤을 완벽하게 구현합니다 추가 작업이 필요하지 않습니다 macOS의 AVPlayerView는 유사한 기능을 제공합니다 이것은 AVLegibleMediaOptionsMenuController입니다 자막 선택 컨트롤을 표시하고 동작을 구현합니다 자막 선택 UI를 추가하려 할 때 좋은 선택입니다 플레이어 컨트롤을 제공하지 않으므로 기존 플레이어 UI에 추가할 때 좋습니다 또는 미디어 선택을 위한 커스텀 컨트롤을 구현할 수도 있습니다 앱의 다른 컨트롤 스타일에 맞게요 제 앱에서 제가 직접 만든 것처럼요 생성 자막은 앱의 콘텐츠를 더욱 접근 가능하게 만들어 줍니다 더 많은 사람들이 콘텐츠를 이해하고 즐길 수 있습니다
이제 앱을 더욱 접근 가능하게 만드는 또 다른 자막 기능을 소개합니다 자막은 콘텐츠를 접근 가능하게 합니다 하지만 자막의 표시 방식도 중요합니다 설정 앱에서는 오래전부터 자막과 캡션 스타일을 선택하고 변경할 수 있었습니다 기본 제공 스타일이 몇 가지 있으며 필요에 맞는 커스텀 스타일을 만들 수도 있습니다 저는 Bold Yellow라는 커스텀 스타일을 만들었습니다 노란색 텍스트에 약간의 테두리를 추가했습니다 읽기 더 쉽도록요 설정 앱에서 스타일을 선택할 수 있지만 더 편리하고 접근성이 높은 방법은 영상을 보면서 스타일을 변경하는 것입니다 바로 그게 자막 스타일 미리보기가 하는 일입니다
영상을 보면서 스타일 메뉴를 열었습니다 설정 앱에 있던 것과 동일한 스타일을 사용할 수 있습니다 자막 스타일을 이제 메뉴에서 바로 변경할 수 있습니다 영상 재생 중 자막을 선택하는 곳에서요 스타일 미리보기도 표시되어 선택이 더 쉬워집니다 제 Bold Yellow 스타일이 영상에서 어떻게 보이는지입니다 몇 가지 방법이 있습니다 앱에서 자막 스타일 미리보기 기능을 구현하는 먼저, iOS의 AVPlayerViewController입니다 자막 스타일 미리보기와 플레이어 컨트롤을 완벽하게 구현합니다 macOS의 AVPlayerView는 유사한 기능을 제공합니다
이것은 AVLegibleMediaOptionsMenuController입니다 자막 스타일 미리보기 컨트롤을 표시하고 동작을 구현합니다 기존 플레이어 UI에 자막 미리보기를 추가하려 할 때 좋은 선택입니다 다음으로, AVPlayerLayer에는 스타일 미리보기를 표시하는 API가 있습니다 구현 방법을 잠시 후 보여드리겠습니다 또한, AVCaptionRenderer는 스타일 미리보기를 제공할 수 있지만 렌더링은 직접 담당해야 합니다 이제 AVPlayerLayer 구현을 살펴봅시다 시스템의 각 자막 스타일에는 프로필 ID가 할당됩니다 먼저 프로필 ID로 모든 스타일을 가져오세요 스타일 이름으로 UI를 채우세요
스타일이 선택되면 스타일이 적용된 미리보기를 표시하세요 지정된 스타일로 새 자막이 표시됩니다 기존 자막은 자동으로 숨겨집니다 미리보기와 겹치지 않도록요
text 파라미터에 nil을 전달하세요 그 경우, 현지화된 시스템 텍스트가 표시됩니다
position 파라미터를 사용해 UI 컨트롤과 겹치지 않게 하세요 이는 미리보기 텍스트의 기본 위치에서의 오프셋입니다 이 함수를 다시 호출해 다른 스타일을 표시하세요 필요한 만큼 호출할 수 있습니다
선택이 완료되면 미리보기를 중지하세요 미리보기 텍스트가 제거되고 활성화된 기존 자막이 복원됩니다
선택한 스타일을 설정하세요 시스템의 모든 자막에 적용됩니다
앱에 이 기능을 구현하면 영상 시청 중 읽기 더 쉬운 자막을 빠르게 선택할 수 있습니다 이제 두 가지 자막 기능을 함께 보여드리겠습니다 저는 이탈리아로 캠핑 여행을 계획하고 있습니다 영감을 얻기 위해 이 캠핑 영상을 볼 거예요 영어 자막이 있는데 이탈리아어 자막을 원합니다 이탈리아어 실력을 키우려고요
언어를 변경하려면 자막 메뉴를 열고 언어를 클릭합니다 여러 자막을 사용할 수 있습니다 저작 자막과 생성 자막이 있습니다 생성 옵션은 스파클 심볼로 표시됩니다 그리고 Translated라는 단어와 함께요 이탈리아어 생성 자막을 선택하겠습니다
이제 영상에 이탈리아어 자막이 생겼습니다
스타일을 변경해 더 읽기 쉽게 만들겠습니다 먼저 자막 메뉴를 열고 스타일을 선택합니다 Large Text를 시도해볼게요 기존 자막이 플레이스홀더 메시지로 교체되었습니다 Large Text 스타일의 이탈리아어로요 텍스트가 더 크지만 커스텀 스타일을 시도해볼게요
오, 마음에 드네요
메뉴를 닫겠습니다 자막이 이제 커스텀 스타일을 사용하고 있습니다 이번 여행은 정말 멋질 것 같네요 출발 전 몇 가지 다음 단계가 있습니다 생성 자막 기능에 대해 알았으니 직접 탐색해 보세요 예를 들어, 여행 영상을 보면서 생성 자막을 켜보세요
또한, 앱에 자막 선택 UI가 있는지 확인하세요 자막 스타일 미리보기도 구현하세요 이 접근성 기능은 많은 분들께서 감사히 여길 것입니다 자막 스타일을 변경해야 할 때요 시청해 주셔서 감사합니다 이탈리아행 비행기를 타야 해요 Ciao ciao
-
-
7:43 - Implement subtitle style preview
// Implement subtitle style preview import AVFoundation import MediaAccessibility func updateProfileList() { subtitleStyleProfileIDs = MACaptionAppearanceCopyProfileIDs() as? [String] ?? [] } func showPreviewStyle(subtitleStyleProfileID: String) { playerLayer.setCaptionPreviewProfileID(subtitleStyleProfileID, position: .zero, text: nil) } func stopPreviewStyle() { playerLayer.stopShowingCaptionPreview() } func setSubtitleStyle(subtitleStyleProfileID: CFString) { MACaptionAppearanceSetActiveProfileID(subtitleStyleProfileID) }
-
-
- 0:00 - Introduction
Why people rely on subtitles for accessibility and comprehension, and what the session covers — how Apple's on-device AI-generated subtitles appear in your app, the subtitle style preview feature, and how media assets are authored.
- 1:10 - Media authoring
An overview of the traditional media authoring process, including how video, audio, and manually created subtitles are combined into the final media package.
- 2:14 - Subtitle generation methods
Discover the two use cases for on-device generated subtitles: speech transcription from source audio, and language translation from existing subtitles.
- 3:03 - Availability and support
The playback scenarios where generated subtitles work automatically — HTTP Live Streaming, video on demand, and file-based content — and the supported devices and languages, including English subtitles and translation into multiple languages.
- 4:31 - Presenting subtitles in your app
Explore options for providing a subtitle selection UI during video playback using AVPlayerViewController, AVPlayerView, and custom controls.
- 5:39 - Subtitle style preview
Explore how to implement a subtitle style preview using AVPlayerLayer and AVCaptionRenderer, allowing users to customize their viewing experience.
- 8:55 - Demo
A walkthrough of both features together — switching a camping video to generated Italian subtitles marked with a sparkle, then customizing the subtitle style for readability.
- 10:20 - Next steps
Review best practices for integrating generated subtitles and style previews into your app to improve accessibility.