gRPC 서버 구현 및 iVector 추출 파이프라인 분석 (2022-04-07)

Source

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

Summary

이 노트는 ReturnZero 프로젝트의 gRPC 서버 구현 과정에서 발생한 컴파일 오류(M1 Mac 환경)와 Kaldi 기반 iVector 추출 로직에 대한 기술적 고민을 기록한 일기 형식의 메모입니다. 핵심 문제의식은 ‘online-ivector’와 ‘ivector’의 데이터 구조(Matrix vs Vector) 차이와 feature_pipeline 내에서의 추출 메커니즘(ComputeOneFeature, ivector_period 등)을 명확히 이해하지 못해 구현이 막혀 있다는 점입니다. 또한 GRPC 출력을 위한 문장/단어/phone 수 정보 포맷 정의와 8kHz 기반 모델에 대한 입력 샘플링(down-sampling) 필요성도 논의되었습니다.

Key Points

  • gRPC 서버 개발 중 M1 Mac 환경에서의 C++ 컴파일 실패 및 Python 코드 미완성 상태
  • GRPC 출력 포맷 정의: sentence-id 기반의 단어 목록 및 각 단어별 phone 수 정보 출력
  • 입력 오디오 샘플링 레이트 불일치 문제: 학습 모델(8kHz) 대비 실제 입력의 down-sampling 필요성 확인
  • Kaldi iVector 추출 로직 분석: online-ivector(Matrix)와 ivector(Vector)의 역할 구분 및 feature_pipeline 내 추출 방식(ComputeOneFeature)에 대한 혼란
  • ivector_online.scp 및 ivector_period(기본값 10) 설정에 대한 관찰과 final.ie.id 추출 과정 기록