GOP(Kaldi) 구현 준비 및 GRPC 프로토콜 설계

Source

  • Field Notes/ReturnZero/Daily Notes/Day 278. 2022-04-04.md

Summary

이 노트는 Kaldi 기반 GOP(Goodness of Pronunciation) 시스템 구현을 위한 전제 조건 파악과 GRPC 인터페이스 설계 과정을 기록한다. 핵심 작업은 compute-gop 실행에 필요한 입력 파일(final.mdl, tree, phone 매핑 등)의 필수 여부 선별, nnet2/nnet3 아키텍처 차이 분석, 그리고 GRPC를 통한 스트리밍 음성 인식 및 GOP 점수 반환을 위한 Protobuf 정의 계획 수립이다. 또한 Wake Word Detection 과의 연관성(FST 기반 발음 검사)을 고민하며, 서버 간 통신 구조와 클라이언트-서버 모델의 차이에 대한 의문점을 남긴다.

Key Points

  • GOP 계산에 필요한 Kaldi 입력 파일(final.mdl, tree, phone-to-pure-phone.int 등)의 필수/비필수 항목 분류 완료
  • GRPC 기반 GOP 서비스의 Input/Output 스펙 정의: 입력은 utt-id, waveform, config; 출력은 GOP score vector 및 feature vector
  • nnet2(NnetComputation 함수)와 nnet3(NnetComputer 클래스)의 구현 구조 차이로 인한 이해도 부족 확인
  • Wake Word Detection 이 FST 기반 발음 검사와 유사한 맥락임을 인지하고, word key 별 FST 저장 및 logprob 계산 방식(map vs matrix) 고민
  • 수요일까지 GRPC Protobuf 정의 완료 목표 설정