企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 更新词典 [TOC] 更新词典,又被称为个性化热词上传,包括更新本地语法文件的词典,以及更新在线听写的词典。词典的内容格式及更详细调用说明,参考《MSC Reference Manual.html》中 SpeechRecognizer 类的 updateLexicon 函数介绍。 ### 在线听写词典 无论在哪一种语言中,不同的单词或字(word),或多或少,都会有相似的发音(pronounce)。尤其在汉语中,这种现象更普遍,如当一个人说 /zhang/ /s[h]an/ 时,对应的词语的组成,可能是 {张,章,彰,...} {三,姗,珊,...},这些文字的组合,在汉语的习惯中出现频率最高的,当然是“张三”了。 而在听写返回结果时,会结合上下文,把日常生活中,出现频率最高的词汇返回给客户端。这时,如果我们实际想要的结果并不是出现频率最高的词汇,如上文中我们实际要的是“张姗”——这样的情况在手机联系人信息中经常会出现,此时听写结果就不是我们想要的。这种情况下,我们可以通过上传个性化热词的方式,把在同样发音情况下,自己希望最优先匹配的词语告知语音云服务器。 个性化热词通过应用调用SDK函数上传时,影响的范围是,当前 APPID 应用的当前设备——即同一应用,不同设备里上传的热词互不干扰;同一设备,不同APPID的应用上传的热词互不干扰。另外,更新的热词仅对对应的语言区域(LANGUAGE)和方言(ACCENT)(在部份特殊场景,此两个参数可能被 "ent" 参数代替)生效,如果听写时指定了不同的LANGUAGE,ACCENT,或 "ent",则更新热词时,也应当指定对应的参数值。 如果需要一次上传热词,更新给当前APPID的所有使用设备,则可通过开发者平台网站上传应用级热词:[讯飞开放平台](http://www.xfyun.cn/services/voicedictation?tab_index=2)。 词典上传后,也会在语义理解(见后面章节)中生效。 ~~~ mAsr.setParameter( SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD ); // lexiconName 为词典名字,lexiconContents 为词典内容,lexiconListener 为回调监听器 ret = mAsr.updateLexicon( lexiconName, lexiconContents, lexiconListener ); ~~~ ### 离线语法词典 离线语法词典,旨在更新已构建的语法文件中某个规则里的内容,因此在更新时,需要指定识别资源路径,语法文件路径,语法列表(语法文件的语法名字)。 ~~~ mAsr.setParameter( SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL ); // 指定资源路径 mAsr.setParameter( ResourceUtil.ASR_RES_PATH, asrResPath ); // 指定语法路径 mAsr.setParameter( ResourceUtil.GRM_BUILD_PATH, grmPath ); // 指定语法名字 mAsr.setParameter( SpeechConstant.GRAMMAR_LIST, grammarName ); // lexiconName 为词典名字,lexiconContents 为词典内容,lexiconListener 为回调监听器 ret = mAsr.updateLexicon( lexiconName, lexiconContents, lexiconListener ); ~~~