首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
科大讯飞语音识别
时间:
2016-06-03 14:12:03
阅读:
176
评论:
0
收藏:
0
[点我收藏+]
标签:
科大讯飞语音识别
随着当今社会的高速发展,我们所使用的产品也向着遍历和智能的方面发展着,当然了手机端的App也不例外。现在的App都在缩减用户操作的流程,优化用户的体验,为了更加便利用户,提高用户的DAU(日活),增加用户的粘性一般我们都会想出比较新颖的招式。
如果现在有这样一个需求:用户需要绑定银行卡输入银行卡号,手动输入增加用户的操作度,所以用户可以通过语音读取银行卡号,是不是既方便又智能。现在做语音识别的有一些不错的开放平台供我们使用,一家是科大讯飞平台,一家是百度语音平台。我个人比较偏爱科大讯飞,因为科大讯飞的优势在于大段大段的文字识别上,准确率较高。这正好能符合我输入银行卡号准确无误的需求。这篇博客也主要讲的是讯飞语音SDK的使用。下面我们来详细看一下科大讯飞。
1.科大讯飞开放平台
2.科大讯飞iOS - API开放平台
那下面我们来看一下科大讯飞的开发步骤吧
第一步:申请账号ID
登陆到讯飞开放平台上,在用户菜单栏里创建应用,这里的登陆也可以采用第三方的方式,在创建应用的界面填写相关的信息即可,然后就会有一个SDK的下载链接,如果没有直接去SDK选项下下载即可。
第二步:导入讯飞SDK框架
下载下来SDK解压后有三个文件夹:doc文件夹:不用多说肯定是开发文档;重要的是接下来的那两个文件夹:一个是lib文件夹:存放科大讯飞SDK类库,这就是我们要导入的SDK;Sample:iOS的科大讯飞demo演示工程。
下面我们来创建一个工程,将lib文件夹下的“iflyMSC.framework”拷贝到工程目录,然后在工程中添加依赖库,如下图所示:
第三步:开始进行语音识别了
语音识别分两种,分别用在不同场合,一个是界面提示的语音识别,一个是无界面提示的语音识别,这里以有界面提示的语音识别为例先进性讲解。
3.1导入头文件
[objc]
view plain
copy
#import <iflyMSC/iflyMSC.h>
3.2登陆讯飞服务器
在使用讯飞的语音解析之前,需要进行用户身份验证,即登陆讯飞服务器,这个在viewDidLoad()方法中添加两行代码即可.即讯飞服务器需要根据你当前用户的APPID才能同意你登陆。代码如下:
[objc]
view plain
copy
//2.登陆讯飞服务器
NSString *appID = [NSString
stringWithFormat:
@"appid=%@",
@"570f0a8b"];
[IFlySpeechUtility
createUtility:appID];
3.3创建有界面提示语音识别对象
创建一个讯飞语音识别对象,可以对他进行一系列的调用
[objc]
view plain
copy
///带界面的识别对象
@property (
nonatomic,
strong)
IFlyRecognizerView *iflyRecognizerView;
3.4初始化带界面的识别对象
[objc]
view plain
copy
_iflyRecognizerView = [[IFlyRecognizerView
alloc]
initWithCenter:
self
.view
.center];
_iflyRecognizerView
.delegate =
self;
[_iflyRecognizerView
setParameter:
@"iat"
forKey:[IFlySpeechConstant
IFLY_DOMAIN]];
//asr_audio_path保存录音文件名,如不再需要,设置value为nil表示取消,默认目录是documents
[_iflyRecognizerView
setParameter:
@"asrview.pcm "
forKey:[IFlySpeechConstant
ASR_AUDIO_PATH]];
3.5实现代理方法
讯飞对识别结果的处理采用的代理回调的方法,实现IFlySpeechSynthesizerDelegate协议的onResult:isLast:方法.
注意!!!!这里的是onResult,不是onResults,后者是无界面提示的语音解析的结果回调函数.
回调时默认传回来的数据是json数据,咱们大可不必疑惑解析到底使用哪种方式,科大讯飞已经为我们考虑到这些问题了,他官方提供了一个叫做“ISRDataHelper”用它解析就可以了。代码如下:
[objc]
view plain
copy
- (
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];
}
NSString * resu = [ISRDataHelper
stringFromJson:result];
//结果要显示在Lable上
_showTextLable
.text = [NSString
stringWithFormat:
@"%@%@",_showTextLable
.text,resu];
}
3.6触发开始识别语音
拖动一个Button,给一个响应事件,用于开始监听语音识别;代码如下:
[objc]
view plain
copy
- (IBAction)voiceRecognize:(
id)sender {
//开始识别语音
[_iflyRecognizerView
start];
}
这时候运行app就可以进行语音识别了,界面如下图:
科大讯飞语音识别
标签:
原文地址:http://www.cnblogs.com/mingjieLove00/p/5555220.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!