본문 바로가기
C.W.K.
Stream
Lesson 03 of 05 · published

'SwiftUI' 가 '스위트 트라이' 가 될 때

~10 min · transliteration, speechanalyzer, mixed-language, default-choice

Level 0불씨 없음
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"더 빠른 엔진이 틀린 답에 더 빨랐어."

넘어갈 뻔했던 업그레이드

macOS 26 에 SpeechAnalyzer / SpeechTranscriber 가 들어왔어. 완전히 온디바이스고, 관리할 모델 파일도 없고, 초기 벤치마크에선 클립당 WhisperKit large-v3-turbo 보다 3~10배 빨라. 숫자만 보면 이게 기본이어야 맞아. 그런데 아빠 말에는 아니야. 이유는 속도가 아니라 미묘한 언어 동작에 있어.

함정

ko-KR 로 돌리면 SpeechAnalyzer 가 문장에 박힌 영어 기술 용어를 한글로 음차해 버려. 한국어 문장 가운데 "SwiftUI" 라고 말하면 "스위트 트라이" 라고 적어. 순수한 한국어면 괜찮아. 그런데 아빠 말은 한국어 문법에 영어 프레임워크 이름(SwiftUI, WhisperKit, async, pasteboard)이 계속 엮여 들어가는 말이라 딱 안 맞아. 기술 명사가 죄다 머릿속에서 음차를 되돌려야 읽히는 한글 얼룩으로 나오거든. 빠르고 못 쓰는 게 아무것도 없는 것보단 낫지만, 느리고 맞는 것보단 못해.

말함 (한/영 혼합):     "SwiftUI 로 오버레이를 만들었어"
SpeechAnalyzer ko-KR:   "스위트 트라이 로 오버레이를 만들었어"   (음차됨!)
WhisperKit turbo:       "SwiftUI 로 오버레이를 만들었어"           (그대로 유지)

함정 둘 더, 그리고 판정

SpeechAnalyzer 는 SpeechTranscriber 하나당 로케일 하나만 물리고, 오디오 언어 식별도 안 해. 그래서 'Auto' 모드가 언어를 진짜로 감지하지 못하고 시스템 로케일로 주저앉아. 여기에 음차 동작까지 얹으면 결론이 분명해져. SpeechAnalyzer 는 훌륭한 두 번째 엔진이야. 단일 언어 받아쓰기의 빠른 경로고, 나중에 라이브 스트리밍 프리뷰를 올리기에도 좋고. 하지만 아빠의 섞인 말에는, 한국어 문장 속 영어 용어를 그대로 두는 WhisperKit large-v3-turbo 가 기본으로 남아. 제일 빠른 엔진이 곧 기본 엔진은 아니야.

남의 입력에서 나온 속도보다 네 입력에서 나온 정확도가 중요해. 벤치마크는 아무 클립에나 대고 엔진을 재. 그런데 너한테 중요한 건 클립에서 그 엔진이 어떠냐야. 5배 빠른데 네가 하루 종일 쓰는 바로 그 어휘를 뭉개는 엔진은, 정작 중요한 단위인 분당 쓸 수 있는 단어 수로 재면 더 느려. 리더보드 말고 네가 실제로 말하는 것에 맞춰 기본을 골라.
기본이 아니어도 넣어 둘 만한 건 넣어 둬. SpeechAnalyzer 는 탈락한 게 아냐. 두 번째 엔진이고, 말이 단일 언어인 데다 속도를 원하는 유저를 위해 설정에 넣어 뒀어. '기본이 아니다' 와 '아예 안 넣는다' 는 다른 판정이야. 어댑터 계층이 있으니까 둘이 서로 발목 안 잡고 같이 살 수 있고.

Code

엔진 선택이 유저가 누군지를 담아·swift
// 기본은 벤치마크 승자가 아니라 실제 유저의 말로 골라.
func defaultEngine(for speech: SpeechProfile) -> STTEngineID {
    // 아빠 말: 한국어 문법 + 영어 프레임워크 이름, 끊임없이 혼합.
    // SpeechAnalyzer ko-KR 은 영어 용어를 음차함 -> 이 말에는 안 맞음.
    if speech.isMixedLanguage {
        return .whisperKit          // "SwiftUI" 를 "SwiftUI" 그대로 유지
    }
    // 단일 언어에 속도가 우선이면 빠른 엔진을 골라 쓸 수 있음.
    return .appleSpeechAnalyzer
}

// 두 엔진 다 들어가 있음. 어댑터 계층 덕에 서로 발목 안 잡음.

External links

Exercise

네가 실제로 말하는 방식 그대로 문장 세 개를 써봐. '제대로 된 글' 에는 절대 안 쓸 코드 스위칭이랑 은어, 이름까지 넣어서. 이제 외래어를 전부 소리 나는 대로 음차하는 엔진을 떠올려. 네 문장 중 어느 게 망가질까? 범용 벤치마크가 그걸 잡아냈을까?
Hint
범용 벤치마크는 깨끗하고 단일 언어에 중간 격식의 문장을 써. 이중언어 기술자가 실제로 하는 말이랑은 전혀 달라. 그 어긋남이 핵심이야. 벤치마크에서 이긴 엔진이 네 실제 말에선 크게 질 수 있고, 그건 네 단어로 만든 테스트만 보여줘.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.