以下描述了如何使用灵云KB能力。
1. KB简介
KB 键盘输入识别能力,支持中文,外文,韩文,日文等识别,同时支持多种键盘(T9,Qwerty以及容错键盘)以及多种输入模式(拼音,五笔,笔画等)。
2. 选择模块和能力
灵云目前可以提供本地端能力:
kb.local.* : 本地识别
使用本地的识别能力,需要基础模块hci_kb,以及hci_kb_local_recog模块。
3. 键盘识别
调用识别接口进行识别,识别接口支持设置输入模式,键盘以及返回结果数据大小等,示例代码如下:
char *gbk = "ad";
unsigned char *utf8;
GBKToUTF8((unsigned char*)gbk,&utf8);
errCode =
hci_kb_recog(nSessionId,pszRecogConfig,&queryInfo,&result);
free(utf8);
{
printf( "hci_kb_recog ret:%d\n",errCode);
return;
}
printf( "hci_kb_recog success\n");
PrintKbResult(result);
while (bReturnAll && result.
bMore)
{
errCode =
hci_kb_recog(nSessionId,pszRecogConfig,NULL,&result);
{
printf( "hci_kb_recog ret:%d\n",errCode);
return;
}
printf( "hci_kb_recog success\n");
PrintKbResult(result);
}
4. 用户自定义词条编辑
支持用户自定义词条的添加删除和遍历,调用示例如下:
{
printf( "hci_kb_udb_commit ret:%d\n",errCode);
return;
}
printf( "hci_kb_udb_commit success\n");
{
printf( "hci_kb_udb_delete ret:%d\n",errCode);
return;
}
printf( "hci_kb_udb_delete success\n");
目前只有中文和英文支持该接口,中文提交时还可以根据识别结果进行提交,示例如下:
errCode =
hci_kb_recog(nSessionId,
"inputmode=pinyin",&queryInfo,&result);
5. 编码转化
可以通过输入需要转化的模式,将字符串转化为键盘序列。目前日文不支持该接口。 如下:
char *gbk = "你";
unsigned char *utf8;
GBKToUTF8((unsigned char*)gbk,&utf8);
errCode =
hci_kb_conv(nSessionId,pszConvConfig,(
char*)utf8,&result);
free(utf8);
{
printf( "hci_kb_conv failed ret:%d\n",errCode);
return;
}
printf( "hci_kb_conv success\n");
{
}
6. 音节容错
中文识别支持音节容错设置,即可以将容易混淆的音节进行设置,以此提高输入的识别率。 如下:
char* b = "b";char *p = "p"; char *m = "m"; char *n = "n";
};
{
printf("hci_kb_fuzzy_syllable failed! errCode:%d\n",errCode);
return errCode;
}
printf("hci_kb_fuzzy_syllable success!\n");
设置时一般会考虑以下情况,一般会在输入法上让用户自行开启或关闭:
"zh", "z"
"ch", "c"
"sh", "s"
"n", "l"
"h", "f"
"r", "l"
"k", "g"
"ang", "an"
"eng", "en"
"ing", "in"
"iang", "ian"
"uang", "uan"
注意:KB_FUZZY_SYLLABLE这个结构体中pszSyllableOne和pszSyllableTwo的含义
比如:
表示将“z”模糊成“zh”
即输入拼音“zongguo”,可以得到“中国”(“zhongguo”)的结果