Kaldi GoP 파이프라인 분석 및 Decodable 인터페이스 혼선

Source

  • Field Notes/ReturnZero/Daily Notes/Day 274. 2022-03-31.md

Summary

Kaldi 기반 GoP(Goodness of Pronunciation) 계산 파이프라인(그래프 컴파일, 얼라인먼트, 확률 행렬 생성)을 단계별로 추적하며 분석함. 특히 DecodableNnetSimpleDecodableAmNnetSimple의 차이, 그리고 GetOutput vs GetOutputForFrame 메서드 사용에 대한 코드 레벨의 혼란과 의문점을 기록함.

Key Points

  • GoP 계산의 핵심 단계: 68 번(그래프 컴파일), 911 번(강제 얼라인먼트), 12 번(GoP 값 계산)으로 구분하여 분석.
  • TrainingGraphCompiler 및 DecodeFST 생성 과정을 소스 코드 수준에서 추적.
  • 얼라인먼트 생성 시 align-compiled-mapped 스크립트와 FastDecoder의 역할 확인.
  • GoP 계산 시 분자/분모 계산 로직과 SplitToPhones를 통한 폰 레벨 특징 추출 과정 파악.
  • 핵심 의문점: DecodableAmNnetSimpleDecodableNnetSimple의 계층 관계 및 GetOutputGetOutputForFrame의 실제 동작 차이 명확화 필요.