Sobre el proyecto

Premove ITN es una biblioteca de normalización inversa de texto (ITN) de código abierto y consciente del contexto, diseñada para transcripciones de agentes de voz en inglés. Convierte la salida de ASR (reconocimiento automático del habla) en formas escritas canónicas para valores estructurados como números de teléfono, direcciones de correo electrónico, identificadores, fechas, horas, dinero, medidas y códigos alfanuméricos. El desafío principal que aborda Premove ITN es la ambigüedad del lenguaje hablado. Por ejemplo, 'one oh five' podría significar el identificador 105, la hora 1:05, o algo completamente distinto. Los sistemas tradicionales basados en reglas no siempre pueden determinar qué interpretación pretendía el hablante. Premove ITN resuelve esto mediante una puntuación consciente del contexto para seleccionar la forma escrita correcta. La arquitectura sigue un pipeline de tres pasos: generar, puntuar y decodificar. Primero, una capa de realización basada en Rust enumera todas las formas escritas válidas para tramos de texto hablado. Segundo, un puntuador contextual DeBERTa-v3-large (435,6 millones de parámetros) codifica la transcripción una vez y puntúa cada candidato basándose en el tramo de origen contextual, las etiquetas de tipo de candidato y la sustitución propuesta. Tercero, un decodificador exacto de programación dinámica encuentra la ruta compatible con mayor puntuación a través de la transcripción, manejando candidatos superpuestos. Las formas admitidas incluyen números, secuencias de dígitos, horas, fechas, dinero, decimales, medidas, ordinales, números de teléfono, correos electrónicos y URL, versiones e identificadores, puntuación y abreviaturas. La herramienta es solo para inglés y no proporciona normalización de primera clase para habla no inglesa, direcciones de calles, reescritura de forma libre o formatos arbitrarios específicos de aplicaciones. En un punto de referencia congelado de 1.500 filas con un subconjunto dedicado de 400 filas para agentes de voz, Premove ITN alcanza un 99,50% de precisión semántica en el subconjunto de agentes de voz, en comparación con 68,25% para text-processing-rs y 67,00% para NVIDIA Thutmose. El punto de referencia es un conjunto de pruebas sintético de estrés, excluido del entrenamiento y la selección de puntos de control. La herramienta se distribuye como un paquete de Python (premove-itn) en PyPI, con los pesos del modelo alojados en Hugging Face (premove-ai/premove-itn). La versión actual es v0.2.0. La carga del modelo es costosa (inicialización de varios segundos, ~1,6 GB en la primera descarga), pero las llamadas de normalización en caliente son rápidas (latencia media en caliente de 56,49 ms en Apple M4 MacBook Air). Las limitaciones incluyen soporte solo para inglés, normalización acotada por realizadores deterministas en Rust, rechazo de entradas de más de 512 tokens DeBERTa y soporte no validado para CUDA, Windows, macOS Intel, Linux ARM64 y otros aceleradores. El código fuente y los pesos del modelo tienen licencia MIT. El puntuador contextual usa microsoft/deberta-v3-large como su codificador base, y la capa de realización en Rust usa text-processing-rs (con licencia Apache-2.0).