密级 | 公开 |
---|---|
版本 | 10D.2 |
AICP ASR 优化指南
#
1. 概述本文档描述 AICP-10 平台中 ASR 能力的动态优化资源的使用方法。
ASR 能力中的动态优化资源包括:
- 热词
- 敏感词
- 小语料优化模型
AICP 10 ASR 能力支持动态设置这些优化资源。设置方式有两种:
- 客户端通过 “统一资源管理接口” 上传资源并获取资源ID,然后在调用时在配置中指定资源ID。这类资源称为 “用户资源”。
- 通过 “管理后台” 上传资源,并配置到某一应用中,则成为此应用的默认优化资源。这类资源称为“系统资源”。
#
2. 优化资源介绍#
2.1 热词热词优化功能,是指用户可以通过接口上传热词词表(也称作个性化词汇,例如通讯录中的人名等),在识别时指定热词词表,ASR识别引擎在识别时,就会优先选取热词词表中的热词词汇。也可通过 “管理后台” 进行热词上传和应用缺省热词的配置。
目前热词分为三类:
- 权重修正类热词,对于热词在解码网络中建立新的路径或者修正其权重
- 文本替换类热词,检查结果文本,相同的就进行替换
- 音素替换类热词,检查音素序列,相同的就进行替换
权重修正类热词,会在解码过程中直接使用,遇到发音和热词词表中词汇的拼音差不多的时候,就会加强热词的权重,使得对应的词语识别为热词的几率就会大大提高,这些词汇更容易被识别出来。
而文本替换类和音素替换类热词都是在获取到解码结果之后,再根据原始结果是否匹配某些规则来进行替换的,因此只要匹配上总能输出结果。如果有多个替换类热词,那么文本替换类的热词优先于音素替换类热词,出现在词表前面的热词优先于词表后面的热词,不会优先选择长度更长的热词。
#
2.1.1 热词词表格式热词词表的内容中为 UTF-8 编码,有无 BOM 头均可。整体内容不能超过100K。
内容中包括多行,每行代表一个热词,每行内容不能超过 256 字节。如果行首为 '#',表示注释,不会进行解析。
每行定义的热词按照上述分类分别有自己的格式。不同类别的热词可以放在一个词表中,引擎会自动根据格式判断是哪一类热词。
#
2.1.2 权重调整类热词格式为:
热词 [标音] 权重
热词、标音、权重部分以空格或TAB字符隔开,标音内部也有空格,因此前后需要有[]和其他部分区分开。
#
2.1.2.1 热词热词可以是中文、英文或者中英文混、甚至可以有其它符号,但不能出现空格和 TAB 字符。
#
2.1.2.2 标音标音部分是可选的,如果没有标音,系统将会进行自动标音。如果出现一些多音字读法或者英文、符号等读法和系统自动标音不一致的情况,可以使用手动标音。
在手动标音时,中文的标音直接使用小写拼音+声调的方式,声调以1-5表示(1阴平 2阳平 3上声 4去声 5轻声)。英文可以用近似的中文拼音进行标注。(目前也可以用大写的英文音素进行标注,但由于比较复杂,并不推荐,将来会支持国际音标标注)。
同一个热词可以有多个标音,写成多行即可。
#
2.1.2.3 权重权重部分是可选的,表示热词概率修改的幅度。权重为整形值,范围是[-5,5]。大于等于0的权重用来增加该词语被识别的概率,小于0的权重用来减小该词语被识别的概率。缺省为1,一般使用缺省值即可,如果效果不明显可以适当增加权重,但是当权重较大时会影响其他词汇的识别,导致整体识别率反而降低。
对于一些不希望出现的词,可以考虑使用小于0的权重,但这些词需要在原始模型的词表中。在这种情况下,如果有手动标音会被忽略。
对于不在原始模型中的词,本来出现的概率就不大,因此目前并不支持降低这些词权重。
#
2.1.2.4 示例#
2.1.3 文本替换类热词格式为:
热词 (原始识别词汇)
当原始识别结果文本中有定义的词汇时,就会被替换成热词。原始词汇中有空格是不支持的,热词中有空格是支持的,但总是会按照原样输出,也即会把空格也作为最终输出热词的一部分。
文本的比较是不区分大小写的。
注意:这可用于替代之前版本的 map.list
。但这里的原始识别词汇并不像以前的 map.list
那样,需要在分词边界并且以空格隔开,原始词汇和热词也不需要分词数相等。
#
2.1.3.1 示例#
2.1.4 音素替换类热词格式为:
热词 ([标音])
音素替换类热词,表示当查找到识别结果中的音素序列和定义的热词音素序列相同时,就将原来的识别结果替换为热词。
当后面的小括号内如果没有内容,或者括住的内容又是方括号括住的标音,表示音素替换类热词。
当小括号中没有内容时,表示自动标音,否则表示手动标音。标音概念同前面的建网类热词。
音素比较时,受到 conf 文件中 ignore_tone
配置的影响。当ignore_tone
是 true
时,比较的时候将忽略拼音音素的声调。
#
2.1.4.1 示例#
2.2 敏感词敏感词的功能,是指用户可以通过接口上传敏感词词表,在识别时如果结果中出现敏感词,则会输出 "*" 屏蔽此敏感词。也可通过 “管理后台” 进行敏感词上传和应用缺省敏感词的配置。
本文档描述了AICP 10 平台中的敏感词管理接口。通过这里提供的 HTTP 接口,用户可以对敏感词词表进行增、删、改、查的操作,同时这里获得的敏感词词表ID,可以用于在识别时指定ASR服务所使用的敏感词词表。
#
2.2.1 敏感词词表格式敏感词词表的内容中为 UTF-8 编码,有无 BOM 头均可。整体内容不能超过100K。
内容中包括多行,每行代表一个敏感词,每行内容不能超过 256 字节。
#
2.2.1.1 示例#
2.3 小语料优化模型小语料优化模型的功能,也即用户可以通过接口上传小语料优化模型,在识别时指定此优化模型,则会在识别过程中使用此优化模型对识别结果进行优化。也可通过 “管理后台” 进行小语料优化模型上传和应用缺省小语料优化模型的配置。
小语料优化模型的内容由捷通华声公司定制提供,或者客户自己使用 “AICP ASR 本地训练平台” 自行进行训练后获得。
#
3. 资源管理接口客户端通过 “统一资源管理接口” 可以对上述的动态资源进行进行增、删、改、查的管理和维护操作。
统一资源管理接口如下:
添加资源
POST http://ip:port/v10/resource/user/asr/{type}?appkey={appkey}&userId={userId}
修改资源
PUT http://ip:port/v10/resource/user/asr/{type}/{resId}?appkey={appkey}&userId={userId}
查找资源
GET http://ip:port/v10/resource/user/asr/{type}?appkey={appkey}&userId={userId}&offset={offset}&limit={limit}
查看资源
GET http://ip:port/v10/resource/user/asr/{type}/{resId}?appkey={appkey}&userId={userId}
删除资源
DELETE http://ip:port/v10/resource/user/asr/{type}/{resId}?appkey={appkey}&userId={userId}
支持的 type
如下:
cu | type | 说明 | 系统资源 | 用户共享资源 | 用户独享资源 |
---|---|---|---|---|---|
asr | userword | 热词 | ✓ | ✓ | ✓ |
sensword | 敏感词 | ✓ | ✓ | ||
olm | 小语料优化模型 | ✓ | ✓ |
创建 ASR 动态优化资源时,有如下约束:
- 用户资源
- 用户热词
- 创建用户热词时需要提供用户标识
userId
,此标识由开发者自行定义,不超过64字节。 - 目前每个 userId 下面最多只能存储 10 套热词词表。
- 定义 "*" 为特殊的 userId,此 userId 下面存储的热词在同一个开发者下面是共享的,最多可以存储 100 套共享的热词词表。
- 不指定userId时,默认也为 "*",因此在不指定 userId的话,创建的都是用户共享资源。
- 不同的开发者下面的 userId 是独立的,即使名称相同,其热词词表也是不同的。
- 同一个开发者下面,userId 是在多个 appKey 下面共享的。如果希望不同 app 下的 userId 独立,请自行在 userId 上加入标识进行区分。
- 创建用户热词时需要提供用户标识
- 敏感词
- 创建敏感词表时不需要提供用户标识,敏感词表在同一个开发者下面是共享的,最多可以存储 100 套敏感词表。
- 小语料优化模型
- 创建小语料优化模型时不需要提供用户标识,小语料优化模型在同一个开发者下面是共享的,最多可以存储 100 套小语料优化模型。
- 用户热词
- 系统资源
- 创建系统资源时都不需要提供用户标识
- 热词、敏感词和小语料模型,在一个开发者下都是支持最多100个
具体的请求参数、请求消息和相应消息,请参见 《统一资源管理开发手册》。
note
AICP-10 D.1 之前的版本中,包括了单独的热词和敏感词管理接口,这些接口在 10D.1 之后已废弃。