接入百度语音SDK的步骤

1.导入依赖库

SystemConfiguration.framework

AudioToolbox.framework

UIkit.framework

AVFoundation.framework

Foundation.framework

libz.tbd

Security.framework

QuartzCore.framework

CoreText.framework

GLKit.framework

OpenGLES.framework

CoreLocation.framework

CFNetwork.framework

CoreGraphics.framework

注意还要导入依赖库:CoreTelephony.framework

2.需要包含的SDK文件有:

从开放平台下载的包里面的

Headers文件夹、Third Part文件夹、还有..resources文件夹(tone和scheme)、还有.a静态库文件

3.将工程的bitcode设置为NO

4.build Setting里面设置other linker flags为-ObjC

示例Demo:

#import "ViewController.h"

#import "BDVoiceRecognitionClient.h"

@interface ViewController ()<MVoiceRecognitionClientDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

}

- (void)viewWillDisappear:(BOOL)animated

{

[super viewWillDisappear:animated];

//取消监听语音音量

[[BDVoiceRecognitionClient sharedInstance] cancelListenCurrentDBLevelMeter];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

- (IBAction)inputBtnClick:(id)sender {

BDVoiceRecognitionClient * client = [BDVoiceRecognitionClient sharedInstance];

[client setApiKey:@"Au2wN2SaDOpYZHgGqrIymMkU" withSecretKey:@"a0212d1fa0f28699aa5d1162a1bcbf1c"];

//设置识别垂类

//[client setPropertyList:@[[NSNumber numberWithInt:EVoiceRecognitionPropertyVideo]]];

//设置识别语言为普通话

[client setLanguage:EVoiceRecognitionPropertyMusic];

//禁用标点符号<默认不禁用>

[client disablePuncs:YES];

//设置是否对语音进行端点检测,即SDK会自动判断说话是否结束<默认开启>

[client setNeedVadFlag:YES];

//设置是否对上传的语音进行压缩<默认压缩>

[client setNeedCompressFlag:YES];

//设置在线识别的响应等待时间,如果超时,触发同步离线识别

[client setOnlineWaitTime:5];

//开启自然语言理解结果

[client setConfig:@"nlu" withFlag:YES];

//开始说话开始提示音

[client setPlayTone:EVoiceRecognitionPlayTonesRecStart isPlay:YES];

//开始说话结束提示音

[client setPlayTone:EVoiceRecognitionPlayTonesRecEnd isPlay:YES];

//打开语音音量功能

[client listenCurrentDBLevelMeter];

//获取当前语音音量级别

[client getCurrentDBLevelMeter];

int startStatus = [client startVoiceRecognition:self];

switch (startStatus) {

case EVoiceRecognitionStartWorking:

self.label.text = @"启动成功!";

break;

default:

self.label.text = [NSString stringWithFormat:@"启动失败 - 错误码:%d",startStatus];

break;

}

}

- (void)VoiceRecognitionClientWorkStatus:(int)aStatus obj:(id)aObj {

switch (aStatus) {

case EVoiceRecognitionClientWorkStatusFlushData: {

// 该状态值表示服务器返回了中间结果,如果想要将中间结果展示给用户(形成连续上屏的效果), // 可以利用与该状态同时返回的数据,每当接到新的该类消息应当清空显示区域的文字以免重复

NSMutableString *tmpString = [[NSMutableString alloc] initWithString:@""]; [tmpString appendFormat:@"%@",[aObj objectAtIndex:0]];

NSLog(@"result: %@", tmpString);

break; }

case EVoiceRecognitionClientWorkStatusFinish: {

// 该状态值表示语音识别服务器返回了最终结果,结果以数组的形式保存在 aObj 对象中 // 接受到该消息时应当清空显示区域的文字以免重复

if ([[BDVoiceRecognitionClient sharedInstance] getRecognitionProperty] != EVoiceRecognitionPropertyInput)

{

NSMutableArray *resultData = (NSMutableArray *)aObj;  //解析结果,并显示

NSMutableString *tmpString = [[NSMutableString alloc] initWithString:@""];

// 获取识别候选词列表

for (int i=0; i<[resultData count]; i++) {

[tmpString appendFormat:@"%@\r\n",[resultData objectAtIndex:i]]; }

self.label.text = tmpString;

} else {

NSMutableString *sentenceString = [[NSMutableString alloc] initWithString:@""]; for (NSArray *result in aObj)// 此时 aObj 是 array,result 也是 array

{

// 取每条候选结果的第 条,进 组合

// result 的元素是 dictionary,对应 个候选词和对应的可信度

NSDictionary *dic = [result objectAtIndex:0];

NSString *candidateWord = [[dic allKeys] objectAtIndex:0];

[sentenceString appendString:candidateWord];

}

NSLog(@"result: %@", sentenceString);

}

break; }

case EVoiceRecognitionClientWorkStatusReceiveData: {

// 此状态只在输入模式下发生,表示语音识别正确返回结果,每个子句会通知一次(全量, // 即第二次收到该消息时所携带的结果包含第一句的识别结果),应用程序可以

// 逐句显示。配合连续上屏的中间结果,可以进一步 升语音输入的体验

NSMutableString *sentenceString = [[NSMutableString alloc] initWithString:@""];

for (NSArray *result in aObj)// 此时 aObj 是 array,result 也是 array

{

// 取每条候选结果的第 条,进 组合

// result 的元素是 dictionary,对应 个候选词和对应的可信度

NSDictionary *dic = [result objectAtIndex:0];

NSString *candidateWord = [[dic allKeys] objectAtIndex:0];

[sentenceString appendString:candidateWord];

}

NSLog(@"result: %@", sentenceString); break;

}

case EVoiceRecognitionClientWorkStatusNewRecordData: {

// 有音频数据输出,音频数据格式为 PCM,在有 WiFi 连接的条件下为 16k16bit,非 WiFi

// 为 8k16bit break;

}

case EVoiceRecognitionClientWorkStatusEnd: {

// 用户说话完成,但服务器尚未返回结果

break; }

case EVoiceRecognitionClientWorkStatusCancel: {

// 用户主动取消

break; }

case EVoiceRecognitionClientWorkStatusError: {

// 错误状态

self.label.text = @"没有语音输入";

break; }

case EVoiceRecognitionClientWorkPlayStartTone:

case EVoiceRecognitionClientWorkPlayStartToneFinish:

case EVoiceRecognitionClientWorkStatusStartWorkIng:

case EVoiceRecognitionClientWorkStatusStart:

case EVoiceRecognitionClientWorkPlayEndToneFinish:

case EVoiceRecognitionClientWorkPlayEndTone:

break;

}

}

时间: 2024-10-12 23:03:07

接入百度语音SDK的步骤的相关文章

关于接入百度语音的总结

百度语音SDK的接入总算告一段落,感觉接SDK是件很麻烦的事,接过的同学都知道!先来谈一谈接SDK麻烦的二三事:) 坑 接入的平台一般都是ios或者android,对于wp这种平台还没接过,不过表示前面两个已经暗坑无数,如果要接第三个平台感觉想死的心都有! Android的坑其实最大的问题就是不能调试C++代码,所以一旦发现C++代码有问题就需要修改,并且需要重新NDK编译,这部比较耗时;而且我用的是 eclipse所以每次编译到生成最终包需要一定的时间. Ios的坑其实主要来自场外因素,比如哪

Android 导入百度地图SDK 详细步骤

今天交大家咋么来接入百度地图的SDK,步骤其实和百度官网上的开发指南一样,写下来做做总结. 1. 注册百度开发者账号,直接到官网注册就行,如果没有注册,你在获取秘钥的时候系统会提醒你注册.百度的LBS的首页网址是: http://developer.baidu.com/map/index.php?title=%E9%A6%96%E9%A1%B5 2. 有了百度开发者账户后就可以去申请要开发的APP,由于百度SDK需要和App绑定,在创建APP的时候需要提供android秘钥和package包名,

关于几个主流语音SDK的接入问题

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

【Android语音合成TTS】百度语音接入方法,和使用技巧详解

请尊重他人的劳动成果,转载请注明出处:[Android语音合成TTS]百度语音接入方法,和使用技巧详解 Ps. 依托于百度开放云,百度语音为合作伙伴提供了业界领先.永久免费的语音技术服务,目前已上线的服务包括语音识别.语义解析.语音合成,后续会继续带来开放资源.多轮对话等技术服务:通过SDK.REST API及离线开发包等多种服务方式,满足不同开发者的开发需求. 目前百度语音提供免费的语音接入,语音合成质量尚可,但还没开放离线TTS. 服务接入流程 具体详情可查看:http://yuyin.ba

bugly异常上报、语音sdk接入总结

sdk说明: 1.Bugly SDK:自动捕获上报App的脚本错误和原生代码引发的崩溃信息,并提供异常问题分类分析. 2.语音 SDK:提供游戏内收发语音功能. 接入步骤: step1:仔细通读一遍sdk接入文档 step2:将需要用到的sdk代码文件拷贝至指定工程路径下 step3:环境配置 1)win32: 1.将sdk目录下的所有dll和lib文件拷贝到project.win32下的Debug.win32和Release.win32下 2.右键工程->属性->链接器->输入(附加依

cocos2d-x学习笔记(五)接入百度联盟广告(Android横幅和插屏广告)

用cocos2d-x 3.4 开发了个小游戏,然后成功的接入百度联盟的广告,很多初学者也希望在自己开发的游戏接入广告盈利,所以我就以百度联盟的横幅和插屏广告为例,根据自己接入的步骤做个总结,希望对有需要的开发者有所帮助. 一.百度SDK包导入与权限的配置 1.导入jar包 下载百度联盟android版的SDK包,我下载的文件名Baidu_Union_SDK_Android.zip,解压后文件夹里面有个jar包Baidu_MobAds_SDK.jar,将该jar包复制到你工程的libs目录下(如果

Android 通过调用系统,如接口 谷歌语音、百度语音、科大讯飞语音等语音识别方法对话框

现在app在发展过程中会集成一些语音识别功能,不具有其自己的显影剂一般正在开发的语音识别引擎,所以在大多数情况下,它是选择一个成熟的语音识别引擎SDK集成到他们的app在. 平时,这种整合被分成两个,一种是直接调用SDK开发商设计了弹出框.互界面:另一种是开发人员仅仅利用SDK提供的语音识别服务,自己开发一个属于自己的交互设计. 本文介绍最简单直接调起弹出框的方法. 首先.測试机须要安装如谷歌语音.百度语音.讯飞语音等产品的语音软件,这时能够在系统设置界面的语言与输入处找到相关的语音识别功能列表

集成百度地图SDK(swift)

一 集成百度地图最终的效果 二 知识点 1 信息检索 2 地图大头针和导航SDK 三 集成百度地图SDK 1 百度搜索百度地图SDK 2 注册账号(尽量)–>如果没有账号,最好去注册一个账号(我这里就不细说注册账号的步骤了) 3 由于我们要做的是和百度地图相关的,所以直接按照下面图片点击即可(这里我将一一介绍ios中地图的相关开发) 4 点击ios地图SDK里面是一些相关概述 5 按照图片点击进入下面 6 相关解释 6.1 一般我们都是直接点击"全部下载" 6.2 解释 : &q

Android 通过调用系统接口使用如 谷歌语音、百度语音、讯飞语音等语音识别对话框的方法

现在app的开发进程会集成一些语音识别功能,而一般开发者是不具备自己开发一套语音识别引擎的,因此大多数情况是选择一个已经成熟的语音识别引擎SDK集成到自己的app中. 通常情况下,这种集成分两种,一种是直接调用SDK为开发者设计好的弹出框,开发者不需要开发识别交互界面:还有一种是开发者只利用SDK提供的语音识别服务,自己开发一个属于自己的交互设计. 本文介绍最简单直接调起弹出框的方法. 首先,测试机需要安装如谷歌语音.百度语音.讯飞语音等产品的语音软件,这时可以在系统设置界面的语言与输入处找到相