dev.Log

CTC vs RNN-T vs Attention Seq2Seq 본문

인공지능

CTC vs RNN-T vs Attention Seq2Seq

초코푸딩 2025. 12. 23. 10:32

음성 인식(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)

구조

 
AudioEncoder TextPrediction Network (내부 LM)JoinerNext 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