自从Android系统转到ios开发,一个季度的时间过去了。在这段时间,从接手的程序大面积各种闪退,到一个月后的基本稳定(发布两个版本),也得到了领导的认可,但是对于新功能,我也智能硬着头皮来,比较UI这一块对我来说实在是蛋疼无比,各种折腾,尤其是对storyboad和xib的原有内容真是束手无策。后来公司又来了一个工作三年的同事,对界面的处理也是经验丰富,从此我就从痛苦中走出来了。当然坑是永远填不完的,人生就是从不断的填坑中消磨意志。

由于工作的需要,最近集成讯飞的AIUI,文档的完整性实在是不敢恭维。关于界面的问题,我只能交给处理那个对UI牛逼的哥哥处理了,我只能看看逻辑方面的问题,下载并运行了demo后,启动语意理解,无法收到应答。还好有好心的群里才了解到要配技能,如下图勾选“语意”,还得点击“语意”按钮

以上内容完成后,亲测果然好使,一切感觉在自己的掌握中。可是当集成到自己app中,那么问题来了,把各种文件提到我们的app,发现各种错误,20个,什么概念,天啊!肯定是那里出了问题,具体在什么地方呢,通过查看才发现是我们自己的pch文件没有处理c++ 、object-c混编问题。通过在 pch文件添加代码(如下)

#ifdef __OBJC__

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

#endif

报错问题解决,运行起来了后,看看需求需要发送文本,语音都能发送,文本还能远吗?结果一看傻逼了,文档中没有说啊。发送文本也尝试过了,直接修改

const char *buffer = "新闻";

AiuiSendBuffer(buffer,sizeof(buffer) ,false);

发现没法监听,什么鬼!心里发慌,不会连文字都发送不了吧。看了下android代码,比ios清晰多了,能发语音也能发文本,我是不是转错行了,算了,看了下demo,发现IFlyTextUnderstander 这个类不错,跳到头文件,能实现我们的功能。然后就这样处理了,可是问题来了,我们需要后处理的数据啊(后处理比较恶心,后台配置了url和token,url没法保存,token每次都在变化,实在没办法,只能联系讯飞的开发者,后来把我们的账号和url信息发送给他们才处理好了,这明显不科学啊),后台配置好后,前端无法收到我们的后台返回来的数据,开始方了,明明都好了怎么不行呢,后来找老大,这个没法处理啊,讯飞的人员也没有给我们一个合理的方式来处理啊,只是说后台直接response就可以了。我们的后台开发还一直在追问java中的response是什么,我一看这人家说的就是直接回复就可以了嘛。可是前端收到的数据还是讯飞的,我们自定义的没有啊。查看论坛,才看到他们的返回分了几种情况。1.nlp(讯飞默认的) 2.ars(没关注) 3.tpp(后处理的数据),原来是这样啊!我的天!!IFlyTextUnderstander这玩意儿没法后处理啊,怎么办只能切换AiuiSendBuffer发送数据了,可是怎么发送文本呢,前面没调试通啊,好好看代码吧!果然

void AiuiSendBuffer(const void *buffer ,int size , bool isEnd)

{

//whether or not this is the last data

if(isEnd){

//set the flag of last data

IAIUIMessage * stopWrite = IAIUIMessage::create(AIUIConstant::CMD_STOP_WRITE,

0, 0, "data_type=text,sample_rate=16000");

m_angent->sendMessage(stopWrite);

stopWrite->destroy();

}

else

{

//send audio data

Buffer* pcmBuffer = Buffer::alloc(size);

memcpy(pcmBuffer->data(), buffer, size);

NSString *params = [[NSString alloc] initWithFormat:@"data_type=audio,sample_rate=16000"];

以上代码中设置参数有问题,只需要将data_type=audio,替换为 data_type=text,亲测后发现可以发送问题。问题解决,可是如何接收后处理的数据呢,上面说了有个情况就是tpp,通过判断sub=“tpp”,就可以接收到后处理的数据了,只需要一个if(sub==“nlp”){} else if(sub=="tpp"){} 就可以搞定,讯飞的机制是讯飞自己的和后处理的两个都会返回,且每次都是讯飞的数据优先发送到客户端。所以需要判断有没有tpp,如果有显示tpp的数据,没有那就显示nlp的数据,由于我们是新闻类的app,需要后台返回内容详情的数据,可是每次接收到的数据是不完整的json,可见讯飞对数据的长度是返回是有要求。具体多少没有去查看,设置一个合理的值就可以了。就这样,基本完成需求!

讯飞 AIUI 集成相关推荐

  1. 讯飞AIUI集成语音语义的21003错误

    昨天尝试着使用了一下科大讯飞的AIUI,主要是使用其中的语音语义理解,在使用的过程中碰到了一个21003的错误,也就是初始化失败.找了好久问题出现在哪里,最后发现是由于自己的粗心大意,就是缺少了这一关 ...

  2. 讯飞AIUI平台语义理解配置全攻略——以Android版AIUI SDK为例

    讯飞AIUI可以进行语音识别与语义理解, 首先进入讯飞AIUI开放平台,然后点击上方的应用接入,点击进入应用. 然后点击创建应用,选择自己需要创建的应用即可,我这里以Android应用为例. 在左侧选 ...

  3. Android基于讯飞AIUI的聊天Demo

    基于讯飞AIUI实现一个AI聊天Demo,首先在AIUI开放平台创建应用,做下简单配置,勾选想要的语义技能,记得保存修改 然后选择点开发工具,选择下载对应的SDK 应用信息里有appid,回头下载de ...

  4. unity接入讯飞AIUI(Windows SDK)

    一.什么是AIUI AIUI 是一套人机交互解决方案,整合了语音唤醒.语音识别.语义理解.内容平台.语音合成(比普通的语音合成多一个发音人)等能力. 新用户有20个免费的装机量,每天有500交互次数 ...

  5. 讯飞AIUI语音初体验

    集成SDK       近期使用科大讯飞AIUI开发一款智能语音灯控项目,因此在这记录一下我的心得,写的不好忘各位大佬见谅,不喜勿喷呐,下面就像大家介绍一下我的使用心得,注册讯飞账号,添加项目这些个常 ...

  6. java Web api接入讯飞aiui(1)

    创建应用 目标: 开发一个语音交互技能,可以让用户订票 创建号技能后点击进去创建意图,意图创建好后不可刪除,一个技能可以有多个意图,一个意图有多个语料 aiui技能文档 链接: https://doc ...

  7. 讯飞语音集成(语音转文字,文字转语音)

    语音听写SDK适配安卓6.0需要手动申请权限 关于语音听写SDK的开发,参考科大讯飞开放平台官网为准 在百度搜索讯飞科技开放平台,自己注册账号 自己创建一个新应用 在控制台界面创建完应用,然后选择SD ...

  8. Android讯飞语音集成【语音评测3】

    前言: 语音评测(SpeechEvaluator): 通过智能语音技术自动对发音水平进行评价.发音错误.缺陷进行定位和问题分析.目前评音评测提供汉语.英语两种语言的评测,支持单字(汉语专有).词语 和 ...

  9. Android讯飞语音集成【在线语音合成2】

    前言: 语音合成: 与语音听写相反,语音合成是将一段文字转换为语音,可根据需要合成出不同音色.语速和语调的声音,让机器像人一样开口说话 效果图: 2.直接上代码,配置不再重复说明了: ①.TTSAct ...

最新文章

  1. 5300亿参数,SOTA屠榜!最大NLP预训练模型新王登基,微软英伟达联手称霸
  2. 无休止加班的真正原因!你们公司是这样吗?
  3. 岗位推荐 | 腾讯AI Lab多媒体算法组招聘正式员工和实习生
  4. 实验二 初始化阶段-source.c
  5. Couchbase 2.0归类视图简介
  6. $.extend()和(function($){….})(jQuery)
  7. 红帽linux怎么装文件夹,红帽linux怎么安装第三方字体?
  8. 变通实现微服务的per request以提高IO效率(三)
  9. 【备忘】Windows的命令行下设置网络代理
  10. java案例代码16-java正则表达式的使用
  11. ie以及ie内核浏览器连不上网,其他浏览器可以,部分软件连不上网的解决办法
  12. 米的换算单位和公式_英寸和厘米的换算、英尺和米的换算及英寸和毫米的单位换算公式...
  13. 你可能不知道的关于Oracle Rac的事...
  14. 面向对象的封装,继承,多态。
  15. Java中合并多个视频文件转换一个新的视频
  16. 内网环路怎么解决_利用生成树协议巧妙解决局域网二层环路
  17. tftp 服务器搭建测试版本ubuntu14.04
  18. python 使用sql查询数据库返回空集判断
  19. 达芬奇调色软件DaVinci Resolve15破解版
  20. 三十九、Fluent时间步长的估算与库朗数

热门文章

  1. 微信公众号模板消息管理
  2. Google Drive(谷歌网盘)下载超大文件方法
  3. samba 配置文件详解
  4. android时钟每秒 1,极简时钟
  5. 腾讯AI加速器招募再启,AI开放既是工具箱也是方法库?
  6. 【092】召唤神龙-指尖大鱼吃小鱼的魔性游戏
  7. 信号量sem_wait()函数的学习
  8. 木瓜移动再度荣获2022“Google优秀合作伙伴”
  9. OpenHarmony LiteOS C-SKY指令集移植指北
  10. Basset: learning the regulatory code of the accessible genome with deep convolutional neural network