dev.Log
CTC vs RNN-T vs Attention Seq2Seq 본문
음성 인식(STT)을 설계하다 보면 반드시 마주치는 질문이 있다.
“CTC, RNN-T, Attention(Seq2Seq) 중에 뭘 써야 하지?”
특히
- 글자 하나하나 실시간 자막
- 부분 결과가 덜 흔들리는 UX
- 지연(latency)이 중요한 서비스
를 만들고 싶다면, 이 세 가지 구조의 차이를 정확히 이해해야 한다.
이 글에서는 구조적 차이 → 실시간 관점 → 실서비스 선택 기준 순서로 정리해본다.
1. 한 줄 요약부터
- CTC
→ 가장 단순하고 빠른 실시간 STT의 기본형 - RNN-T
→ 실시간 + 문맥을 동시에 잡은 실서비스의 정답 - Attention 기반 Seq2Seq (Whisper 등)
→ 문장 품질은 최고, 하지만 실시간에는 부적합
2. CTC (Connectionist Temporal Classification)
구조
Audio → Encoder → frame-wise probability → CTC → Text
CTC의 핵심은 프레임 단위 예측이다.
음성 프레임마다 “이게 글자인지, blank인지”를 예측하고,
중복 제거 + blank 제거로 최종 문장을 만든다.
특징
- 입력(음성)과 출력(텍스트) 길이가 달라도 학습 가능
- 명시적인 alignment(정렬) 필요 없음
- 프레임 독립 가정
장점
- 지연(latency)이 매우 낮음
- 스트리밍 처리에 자연스럽다
- CPU 환경에서도 잘 동작
단점
- 반복 출력이 자주 발생 (안 안 안 녕)
- 문맥 이해가 약함
- partial 결과가 불안정할 수 있음
언제 쓰나?
- 실시간 자막
- 콜센터 STT
- 음성 명령 인식
3. RNN-T (Recurrent Neural Network Transducer)
구조
Audio → Encoder Text → Prediction Network (내부 LM) ↓ Joiner → Next token
RNN-T는 CTC + 언어 모델을 결합한 구조라고 보면 된다.
- Encoder: 음성 처리
- Prediction Network: 지금까지 나온 텍스트(문맥)
- Joiner: 둘을 합쳐 다음 토큰 결정
특징
- 프레임 스트리밍 가능
- 이전 토큰(문맥)을 고려
- partial 결과가 비교적 안정적
장점
- 실시간성과 정확도의 균형
- 반복 출력이 CTC보다 적음
- 대규모 실서비스에서 검증됨
단점
- 구조와 구현이 복잡
- 디코딩 튜닝 포인트가 많음
언제 쓰나?
- 모바일 STT
- 실시간 회의 자막
- 대규모 상용 STT 서비스
👉 Google, Apple, Amazon 계열 실시간 STT는 대부분 이 계열이다.
4. Attention 기반 Seq2Seq (Whisper)
구조
Audio → Encoder → Attention Decoder → Text
Whisper는 Transformer 기반 Seq2Seq 모델이다.
CTC처럼 프레임별로 문자를 찍는 게 아니라,
문장을 토큰 단위로 생성한다.
학습 방식
- Loss: Cross Entropy
- Teacher forcing 사용
- 이전 토큰을 보고 다음 토큰을 예측
특징
- Attention이 음성과 텍스트 정렬을 내부적으로 학습
- 언어 모델 성능이 매우 강함
장점
- 문장 완성도 최고
- 반복·누락 오류 적음
- 번역, 다국어에 강함
단점
- 토큰을 하나씩 생성 → 지연 큼
- partial 결과가 자주 바뀜
- 실시간 UX에 매우 불리
언제 쓰나?
- 녹취 후 전사
- 회의록 생성
- 배치 처리 STT
5. 핵심 비교 표
| 항목 | CTC | RNN-T | Attention Seq2Seq |
| 실시간성 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐ |
| 지연 | 매우 낮음 | 낮음 | 높음 |
| 문맥 이해 | 약함 | 중간 | 매우 강함 |
| partial 안정성 | 보통 | 좋음 | 나쁨 |
| 반복 출력 | 많음 | 적음 | 거의 없음 |
| 문장 품질 | 보통 | 좋음 | 최고 |
| 구현 난이도 | 낮음 | 중간 | 높음 |
6. 실서비스에서는 어떻게 쓰일까?
현실적인 구조는 보통 이렇게 간다.
[Streaming STT] → CTC / RNN-T → 실시간 자막, 부분 결과 [Post-processing / Batch] → Whisper → 최종 문장 보정
- 실시간 UX는 CTC 또는 RNN-T
- 최종 품질은 Whisper
👉 “한 모델로 다 해결”하려고 하면 실패할 확률이 높다.
7. 선택 기준 정리
- ms 단위 반응이 중요 → CTC
- 안정적인 실시간 서비스 → RNN-T
- 최고 품질 문장 → Attention Seq2Seq (Whisper)
- 모바일 / 엣지 환경 → RNN-T
- GPU 여유 없음 → CTC
8. 마무리 한 줄
실시간 STT는 시간축 모델(CTC, RNN-T)의 영역이고,
문장 품질의 끝판왕은 Attention 기반 Seq2Seq이다.
'인공지능' 카테고리의 다른 글
| A-law와 μ-law(뮤로우)의 차이점 정리 (0) | 2025.12.26 |
|---|---|
| 실시간 STT (0) | 2025.12.23 |
| DVC? (0) | 2025.12.23 |
| ONNX란 무엇인가? (0) | 2025.11.26 |
| 블랙웰(Blackwell) 아키텍처 (0) | 2025.11.26 |
Comments