Triton-Kaldi gRPC 연동 및 온라인/오프라인 디코딩 아키텍처 비교

Source

  • Field Notes/ReturnZero/Daily Notes/Day 196. 2022-01-12.md

Summary

Triton Server를 통해 Kaldi ASR 모델(Sommers)을 호출하는 gRPC 클라이언트 구현 과정에서 발생한 파일 형식(m4a→wav), 샘플링 레이트(8kHz), 입력 차원(8160) 관련 오류를 해결하고 스트리밍 추론을 성공시켰다. 이후 온라인 디코딩(online2)과 오프라인 디코딩의 코드 구조 차이(LatticeFasterDecoder vs BatchedThreadedNnet3CudaOnlinePipeline)를 분석하며, 기존 vito-kaldi와 triton-kaldi 간 파이프라인 및 iVector 추출 방식의 차이를 검토하고 오프라인 전환 가능성을 탐색했다.

Key Points

  • Triton gRPC 클라이언트 라이브러리 변경(tensorrtserver → tritonclient.grpc) 및 스트리밍 방식 적용으로 추론 성공
  • Sommers 모델의 8kHz 학습 특성과 입력 차원(8160) 불일치로 인한 오류 발생 및 ffmpeg를 통한 wav 변환 해결
  • Kaldi online2 디코딩 API(InitDecoding/AdvanceDecoding)와 오프라인 Decode() 호출 방식의 차이 분석
  • vito-kaldi(OnlinePipeline)와 triton-kaldi 아키텍처 비교를 통한 iVector 추출 및 파이프라인 구성 요소 검토
  • 온라인 스트리밍 처리에서 종료 신호 처리 문제 및 오프라인 배치 처리 전환 필요성 제기