daanzu/kaldi-active-grammar

Python Kaldi speech recognition with grammars that can be set active/inactive dynamically at decode-time

kaldi‑active‑grammar – Python용 동적 문법 음성 인식

무엇인가요

  • Kaldi ASR 엔진을 래핑하고 활성 문법 지원을 추가하는 Python 패키지입니다. 문법(명령어 문장 모음)은 각 발화마다 켜거나 끌 수 있어, 하류 시스템인 Dragonfly 또는 Caster가 현재 문맥에서 의미 있는 명령어만 듣도록 할 수 있습니다.

왜 중요한가요

  • 표준 Kaldi 디코딩 그래프는 정적이며 사전에 오프라인으로 컴파일해야 하므로, 문맥 기반 명령어 제어가 번거롭습니다. 이 라이브러리는 여러 작은 문법을 한 번만 컴파일한 후, 디코딩 시점에 조합하여 관련된 것만 활성화할 수 있게 해줍니다. 활성화된 규칙이 적을수록 혼란이 줄어들고, 인식 정확도가 높아집니다.

주요 기능 (README에 기재된 대로)

  • 바이너리 포함 – Windows, Linux, macOS용 플랫폼별 웨일이 필요한 Kaldi 네이티브 라이브러리를 포함하므로, Kaldi를 직접 빌드할 필요가 없습니다.
  • 사전 학습된 영어 모델 – 약 3000시간의 오픈소스 오디오로 학습 완료, 즉시 사용 가능; 모델 파일은 릴리스와 함께 배포됩니다.
  • 일반 문장 입력 모드 – 제공된 HCLG.fst 또는 번들된 모델을 사용해 자유형 음성 인식(문장 입력)으로 백업할 수 있습니다.
  • Dragonfly / Caster 백엔드 – 인기 있는 Dragonfly 명령 프레임워크(드래곤플라이 v0.15.0에서 업스트림 병합됨)용 Kaldi 엔진 구현 및 Caster 음성 제어 시스템(v0.6.0 이상) 지원.
  • 동적 활성화 API – 다음 발화에 활성화할 규칙 ID 목록을 제공하는 저수준 Python API; 빈 목록은 모든 규칙 비활성화, None은 이전 발화 상태를 유지합니다.
  • 발음 처리 – 오프라인 단어 생성용 옵션 G2P(g2p_en) 또는 requests를 통한 온라인 조회 가능.
  • 자체 포함 Windows 번들 – Python, 라이브러리, 모델을 포함한 zip 파일(kaldi‑dragonfly‑winpython*)로, "압축 해제 후 바로 실행" 경험 제공.

일반 워크플로우

  1. 웨일 설치: pip install kaldi-active-grammar (또는 pip install "dragonfly2[kaldi]"로 Dragonfly 백엔드 포함 설치).
  2. GitHub 릴리스 페이지에서 사전 학습된 모델을 다운로드하고, 라이브러리가 해당 디렉터리를 가리키도록 설정.
  3. Compiler/KaldiRule 클래스를 사용하거나, 더 편리한 Dragonfly의 규칙 구문을 통해 문법(규칙)을 정의.
  4. 각 발화마다 활성화된 규칙 ID 목록을 디코더에 전달하고, 인식된 규칙 텍스트를 수신.

빠르게 시작하기 (Windows)

  • kaldi‑dragonfly‑winpython zip 번들을 하나 다운로드하여 압축 해제하고, 제공된 데모 스크립트를 실행하세요. 별도의 Python 또는 Kaldi 설치가 필요 없습니다.

설치 참고 사항

  • 64비트 Python 3.6 이상 필요.
  • Windows에서는 VC 2017+ 리디스트리뷰터(VCRUNTIME140.dll)가 필요할 수 있습니다.
  • 소스 배포판은 제공되지 않으며, 바이너리 웨일을 사용하거나 문서에 기재된 포크를 통해 Kaldi를 직접 빌드해야 합니다.

문서 및 리소스

  • 아키텍처docs/kaldi-fork-architecture.md
  • 소스에서 빌드하기BUILDING.md
  • 테스트TESTING.md
  • 예제examples/ (일반 문장 입력, 실시간 마이크, 혼합 명령/문장 입력)
  • Dragonfly 통합 가이드 – README 및 Dragonfly 문서에서 링크됨.

누구를 위한가요

  • 문맥에 따라 명령어 세트가 필요한 음성 제어 데스크톱 애플리케이션을 개발하는 개발자.
  • 저지연 ASR에서 동적 문법 선택을 실험하는 연구자.
  • Windows, Linux, macOS에서 즉시 실행 가능한 Kaldi 기반 음성 인식기 원하는 애호가.

라이선스

  • AGPL‑3.0 (상용 사용 시 라이선스 준수 또는 저자와 별도 협의 필요).

위 모든 세부 정보는 리포지토리의 README에서 직접 인용; 추가 기능은 추측하지 않음.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트