为textView添加语音输入功能的实例代码(集成讯飞语音识别)

非常感谢大家利用自己宝贵的时间来阅读我的文章 , 今天给大家带来的是一个集成讯飞语音识别功能的小demo,为textview添加一个语音输入的功能,相信在这个智能化趋势的大环境的下,很多人能用得到这个功能。如果需要的话希望能帮到你 , 当然, 有任何不妥的地方 欢迎指正。

先上demo --->XunFeiDemo

效果展示:

功能实现,sdk中提供了两种方式,一种是带界面的语音识别,有一个识别语音的动画的界面效果。另一种是无界面的。我这里使用的是带界面的,不带界面的自己可以去看一下,大同小异

第一步:去讯飞开发者平台注册账号、创建应用、下载SDK、拖入项目

第二步:添加依赖库

libz.tbd
AVFoundation.framework
SystemConfiguration.framework
Foundation.framework
CoreTelephony.framework
AudioToolbox.framework
UIKit.framework
AddressBook.framework
CoreLocation.framework
CoreGraphics.framework

第三步:AppDelegate配置

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 //存储路径
 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
 NSString *cachePath = [paths objectAtIndex:0];
 [IFlySetting setLogFilePath:cachePath];
 //创建语音配置,appid必须要传入,仅执行一次则可
 NSString *initString = [[NSString alloc] initWithFormat:@"appid=%@",@"你的appid"];
 //所有服务启动前,需要确保执行createUtility
 [IFlySpeechUtility createUtility:initString];
}

第四步:把demo里的ISRDataHelper.h及.m文件拖入项目中

第五步:控制器代码

1、引用头文件

#import "iflyMSC/IFlyMSC.h" 

#import "ISRDataHelper.h" 

2、初始化_iflyRecognizerView

//有界面
-(void)initRecognizer{
 //单例模式,UI的实例
 if (_iflyRecognizerView == nil) {
  //UI显示剧中
  _iflyRecognizerView= [[IFlyRecognizerView alloc] initWithCenter:self.view.center];
  [_iflyRecognizerView setParameter:@"" forKey:[IFlySpeechConstant PARAMS]];
  //设置听写模式
  [_iflyRecognizerView setParameter:@"iat" forKey:[IFlySpeechConstant IFLY_DOMAIN]];
 }
 _iflyRecognizerView.delegate = self;
 if (_iflyRecognizerView != nil) {
  //设置最长录音时间
  [_iflyRecognizerView setParameter:@"30000" forKey:[IFlySpeechConstant SPEECH_TIMEOUT]];
  //设置后端点 3000
  [_iflyRecognizerView setParameter:@"3000" forKey:[IFlySpeechConstant VAD_EOS]];
  //设置前端点 3000
  [_iflyRecognizerView setParameter:@"3000" forKey:[IFlySpeechConstant VAD_BOS]];
  //设置采样率,推荐使用16K 16000
  [_iflyRecognizerView setParameter:@"16000" forKey:[IFlySpeechConstant SAMPLE_RATE]];
  //  if ([instance.language isEqualToString:[IATConfig chinese]]) {
  //   //设置语言 zh_cn
  [_iflyRecognizerView setParameter:@"zh_cn" forKey:[IFlySpeechConstant LANGUAGE]];
  //   //设置方言 mandarin
  [_iflyRecognizerView setParameter:@"mandarin" forKey:[IFlySpeechConstant ACCENT]];
  //  }else if ([instance.language isEqualToString:[IATConfig english]]) {
  //   //设置语言
  //   [_iflyRecognizerView setParameter:instance.language forKey:[IFlySpeechConstant LANGUAGE]];
  //  }
  //  //设置是否返回标点符号 0
  [_iflyRecognizerView setParameter:@"1" forKey:[IFlySpeechConstant ASR_PTT]];
 }
}

3、按钮点击响应

-(void)startBtn{ 

 if (_iflyRecognizerView == nil) { 

  [self initRecognizer ]; 

 } 

 //设置音频来源为麦克风 

 [_iflyRecognizerView setParameter:IFLY_AUDIO_SOURCE_MIC forKey:@"audio_source"]; 

 //设置听写结果格式为json 

 [_iflyRecognizerView setParameter:@"plain" forKey:[IFlySpeechConstant RESULT_TYPE]]; 

 //保存录音文件,保存在sdk工作路径中,如未设置工作路径,则默认保存在library/cache下 

 [_iflyRecognizerView setParameter:@"asr.pcm" forKey:[IFlySpeechConstant ASR_AUDIO_PATH]]; 

 [_iflyRecognizerView start]; 

} 

4、代理方法,结果解析

- (void)onResult:(NSArray *)resultArray isLast:(BOOL)isLast
{
 NSMutableString *result = [[NSMutableString alloc] init];
 NSDictionary *dic = [resultArray objectAtIndex:0];
 for (NSString *key in dic) {
  [result appendFormat:@"%@",key];
 }
  self.textField.text =[NSString stringWithFormat:@"%@%@",_textField.text,result];
 [_iflyRecognizerView cancel];
}
- (void)onError: (IFlySpeechError *) error
{
 NSLog(@"识别出错");
}

恩,理论上到这里就算完成~,这里仅提供一个参考,具体使用请查看集成文档

以上这篇为textView添加语音输入功能的实例代码(集成讯飞语音识别)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Android基于讯飞语音SDK实现语音识别

    一.准备工作 1.你需要android手机应用开发基础 2.科大讯飞语音识别SDK android版 3.科大讯飞语音识别开发API文档 4.android手机 关于科大讯飞SDK及API文档,请到科大语音官网下载:http://www.xfyun.cn/ 当然SDK和API有多个版本可选,按照你的需要下载,其次,下载需要填写资料申请注册,申请通过或可获得Appid 如下图,申请一个APPID,就可以了. 二.语音识别流程 1.创建识别控件 函数原型 Public RecognizerDialo

  • 为textView添加语音输入功能的实例代码(集成讯飞语音识别)

    非常感谢大家利用自己宝贵的时间来阅读我的文章 , 今天给大家带来的是一个集成讯飞语音识别功能的小demo,为textview添加一个语音输入的功能,相信在这个智能化趋势的大环境的下,很多人能用得到这个功能.如果需要的话希望能帮到你 , 当然, 有任何不妥的地方 欢迎指正. 先上demo --->XunFeiDemo 效果展示: 功能实现,sdk中提供了两种方式,一种是带界面的语音识别,有一个识别语音的动画的界面效果.另一种是无界面的.我这里使用的是带界面的,不带界面的自己可以去看一下,大同小异

  • Angularjs添加排序查询功能的实例代码

    废话不多说了,直接给大家贴代码了,具体代码如下所示: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="angular-1.3.0.js"></script&g

  • Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)

    废话不多说了,直接给大家贴代码,具体代码如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding: 0; } .sspan{ background: #28a54c; color: #fff; margi

  • jQuery EasyUI 为Combo,Combobox添加清除值功能的实例

    效果图: 图标 (function($){ //初始化清除按钮 function initClear(target){ var jq = $(target); var opts = jq.data('combo').options; var combo = jq.data('combo').combo; var arrow = combo.find('span.combo-arrow'); var clear = arrow.siblings("span.combo-clear");

  • vue中添加语音播报功能的实现

    1:首先把我们的静态资源文件加入到前端工程项目当中 我这里mp3文件就是要播报的语言文件 2: 页面中加入标签 <!-- src 后面的链接是我保存在static文件下的一段报警声 --> <audio v-show="false" id="audioSuccessIn" src="/static/successIn.mp3"/> <audio v-show="false" id="au

  • Spring Security 图片验证码功能的实例代码

    验证码逻辑 以前在项目中也做过验证码,生成验证码的代码网上有很多,也有一些第三方的jar包也可以生成漂亮的验证码.验证码逻辑很简单,就是在登录页放一个image标签,src指向一个controller,这个Controller返回把生成的图片以输出流返回给页面,生成图片的同时把图片上的文本放在session,登录的时候带过来输入的验证码,从session中取出,两者对比.这位老师讲的用Spring Security集成验证码,大体思路和我说的一样,但更加规范和通用些. spring securi

  • vue实现随机验证码功能的实例代码

    1.html代码 <div class="form-group" style="display: flex;"> <div> <span>验证码:</span> <input type="text" id="code" v-model="code" class="code" placeholder="请输入您的验证码&quo

  • Android实现商城购物车功能的实例代码

    最近公司项目做商城模块,需要实现购物车功能,主要实现了单选.全选,金额合计,商品删除,商品数量加减等功能,先看看效果图: 在这里插入图片描述 一.实现步骤: 0.添加依赖库 1.购物车主界面布局文件(activity_main.xml) 2.购物车实现逻辑主界面(MainActivity.class) 3.使用ExpandableListView,继承BaseExpandableListAdapter 4.购物车数据的bean类(ShoppingCarDataBean.class) 5.分店铺实

  • Android中使用ShareSDK集成分享功能的实例代码

    引言 现在APP开发集成分享功能已经是非常普遍的需求了.其他集成分享技术我没有使用过,今天我就来介绍下使用ShareSDK来进行分享功能开发的一些基本步骤和注意点,帮助朋友们避免一些坑.好了,下面切入正题正式开始介绍. 1.ShareSDK开发包及配置 这个不用多说,去他们官网看找SDK开发包和集成文档即可. Android版本地址:http://www.mob.com/downloadDetail/ShareSDK/android. 注意:记得要注册ShareSDK账号获取AppKey哦.这些

  • 微信小程序实现即时通信聊天功能的实例代码

    项目背景:小程序中实现实时聊天功能 一.服务器域名配置 配置流程 配置参考URL:https://developers.weixin.qq.com/miniprogram/dev/api/api-network.html 二.nginx中配置反向代理加密websocket(wss) upstream websocket{ hash $remote_addr consistent; server 127.0.0.1:9090 weight=5 max_fails=3 fail_timeout=30

随机推荐