这个项目能做什么

Premove ITN 是一个开源、上下文感知的逆文本规范化(ITN)库,专为英语语音代理转录设计。它可将口语化 ASR(自动语音识别)输出转换为结构化值的规范书面形式,例如电话号码、电子邮件地址、标识符、日期、时间、金额、度量衡以及字母数字代码。 Premove ITN 解决的核心挑战是口语的歧义性。例如,“one oh five”可能指标识符 105、时间 1:05 或完全不同的其他含义。传统的基于规则的系统无法总是确定说话者意图的解释。Premove ITN 通过使用上下文感知评分来选择正确的书面形式,从而解决了这一问题。 其架构遵循三步流程:生成、评分和解码。首先,基于 Rust 的实现层枚举口语文本片段的所有有效书面形式。其次,一个 DeBERTa-v3-large 上下文评分器(435.6M 参数)对转录进行一次编码,并根据上下文源片段、候选种类标签和提议的替换内容对每个候选进行评分。第三,一个精确的动态规划解码器在转录中找到得分最高的兼容路径,处理重叠候选。 支持的形式包括数字、数字序列、时间、日期、金额、小数、度量衡、序数词、电话号码、电子邮件和 URL、版本和标识符、标点符号以及缩写。该工具仅支持英语,不提供对非英语语音、街道地址、自由形式重写或任意应用特定格式的一流规范化。 在一个包含 1,500 行的冻结基准测试(其中包含 400 行的专用语音代理子集)上,Premove ITN 在语音代理子集上实现了 99.50% 的语义准确率,而 text-processing-rs 为 68.25%,NVIDIA Thutmose 为 67.00%。该基准测试是一个综合压力测试套件,已从训练和检查点选择中保留。 该工具以 Python 包(premove-itn)的形式在 PyPI 上分发,模型权重托管在 Hugging Face(premove-ai/premove-itn)上。当前版本为 v0.2.0。模型加载成本较高(初始化需数秒,首次下载约 1.6 GB),但热规范化调用速度快(在 Apple M4 MacBook Air 上平均热延迟为 56.49 毫秒)。 局限性包括仅支持英语、受确定性 Rust 实现器限制的规范化、拒绝超过 512 个 DeBERTa 令牌的输入,以及对 CUDA、Windows、macOS Intel、Linux ARM64 和其他加速器的支持未经验证。 源代码和模型权重采用 MIT 许可证。上下文评分器使用 microsoft/deberta-v3-large 作为其编码器骨干,Rust 实现层使用 text-processing-rs(Apache-2.0 许可证)。