关于几个主流语音SDK的接入问题
这两周都在忙着游戏上线还有接入游戏语音,两周分别接了腾讯语音和百度语音!!!
关于腾讯语音的一些问题
由于发现腾讯语音的在录完音频后的数据是编过码的所以出现了一些问题:
*不能解码(腾讯方不提供解码算法,能理解),所以导致不能以MP3原有的格式数据传到服务器
*版本兼容问题 因为游戏已经上线所以旧的语音数据可以说不能再播放了
其实不能解码的问题已经解决,可以将pcm数据传给服务器 在客户端接受后通过腾讯的播放接口来播放编过码的数据(而且验证了一下离线也能播放的)
但兼容问题就不行所以放弃了腾讯语音的接入(上上周的工作白费),转投接入百度语音!!!
关于百度语音的一些问题
由于可以真机调试所以提高了工作效率!!!
关于接入百度语音的一些思考:

由于之前接的平台是讯飞所以为保证假设接完百度后如果出错,还有讯飞这条腿可以抱住,所以在lua层加了开关(在通信层加了选择判断)
这样就可以实现切换了!!!
Android遇到的问题:
主要还是遇到某些接口必须在对应线程调用,比如在监听识别时需要将接口在android主UI线程做调用在回调时(游戏使用cocos2dx开发)需要在GL线程做回调
避免崩溃!!!
//调用监听在主ui线程
Cocos2dxActivity _mainActivity = (Cocos2dxActivity)Cocos2dxActivity.getContext();
_mainActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
// 每次启动录音时设置录音参数
m_yyRet = "";
m_isListening = true;
Intent it = setRecordParm();
speechRecognizer.startListening(it);
}
});
//回调在GL线程
Cocos2dxActivity _mainActivity = (Cocos2dxActivity)Cocos2dxActivity.getContext();
_mainActivity.runOnGLThread(new Runnable() {
@Override
public void run() {
BDSpeechEngineAndroid.nativeOnSpeechEndOfSpeech(ret, s_SpeechSavePath);
}
});
IOS遇到的问题:
* 对oc的代码的不熟悉导致NSData在解析完后是一个NSArray类型 我用NSString 直接去赋值导致一直报错
* 就是IOS不能指定对应的pcm文件保存路径所以要保存音频格式需要在回调是做一个数据的append等完成是将数据保存至指定路径
* 就是开始识别后到识别结束游戏声音没有了我还以为自己出了bug,后来看百度官方的解答(由于对底层的音频逻辑不熟,这个问题暂时还没解决):

每周都写一篇总结一下这周的工作,还是挺好的!!
关于几个主流语音SDK的接入问题的更多相关文章
- Android 讯飞语音听写SDK快速接入(附空指针解决和修改对话框文字方法)
1.账号准备工作 首先要有一个讯飞的账号啦,为后面申请APPID.APPKey等东西做准备.顺带一提:讯飞对不同认证类型用户开 放的SDK的使用次数是有不同的,详情如下图. 账号申请完成后,需要去你自 ...
- BaiduSpeechDemo【百度语音SDK集成】(基于v3.0.7.3)
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本Demo将百度语音SDK(其中一部分功能)和自定义的UI对话框封装到一个module中,便于后续的SDK版本更新以及调用. 本De ...
- U8SDK——游戏接入SDK(只接入抽象框架)
上一篇文章我们说了整个U8 SDK抽象成的设计,那这篇文章,我们就来验证一下,他是否如我们期待的那样,简单灵活. 正如之前所说,对于每个游戏,只需要接入抽象层,而每个渠道SDK的接入,就是该抽象层的一 ...
- BaiduSpeechDemo【百度语音SDK集成】(基于v3.0.8.1)
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 上一篇集成的是V3.0.7.3版本的SDK<BaiduSpeechDemo[百度语音SDK集成](基于v3.0.7.3)> ...
- 继《关于讯飞语音SDK开发学习》之打包过程中遇到小问题
关于讯飞语音SDK开发学习 使用vs自带打包,具体怎么操作就不说了,网上关于这方面的资料挺多的.例如:winform 打包部署,VS2010程序打包操作(超详细的),关键是桌面上创建快捷方式中的&qu ...
- 关于讯飞语音SDK开发学习
前奏,浑浑噩噩已经工作一年多,这一年多收获还是挺多的.逛园子应该有两年多了,工作后基本上是天天都会来园子逛逛,园子 里还是有很多牛人写了一些不错的博客,帮我解决很多问题.但是一直没写过博客,归根到底一 ...
- 接入百度语音SDK的步骤
1.导入依赖库 SystemConfiguration.framework AudioToolbox.framework UIkit.framework AVFoundation.framework ...
- 讯飞语音SDK Android平台使用
1. 支持功能介绍: 2. Android API主要业务接口和流程介绍 -------------------------------------------------------- 工程代码: ...
- QQ登录-第三方SDK的接入总结(搜索 qq互联)
由于项目的需要,使用了[QQ登录]SDK 的相关功能! 1.集成[QQ登录]SDK [QQ登录]SDK下载地址: http://wiki.open.qq.com/wiki/website/SD ...
随机推荐
- 使用Monit监控本地进程
目前用它监控某些服务,失败自动重启,同时监控特定的日志文件,如果有变化,就发邮件报警 安装不细写了,网上好多 我先用cat /proc/version看了下我的系统是el6的,于是wget http: ...
- DailyTick 开发实录 —— 开始
2009 年我读了李笑来老师的<把时间当朋友>,知识了柳比歇夫的时间记录法.当时激动坏了,马上动手实践起来.一开始的时候,是用一个小本子,走到哪儿都带着.完成一件事,就记录一下花费的时间. ...
- iOS开发系列--打造自己的“美图秀秀”
--绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...
- InnoDB关键特性学习笔记
插入缓存 Insert Buffer Insert Buffer是InnoDB存储引擎关键特性中最令人激动与兴奋的一个功能.不过这个名字可能会让人认为插入缓冲是缓冲池中的一个组成部分.其实不然,Inn ...
- PHP中遍历XML之SimpleXML
简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言.XML是当今用于传输数据的两大工具之一,另外一个是json. 我们在PHP中使用XML也是用来传输数据, ...
- Mysql命令大全
格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输 ...
- 《如何使用Javascript判断浏览器终端设备》
WEB开发中如何通过Javascript来判断终端为PC.IOS(iphone).Android呢? 可以通过判断浏览器的userAgent,用正则来判断手机是否是ios和Android客户端. va ...
- 微信小程序体验(1):携程酒店机票火车票
在 12 月 28 日微信公开课上,张小龙对微信小程序的形态进行了阐释,小程序有四个特定:无需安装.触手可及.用完即走.无需卸载. 由于携程这种订酒店.火车票和机票等工具性质非常强的服务,非常符合张小 ...
- RMS Server打开或关闭日志记录
原文: https://technet.microsoft.com/zh-cn/library/cc732758 在 Active Directory Rights Management Servic ...
- Android Fragment 剖析
1.Fragment如何产生?2.什么是Fragment Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视.针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后 ...