피드로 돌아가기
Adding Gemma 4 speech recognition to a .NET desktop app: the llama-server sidecar that survived
Dev.toDev.to
AI/ML

llama-server Sidecar 도입을 통한 Gemma 4 온디바이스 음성 인식 구현

Adding Gemma 4 speech recognition to a .NET desktop app: the llama-server sidecar that survived

Maksim Demin2026년 5월 27일16advanced

Context

.NET 10 기반의 Windows 데스크톱 앱 Parlotype에 Whisper와 병행할 Gemma 4 로컬 음성 인식 엔진 추가 필요. 다양한 GPU 벤더 지원과 사용자 설치 편의성이라는 제약 사항으로 인해 단순 라이브러리 임베딩이 불가능한 상황 분석.

Technical Solution

  • llama-server를 Child Process로 구동하는 Sidecar 아키텍처 채택을 통한 런타임 독립성 확보
  • ONNX Runtime GenAI의 Per-layer embeddings 및 Variable head dimensions 미지원 제약 해결
  • Python sidecar 대비 설치 복잡도 제거 및 bitsandbytes의 Windows 호환성 문제 우회
  • LLamaSharp의 빌드 타임 커플링 문제를 HTTP 경계로 분리하여 단일 바이너리로 다양한 GPU 백엔드 지원
  • 기존 WASAPI capture 및 Silero VAD 파이프라인을 유지하며 ISpeechRecognizer 인터페이스 뒤에 새 엔진을 슬롯인하는 구조 설계
  • GGUF 포맷 활용을 통한 효율적인 모델 로드 및 VRAM 최적화 구현

1. 멀티 GPU 벤더 지원 시 라이브러리 직접 링크보다 프로세스 간 통신(IPC/HTTP)을 통한 격리 검토

2. 새로운 모델 도입 전 반드시 실제 배포 스택에서 End-to-End 벤치마크 수행

3. 설치 편의성을 위해 Python/WSL2 의존성을 제거한 단일 실행 파일 기반 배포 구조 설계

원문 읽기