프로젝트 소개

Premove ITN은 영어 음성 에이전트 대본을 위해 설계된 오픈소스, 컨텍스트 인지 역텍스트 정규화(ITN) 라이브러리입니다. 전화번호, 이메일 주소, 식별자, 날짜, 시간, 금액, 측정값, 영숫자 코드와 같은 구조화된 값에 대해 음성 ASR(자동 음성 인식) 출력을 표준 서면 형식으로 변환합니다. Premove ITN이 해결하는 핵심 과제는 음성 언어의 모호성입니다. 예를 들어, 'one oh five'는 식별자 105, 시간 1:05, 또는 완전히 다른 것을 의미할 수 있습니다. 전통적인 규칙 기반 시스템은 화자가 의도한 해석을 항상 결정할 수 없습니다. Premove ITN은 컨텍스트 인지 점수를 사용하여 올바른 서면 형식을 선택함으로써 이를 해결합니다. 아키텍처는 생성, 점수, 디코드의 3단계 파이프라인을 따릅니다. 첫째, Rust 기반 실현 계층이 음성 텍스트의 구간에 대해 모든 유효한 서면 형식을 열거합니다. 둘째, DeBERTa-v3-large 컨텍스트 점수기(435.6M 파라미터)가 대본을 한 번 인코딩하고 컨텍스트 소스 구간, 후보 종류 레이블, 제안된 대체를 기반으로 각 후보를 점수화합니다. 셋째, 정확한 동적 프로그래밍 디코더가 겹치는 후보를 처리하면서 대본을 통해 가장 높은 점수의 호환 경로를 찾습니다. 지원되는 형식에는 숫자, 숫자 시퀀스, 시간, 날짜, 금액, 소수, 측정값, 서수, 전화번호, 이메일 및 URL, 버전 및 식별자, 구두점, 약어가 포함됩니다. 이 도구는 영어 전용이며 비영어 음성, 거리 주소, 자유 형식 재작성, 임의의 애플리케이션별 형식에 대한 일급 정규화를 제공하지 않습니다. 전용 400행 음성 에이전트 하위 집합이 있는 1,500행의 고정 벤치마크에서 Premove ITN은 음성 에이전트 하위 집합에서 99.50%의 의미 정확도를 달성하며, text-processing-rs는 68.25%, NVIDIA Thutmose는 67.00%입니다. 벤치마크는 훈련 및 체크포인트 선택에서 제외된 합성 스트레스 스위트입니다. 이 도구는 PyPI의 Python 패키지(premove-itn)로 배포되며, 모델 가중치는 Hugging Face(premove-ai/premove-itn)에 호스팅됩니다. 현재 릴리스는 v0.2.0입니다. 모델 로딩은 비용이 많이 들지만(다중 초 초기화, ~1.6GB 첫 다운로드), 웜 정규화 호출은 빠릅니다(Apple M4 MacBook Air에서 평균 웜 지연 56.49ms). 제한 사항에는 영어 전용 지원, 결정적 Rust 실현자에 의한 경계 정규화, 512 DeBERTa 토큰보다 긴 입력 거부, CUDA, Windows, macOS Intel, Linux ARM64 및 기타 가속기에 대한 검증되지 않은 지원이 포함됩니다. 소스 코드와 모델 가중치는 MIT 라이선스입니다. 컨텍스트 점수기는 마이크로소프트/deberta-v3-large를 인코더 백본으로 사용하며, Rust 실현 계층은 text-processing-rs(Apache-2.0 라이선스)를 사용합니다.