zoukankan      html  css  js  c++  java
  • UE4 集成讯飞听写插件

    搞了几天,有些坑记录一下。

    3个方面的知识需要学习

    1、制作UE4插件

    2、引入第三方库

    3、讯飞听写的api

     一看是参考 https://blog.csdn.net/u012793104/article/details/78067937

    http://doc.xfyun.cn/msc_windows/%E8%AF%AD%E9%9F%B3%E5%90%AC%E5%86%99.html

    API:http://mscdoc.xfyun.cn/windows/api/iFlytekMSCReferenceManual/qisr_8h.html 

     


    整个插件架构:录音 ->识别(讯飞语音听写,即上图架构)->本地转码 以显示

     主要需要了解的API:  QISRSessionBegin  需要你更改自己的参数,可以按照下载的案例改

    QISRAudioWrite: 搞懂这个才能明白整个讯飞识别功能的机制

    开发过程主要的问题表现为打印信息有时并不是中文,而是未转换的拼接字符串

    所以好好看了看 下载的案例,和API 经过不断调试才发现就是json的问题

    之前的代码 都是拼接所有 从 QISRGetResult获得的结果,然后最后一步转换,所以出现问题了.

     比如录入"床前明月光"

    {"sn":1,
    "ls":false,
    "bg":0,
    "ed":0,
    "ws":
    [
    {"bg":1,"cw":[{"sc":0.0,"w":"床"}]},
    {"bg":1,"cw":[{"sc":0.0,"w":"前"}]},
    {"bg":1,"cw":[{"sc":0.0,"w":"明"}]},
    {"bg":1,"cw":[{"sc":0.0,"w":"月光"}]}
    ]
    }
    {"sn":2,"ls":true,"bg":0,"ed":0,
    "ws":
    [{"bg":0,"cw":[{"sc":0.0,"w":"。"}]}]
    }

    如果结果为上面,则无法转换json以致原样输出,因为这是直接将两个json对象拼接了。

    {"sn":1,
    "ls":false,
    "bg":0,
    "ed":0,
    "ws":
    [
    {"bg":1,"cw":[{"sc":0.0,"w":"床"}]},
    {"bg":1,"cw":[{"sc":0.0,"w":"前"}]},
    {"bg":1,"cw":[{"sc":0.0,"w":"明"}]},
    {"bg":1,"cw":[{"sc":0.0,"w":"月光"}]}
    ]
    }

    这种情况就会成功输出中文。

    所以问题是 我获得的结果有时被加了一个句号,我想着应该是语法的缘故。

    所以我换了一个方法,先解析再拼接 解决了问题。

     ----

    ps:测试要时刻注意麦克风是否正常·,别搞自己

    下载地址:

    github:https://github.com/huzhongyidihao/XFPlugin

  • 相关阅读:
    OpenEuler下OpenSSL的安装
    《Unix/Linux系统编程》第四章学习笔记
    缓冲区溢出实验
    2.3.1测试
    鲲鹏服务器测试
    第六章学习笔记(20191213兰毅达)
    第五章学习笔记(20191213兰毅达)
    stat命令的实现-mysate(20191213兰毅达)
    反汇编测试(20191213兰毅达)
    OpenEuler树莓派基础实验
  • 原文地址:https://www.cnblogs.com/yuedongdeguangzi/p/9196957.html
Copyright © 2011-2022 走看看