Subtitles · 실시간 번역

내 언어로 된 자막을,
문장이 끝나기도 전에.

Subtitles는 Mac이 재생하는 것을 받아 적습니다. 1.3부터는 그걸 들어오는 대로 번역할 수도 있습니다. 듣는 열여섯 언어 중 어느 둘 사이든, 이 기기 안에서, Apple의 번역기로요. 번역하려고 밖으로 나가는 건 없고, 만들 가치가 있었던 형태는 이것뿐이었습니다.

  • 7일간 무료, 카드도 계정도 필요 없음
  • $19 1회 결제, 모든 업데이트 포함
  • 14일 이내 환불, 이유는 묻지 않아요
  • macOS 14.2 이상, Apple silicon용 다운로드
  • Gumroad 평점 5.0

영어로 진행되는 통화를 한국어로 읽습니다. 문장이 끝나기도 전에 Mac에서 번역돼요. ⌃ 키를 누르고 있는 동안에는 실시간 줄과 ⌥ 키로 불러온 모든 상자가 영어로 바뀌고, 키를 놓으면 번역으로 돌아옵니다.

앱에서와 마찬가지로 ⇧를 누른 채 캡션을 드래그하면 옮길 수 있습니다.

⌥ 키를 누르고 있으면 최근 상자 몇 개가 다시 쌓입니다.

메뉴 막대의 를 클릭하세요. 해보기 표시가 있는 항목은 모두 이 데모에서 작동합니다.

메뉴의 세 항목

번역할 언어는 언어 선택 아래에 있고 ‘끔’으로 시작합니다. 목표 언어를 고르면 다음 문장부터 캡션이 그 언어로 나옵니다. 바로 아래의 번역 타이밍은 문장을 아직 말하고 있는 동안 무엇을 볼지 정하는데, 알고 보면 설계 문제의 전부가 거기 있습니다.

두 언어 모두 표시는 ‘번역할 언어’ 안, ‘끔’ 바로 아래에 있고, 번역과 그 바탕이 된 말을 한 상자에 함께 싣습니다. 번역은 캡션으로, 원문은 그 아래에 더 작게요. ‘들을 소리’를 마이크로 돌려 두면 한 Mac 앞의 두 사람이 두 언어로 대화를 이어 가면서 서로의 말을 각자 자기 언어로 읽을 수 있고, 상대가 목표 언어로 말하면 방향이 저절로 뒤집힙니다.

세 번째 항목인 번역 읽어 주기는 문장이 확정될 때마다 번역을 소리 내어 읽어 줍니다. 목소리는 macOS에 그 언어로 설치된 것 중 가장 좋은 것을 씁니다. 건너뛰는 것도, 서두르는 것도 없습니다. 말이 빠른 사람을 목소리가 따라가지 못하면 말이 끊긴 사이에 따라잡아요. 읽는 동안 원래 소리는 음량이 4분의 1로 줄었다가 끝나면 돌아오니, 두 목소리가 서로 부딪치지 않습니다. ⌥⌘. 키를 누르면 읽기를 멈추거나, 마지막 줄을 다시 읽습니다.

VoiceOver가 실행 중이면 기본으로 켜져 있고, VoiceOver는 캡션 상자를 읽고 그 버튼도 누를 수 있으니, 다른 언어로 된 통화나 영화를 전혀 읽지 않고도 따라갈 수 있습니다. VoiceOver 자신의 음성은 캡션으로도, 번역으로도 옮기지 않고, 음량을 줄이지도 않습니다. VoiceOver 없이도 읽어 주게 하려면 ‘항상’으로 설정하세요.

마이크와 Mac 자체 스피커를 쓸 때는 말이 멈추기를 기다렸다가 번역을 읽고, 읽는 동안 누가 말해도 그 말은 그대로 캡션에 나옵니다. macOS가 통화에 쓰는 에코 제거가 마이크에 들어오는 소리에서 번역을 읽는 목소리를 걷어 내기 때문입니다. 헤드폰을 끼고 있으면 기다리지 않고 바로 읽어요.

그리고 읽을 수 있는 자리에 그대로 있습니다. 번역이 필요한 통화는 대개 통화 중에 일도 함께 하는 통화입니다. 같이 보고 있는 문서, 명세, 지금 서로 다투고 있는 디자인 같은 것들이요. 번역은 말을 하고 있는 앱 안이 아니라 모든 창 위의 오버레이에 뜨기 때문에, 일하던 쪽으로 넘어간다고 말을 놓치지 않습니다.

‘언어 / 모델’ 아래에 ‘번역할 언어’, ‘번역 타이밍’, ‘번역 읽어 주기’가 있는 Subtitles 메뉴
macOS 14에서는 세 항목 모두 흐릿한 게 아니라 아예 없습니다.

어려운 건 아직 끝나지 않은 문장

끝난 문장을 번역하는 건 빠릅니다. 이 하드웨어에서 40에서 125밀리초로, 누군가 그 문장을 말하는 데 걸리는 시간에 비하면 아무것도 아닙니다. 진짜 문제는 끝에 닿기 전 몇 초 동안 화면에 무엇이 있어야 하느냐이고, 모두에게 맞는 답은 없습니다. 그래서 둘을 두었고, 어느 쪽일지는 직접 고릅니다.

실시간, 끝나면 확정

마지막 1초 분량의 말이 갱신될 때마다 다시 번역되고, 자리를 잡을 때까지 흐리게 보입니다. 흐린 글자는 아직 바뀔 수 있고, 또렷한 글자는 끝난 것입니다. 대체로 가만히 있는 화면을 읽을 수 있는 대신, 가장 새로운 몇 단어는 임시로 보입니다. 실제로 임시니까요.

항상 실시간

갱신될 때마다 전부 다시 번역됩니다. 말하는 사람보다 뒤처지는 것도, 붙들어 두는 것도 없습니다. 대가는 이미 읽은 줄이, 문장이 그것을 바꾸는 단어에 닿는 순간 눈앞에서 다시 쓰일 수 있다는 점입니다.

둘 모두의 밑에는 고를 수 없는 규칙이 하나 있습니다. 번역되는 단위는 절 전체이지 상자가 아닙니다. 오버레이는 글자가 자리를 다 쓴 곳에서 페이지를 끊는데, 그건 대개 문장 한가운데입니다. 혼자 번역된 조각은 격이나 성 일치를, 또는 말하는 사람이 아직 닿지 않은 동사를 잃습니다. 그래서 번역하는 단위와 보여 주는 단위는 서로 다른 것이고, 페이지가 끊기는 자리는 이미 말이 되는 글 위에서 나중에 정해집니다.

가득 차서 넘어가는 상자는 넘쳐 버린 단어가 아니라 마지막으로 보여 준 절에서 다시 시작합니다. 뚝 끊기는 대신 다시 붙잡을 줄이 남는 거죠. 이게 중요한 건 상자가 빨리 넘어갈 때뿐입니다. 읽을 만큼 오래 머물렀던 상자라면 그 줄은 이미 보여 준 셈이니까요.

⌃ 키를 누르고 있으면 원문이 돌아옵니다

번역을 켜면 듣고 있던 것을 내주게 됩니다. ⌃ 키를 누르고 있으면 그게 돌아옵니다. 진행 중인 상자와 ⌥ 키로 쌓아 둔 상자가 둘 다 말하는 언어로 바뀌고, 키를 누르고 있는 딱 그만큼 그렇습니다. 보고 있는 동안에도 번역은 아래에서 계속 돌아가므로, 손을 떼면 떠날 때 멈춰 있던 화면이 아니라 지금의 문장으로 돌아옵니다. 그리고 언어마다 기록이 따로라 두 언어가 섞이지 않습니다.

그 언어를 배우는 사람에게는 이 방식이 딱 맞습니다. 흐름을 놓쳤을 때만 내 언어를 읽고, 나머지 시간에는 아무것도 누르지 않는 것.

모든 조합을, 영어를 거치지 않고

열여섯 언어는 순서를 따져 240쌍을 만들고, 전부 작동합니다. 여기서 번역이 인식기의 설정이 아니라 두 번째 단계인 이유가 그겁니다. 받아쓰면서 번역하는 모델은 영어로 가고 영어에서 오도록 학습돼 있어서 프랑스어에서 독일어는 영어를 거쳐야 하고, 이 언어들 중 몇 개는 아예 그 목록에 없습니다. 다 만들어진 글을 모든 쌍을 다루는 번역기에 넘기는 대가는 수십 밀리초이고, 아무도 빼놓지 않습니다.

자동 감지에서는 원본 언어를 인식기 자신의 언어 태그에서 가져옵니다. 인식기는 한두 단어면 그걸 압니다. 번역기에 문장마다 짐작하게 하지 않습니다.

여전히 Mac 밖으로 나가는 건 없습니다

소리는 애초에 나간 적이 없고, 번역된 글도 나가지 않습니다. macOS의 다른 기능들이 쓰는 것과 같은 기기 내 번역, 즉 Apple의 Translation 프레임워크를 거칩니다. 그러니 여기에는 서버도, 보관할 API 키도, 가져야 할 계정도 없습니다. 네트워크가 쓰이는 유일한 순간은 처음 쓸 때 macOS가 언어 쌍을 내려받겠느냐고 묻는 때뿐이고, 그건 macOS 자체 번역 기능에서도 하는 일입니다. 그 뒤로는 쌍이 디스크에 있고 더 가져올 것이 없습니다.

소리 내어 읽을 때도 모든 것은 Mac 안에 머뭅니다. 목소리는 macOS에 설치된 것이고, 소리로 바꾸려고 어디론가 보내는 것은 없습니다.

번역을 하든 안 하든, 대본을 저장하지 않는 한 아무것도 기록되지 않습니다. 번역된 캡션도 화면에 있다가 사라질 뿐, 번역되지 않은 캡션과 똑같습니다. 개인정보 페이지가 짧은 것도 늘 같은 이유에서입니다.

믿고 쓰기 전에 알아 둘 것

  • 이 기능에만 macOS 15 이상. Apple의 번역기가 거기서 들어옵니다. 14.2에서도 앱은 늘 하던 대로 전부 캡션을 붙이고, 세 항목은 흐릿한 게 아니라 메뉴에 없습니다.
  • 말한 것이 아니라 들은 것을 번역합니다. 인식기가 잘못 알아들은 이름은 잘못된 이름 그대로 충실히 번역됩니다. 오류가 두 번째 단계에서 상쇄되지는 않습니다. 정확도가 가장 중요한 자리에서는 자동 감지에 맡기는 대신 말하는 언어를 고정하는 것이 도움이 됩니다.
  • 사람이 쓴 자막이 있다면 그쪽이 낫습니다. 누군가 쓰고, 검수하고, 시간을 맞춘 번역은 매번 이 앱보다 낫습니다. 이건 그런 번역이 한 번도 없었던 소리를 위한 것입니다. 통화, 허들, 강의, 팟캐스트, 원래 음성 하나뿐인 영상.
  • 한 번에 한 방향. 목표 언어가 하나 있을 뿐 쌍이 아니어서, 두 언어가 오가는 통화도 내가 고른 그 하나로 번역됩니다. 실제로 무엇을 말했는지는 ⌃ 키로 봅니다.

번역에 대한 질문

어떤 언어들 사이에서 번역할 수 있나요?
캡션을 붙이는 열여섯 언어 중 어느 것에서 나머지 열다섯 중 어느 것으로든. 영어, 스페인어, 프랑스어, 이탈리아어, 포르투갈어, 독일어, 네덜란드어, 튀르키예어, 러시아어, 아랍어, 힌디어, 일본어, 한국어, 베트남어, 우크라이나어, 그리고 중국어입니다. 순서를 따지면 240쌍이고, 어느 것도 도중에 영어를 거치지 않습니다.
번역하려고 소리가 제 Mac 밖으로 나가나요?
아니요. 소리는 애초에 나가지 않고, 글자도 마찬가지입니다. 번역은 기기 안에서 작동하는 Apple의 Translation 프레임워크를 거칩니다. 처음 쓸 때 macOS가 언어 쌍을 내려받겠느냐고 물을 수는 있는데, 자기 번역 기능에서도 하는 일입니다. 그 뒤로는 쌍이 디스크에 있어요. 앱이 여전히 할 수 있는 요청은 하루 한 번 자기 새 버전이 있는지 확인하는 것과, 키를 넣은 뒤로 한 달에 한 번 라이선스 키를 확인하는 것, 이 둘뿐이고, 버전 확인은 거절할 수 있습니다.
두 타이밍은 무엇이 다른가요?
‘실시간, 끝나면 확정’은 갱신될 때마다 마지막 1초 분량의 말을 번역하고 자리를 잡을 때까지 흐리게 둡니다. 또렷한 글자는 변화가 끝난 것이고, 흐린 글자는 아직 움직일 수 있습니다. ‘항상 실시간’은 갱신될 때마다 전부 다시 번역합니다. 말하는 사람보다 뒤처지는 건 없지만 화면의 무엇이든 다시 쓰일 수 있습니다. 읽기에 차분한 쪽이 ‘실시간, 끝나면 확정’이고, 한 문장도 뒤에 남기지 않는 쪽이 ‘항상 실시간’입니다.
원래 언어도 함께 볼 수 있나요?
⌃ 키를 누르고 계세요. 진행 중인 상자와 ⌥ 키로 쌓아 둔 상자가 둘 다 말하는 언어로 바뀌고, 키를 누르고 있는 동안 그대로입니다. 번역은 아래에서 계속 돌아가므로, 손을 떼면 떠날 때 멈춰 있던 화면이 아니라 지금의 문장이 보입니다. 언어마다 기록이 따로라 두 언어가 섞이는 일은 없습니다.
번역에는 어떤 macOS가 필요한가요?
macOS 15입니다. Apple의 Translation 프레임워크가 거기서 들어오기 때문입니다. 캡션 자체는 여전히 14.2에서 돌아가고, 거기서는 ‘번역할 언어’와 ‘번역 타이밍’이 흐릿한 게 아니라 아예 메뉴에 없습니다.
스트리밍 서비스의 자막과 같은 건가요?
아니요. 스트리밍 서비스는 누군가 쓰고, 검수하고, 시간을 맞춘 번역을 함께 내놓습니다. 그런 게 있는 자리에서는 그쪽이 더 낫습니다. 이건 그런 번역이 한 번도 없었던 소리를 위한 것입니다. 통화, 허들, 강의, 팟캐스트, 원래 음성 하나뿐인 영상.

열여섯 언어가 들어가고, 내 언어 하나가 나옵니다.

14일 이내 환불, 이유는 묻지 않아요

7일간 무료, 그 뒤 $19 1회 결제, 앞으로 나올 모든 업데이트 포함 · macOS 14.2 이상 · Apple silicon
그 Mac을 쓰는 동안 실시간 캡션을 무제한으로 씁니다. 사용 시간을 따로 사둘 필요도, 계정도, 구독도 없습니다.