导入:小信子语义云玩法 for widora (yfkkkk)


  • administrators

    widora小信子

    》 小信子语义云在widora上使用系列教程。

    小信子语义云官网

    目录

    1. 中文理解系统简介
    2. 小信子api简单介绍
    3. OpenXXZ for widora 源码说明
    4. 附录:小信子api文档

    中文理解系统简介

    1.1 中文理解流程图:

    image

    1.2 系统运作机制

    • 1.2.1 析词

    过程:汉字输入 》 直接转成仓颉内码 》 以仓颉内码转成相应概念码
    
    • ① 理解系统中,仓颉内码的作用(与一般汉字内码系统比较)有:
    
        a. 排序:仓颉字母相应于英文字母A~Z,因此排序极为方便,使资料的录入、储存和取用能有序化。
                 此点极为重要,因人智慧的高低,实不在资料量的多寡,而在大脑中网络索引的灵活度。
                 任何理解系统,若面对一堆无机无序的内码,就只能一笔笔的硬比,速度与效率上不免大打折扣。
        b. 意义:仓颉码本身即具意义,例如字首(相当于“部首”)“日”、“贝”、“言”、“鸟”、“卄”等,即分别具备了“光时”
                 、“钱财”、“语言”、“鸟类”和“植物”等基本讯息。
    
    
    • ② 概念分类

    image

        例如:"行"的15种概念分类:
        01.情状0A030408     02.时间0C030000     03.感源130D0300
        04.迹象1C050100     05.社会21070000     06.事务23100000           
        07.道德30000440     08.艺术36030140    09.意觉8F040600
        10.知价BE060E00     11.心理C6030340     12.体动C9000100
        13.意志F00603E0     14.处事F4010380    15.交易F7020740
    多一字处理:
        0A行不行/行吗            0C行将(0C) 
        13行为(13)/义行         (总词组库0101栏设义为2,0102栏设行为3)
        1C一(02)行            (数字+行)              
        21商行/五金行           (商品+行)              
        23行业(23)
        30品(30)行/德(30)行
        36行书(30)
        8F内行              (总词组库0102栏设为9)
        ※“在行”一词,因“在”字极通用,有可能要重析:如“他在行为上无重大过失。” 
        BE很行/真行	   (程度副词+行)
        C6游(C6)行/旅(C6)行      C9行走(C9)/爬(C9)行
        F0执(F0)行/履(F0)行      F4施(F4)行/举(F4)行
        F7营销(F7)/行贩(F7)
    
    • 1.2.2 析句

    析取句式:
        字符串转成概念码后,理解程序分析该字符串,得到相应句型。
        如主语+谓语、主语+谓语+宾语、或主语+谓语+主语补语等,及其属叙述、命令、否定或疑问等句式。
    析取参数:
        在剖析句式过程中,定义一缓冲区,记载相关参数,如你我他等称谓、速度、程度、时间、地点、
        物件或说者和小信子的情绪等。
    启动相应数据库:
        小信子的数据库,可大致分成四类:
        a.基本概念库
        b.应用概念库
        c.个人资料库
        d.总知识库
    
    • 1.2.3 回应

    句子分析完毕,则进入语言生成程序,这里处理相关参数(比对、读取、写入或转换、执行功能等),同时小信子以语言文字或表情、肢语、动作等回应。

    读取相关数据库:
            比对读取相关数据库,如上例查结构部位库0123飞行栏有无资料,有值则表有该功能或部位。
        其实对“鸟”、“雁”、“鹦”等概念而言,仓颉码的“鸟”HAF、“隹”OG已代表该主体可以飞行,这
        里介绍的是一般程序,如“桌子可以说话吗”等的常规处理。
    取相应回答句式:
            从常用句式库,取相应回答句式(每类有九种句式,处理你我他等各种人称、肯定否定、疑
        问命令等参) ,根据双方情绪、关系、场合,经过修辞程序后,再输出。
    输出表情、动作参数:
            根据回应内容,设定表情、肢语及动作参数,输出给图形系统。此模块完成后,举凡有工序
        者,如安装说明、食谱、园艺等,都可即时以动画显现;至于对话中的相关动作,如“你应该先
        放油,等油热了,再下绞肉快炒……”都可以动画辅助。
    
    • 1.2.4 各资料库功能

    基本概念库:
        如总词组库、总成语库、信人物库、信名人库,储存基本概念和人名。
    应用概念库:
        如结构部位库、体用因果库,是字及词义的深一层定义。
    个人数据库:
        如个人备忘、个人关系、个人物件、个人印象等,储存使用者相关讯息(在使用者允许下)。
    这相当于大脑中所储存的人物资料及所生成的相应索引和网络。其资料量愈大、索引愈繁、网
    络愈密者,则情感(或怨怼)益深。
    总数据库:
        如总地名库、总人物库、总诗词库、历代官制等等,小信子可直接取用,缺者可上网查询。
    析句例子:
        比如“鸟会飞吗”
            鸟:59000000(59为飞禽类,其中5910为走禽类不能飞)
            会:0A000001(会、能、可以……等均为同类,但非全同)
            飞:AA020020(AA为飘动类,AA02包括飞、翺、翔、翩等概念,后三者皆为“羽”旁,
                仓颉码SMM及AA类,表明该类概念为“羽翅的动作”。)概念“鸟”和“飞”均能啓动
                结构部位库中、记录第一栏为“鸟”的0123 “飞行”栏(此栏若有资料,标识主体
                可以某种飞行器,做“远距位移”。)
      另外,体用因果库的记录“鸟”也会被启动,以预测“鸟飞”的体用因果(输入句可能与此
    截然无关,然认知的背景资料不可缺此)。
    
    

    小信子api简介

    >
        前面已经介绍中文理解系统的原理。而下面要介绍的小信子api,即是中文理解系统的一
    个子模块应用界面,提供多种助手类服务。
        小信子云端理解服务引擎提供单一界面API,一次搞定天气、备忘、时间、交通、文化、
    饮食娱乐、理财、解问、聊天、搜图、健康、新闻百科、四则运算、外语翻译...等多个
    应用场景 API 对接工作,大大降低开发者研发时间与难度。
        小信子云端理解服务引擎不僅可依各领域需求來建立专业问答知识库、也可接入机器人、
    智能音箱、智能家居等设备,提供人工智能化服務。
    

    image

    小信子语义云 Alpha2(春晚机器人) Demo

    微信小信子公众号:
    ![微信公众号]
    0_1477499408728_8311b9b54508374a07a32baafd2b8e3bd9205d72.jpg

    OpenXXZ for widora 源码说明

    1. 源码仓库

    2. 源码编译:

    本工程使用Cmake构建。
        推荐使用Clion集成编译环境,git clone并直接打开源码根目录即可编译。
    

    CMakeLists.txt配置,此处根据自己的工具链位置修改:
    image

    CMakeLists.txt配置,各库文件和头文件,请根据自己的openwrt源码路径修改:

    没有错误,进度到100%即编译完成:

    3. 运行:

    ①会看到

    ②然后看到登陆讯飞,即可开始录音

    ③录音时会自动判断是否有效语音,最后显示回答语句。

    4. 源码目录:

    • OpenXXZ
      • App
        • OpenXXZ //编译完成的二进制文件
      • CJSON
        • cJSON.c //json解析
        • cJSON.h
      • Debug
        • Debug.h //调试用printf函数别名定义
      • Ifly //讯飞头文件目录
        • msp_cmn.h
        • msp_errors.h
        • msp_types.h
        • qisr.h
        • qtts.h
      • Libs
        • mips //讯飞mips库
        • x64 //讯飞x64库
        • x86 //讯飞x86库
      • NetUtil
        • HttpRequest.c //http请求
        • HttpRequest.h
      • OpenXXZ
        • XXZGlobal.h
        • XXZMain.c //widora小信子主函数
      • SoundCardDriver //声卡驱动
      • SoundUtils
        • Recognize.c //语音识别
        • Recorder.c //录音
        • SoundUtils.h //声音结构定义
      • Utils
        • TimeUtils.c //时间显示工具
          CMakeLists.txt //Cmake配置文件