越南语逆文本正则化模型是基于FunTextProcessing 开源代码库生成,用于越南语语音识别模型结果后处理中的逆文本正则化部分。
逆文本正则化(Inverse Text Normalization)和文本正则化(Text Normalization)是语音交互系统中必不可少的部分。逆文本正则化(ITN)广泛应用于语音识别结果的文本后处理模块,实现从口语域到书面域的文字的转换,使显示的文字更加符合人的阅读习惯。文本正则化(TN)广泛用于语音合成系统的前端数据处理。
当前被学术界和工业界广泛使用的逆文本正则化(ITN)和文本正则化(TN)系统有以下三大类。
多语言逆文本正则化和文本正则化系统示意图如下:
综合上述分析,我们选择利用基于语法的WFST方案,在ModelScope平台上开源包括中、英、日、韩、印尼等十多种不同语言的ITN规则。对于每一种语言的ITN&TN,由两大部分组成,一部分是Tagger, 另一部分是Verbalizer. Tagger的作用就相当于分类器,对于输入的文本利用不同类型的规则去Tag获得输入文本的类型。在Tag的过程中,主要根据WFST获得最短的路径。不同类型规则的权值是也会影响到Tag获得的输入文本的Tag类型。下图给出了利用WFST输入是"twenty three"情况下,利用最短路径获得输出“23”,而不是输出“20 3”的例子。
Verbalizer则是将parse和调序之后的tokens调用相关类型的Verbalizer输出,获得最后的结果。同时基于FunTextProcessing,开源了设计和生成这些ITN规则的工具。该工具提供了安装、测试、导出的python工具包。具体的使用方法可以参考FunTextProcessing中的README.md。
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
itn_inference_pipline = pipeline(
task=Tasks.inverse_text_processing,
model='damo/speech_inverse_text_processing_fun-text-processing-itn-vi')
itn_result = itn_inference_pipline(text_in='một trăm hai mươi ba')
print(itn_result)
由于此模型由基于该语种的ITN语法规则编译而成,可能会受限于现有语法规则覆盖不全,或多个语法规则相互冲突的情况。考虑到此局限,我们开源了ITN代码库,欢迎大家在我们的FunTextProcessing开源代码贡献更多语法规则或加入更多语言ITN规则。
此模型由基于该语种的ITN语法规则编译生成,无需训练数据。
输入文本数据分两类:
逆文本正则化输出结果后续可再做顺滑或纠错处理。
https://github.com/alibaba-damo-academy/FunASR/tree/main/fun_text_processing