b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ifly文件用什么打开_ifly文件用哪些打开_ifly文件如何开启

电脑杂谈  发布时间:2020-01-11 04:01:23  来源:网络整理

ifly文件用什么打开_ifly文件用什么打开_ifly文件怎么打开

社会跟产品的演进总是向着便利和智能的方式演进,对于手机的App来说也是这么.所以,现在的App都在增加流程,优化使用感受,为的就是让用户用上去非常方便,提高App的入手度和客户粘性.那么另一方面的智能呢?

一个比较简洁智能的推动办法就是在输入的地方加上语音识别,在输出显示的之后加上语音合成,直接进行语音播报,那么是不是对于司机等来说就是一个智能的凸显呢?

现在做语音识别有一些不错的开放系统可以帮我们直接提供使用,一家是科大讯飞开放系统,一家是百度语音开放系统.我个人非常偏爱讯飞,因为讯飞的优势是在大段文字的识别上,准确率比较高.这恰好符合我的需求,这篇博客也主要讲的是讯飞语音SDK的使用.

讯飞开发教程上写的非常明白也相当啰嗦,并不是一个最简单的Demo.所以我在这篇博客里进行了一些适度的删减,争取做一个最简单的demo.

登陆至讯飞开放系统上,在用户菜单栏里就有创建我的应用.这里的登陆也可以采取第三方的方法.在建立应用的图标填写相关的信息就能.然后才会有一个SDK下载的链接.如果没有,直接去SDK下载中心根据三步选项去进行新的下载即可.这里不做过多的描述.

下载下来的SDK包解压出来有三个文件夹,第一个市doc文件夹,不多说,肯定是开发文档,还有相关的作者信息什么的.最重要的是剩下的两个文件夹,一个是lib文件夹,这里保存的是讯飞SDK的键值文件,我们导出SDK就是导入的这里的文件.第三个文件夹是一个IOS的Demo演示工程.

1 添加静态库

新建一个IOS工程,将lib文件夹下的”iflyMSC.framework”文件拷贝到项目目录下,然后在项目配置文件的[Build Phases]-[Link Binary With Libraries]中通过[AddOther]

2 确认SDK路径

在配置文件中搜索”head”找到[Framework Search Paths],点开查看SDK的模式是不是绝对路径,如果是如下图的样子,那就没问题了.这一步主要是推动SDK的模式为相对路径,防止工程换了文件夹位置就能够运行的状况的出现.

3 添加框架

按照下图依次将图中的所有的框架添加至项目上面.讯飞官网API中给出的图片是XCode7以前的,XCode7之后一些动态链接库的后缀名发生了改变,Xcode7中添加完毕以后如下图:

ifly文件用什么打开_ifly文件用什么打开_ifly文件怎么打开

语音识别分两种,分别用在不同的场合,一个是图标提示的语音识别,一个是无界面提示的语音识别,这里以有图标提示的语音识别为实例.

1 导入头文件

//将讯飞SDK中的所有类都导入进来
#import < iflyMSC/iflyMSC.h >

2 登陆讯飞服务器

在使用讯飞的语音解析之前,需要进行用户身份验证,即登陆讯飞服务器,这个在viewDidLoad()方法中添加两行代码即可.后面的ID数字就是之前我们在开放系统建立按自己应用时帮的APPID,在下载的SDK中也有有的.

NSString *initString = [[NSString alloc] initWithFormat:@"appid=%@",@"565e4dd9"];
[IFlySpeechUtility createUtility:initString];

3 创建有图标提示的语音识别对象

创建一个讯飞语音识别对象,可以对他进行一系列的调用

@property (nonatomic, strong) IFlyRecognizerView *iflyRecognizerView;//带界面的识别对象

4 初始化带界面的识别对象

前面声明了一个带界面的语音识别对象,现在应该对这个识别对象进行初始化,同样是在ViewDidLoad()方法中进行就行.

ifly文件用什么打开_ifly文件怎么打开_ifly文件用什么打开

#pragma mark ------ 进行有界面的语音识别的初始化
_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]];

5 实现代理方式

讯飞对识别结果的处理运用的代理回调的方式,实现IFlySpeechSynthesizerDelegate协议的onResult:isLast:方法.

注意!!!!这里的是onResult,不是onResults,后者是无界面提示的语音解析的结果回调函数.

- (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];
    }
//这里需要在下载的demo里面拖入ISRDataHelper.h和ISRDataHelper.m文件然背后引入头文件
    NSString * resu = [ISRDataHelper stringFromJson:result];
    //将结果显示在界面的Label上
    _text.text = [NSString stringWithFormat:@"%@%@",_text.text,resu];
}

这里默认的传出来的是Json字符串,需要对字符串进行解读.当然,讯飞还是非常良心的,在demo中帮提供了一个解析类,就是上面用到的ISRDataHelper.用它来进行解读就可以了. 6 触发开始语音识别 拖动一个Button,给一个响应事件,用于开始语音识别

//启动识别服务
[_iflyRecognizerView start];

这个之后运行App,就可以进行语音识别了,运行的结果需要如下图:

无界面提示的语音识别适合将语音识别放在后台,这个看详细的使用画面.无界面的方法相对来说简洁大方,可制定性高.

1 导入头文件

//将讯飞SDK中的所有类都导入进来
#import < iflyMSC/iflyMSC.h >

2 登陆讯飞服务器

ifly文件用什么打开_ifly文件怎么打开_ifly文件用什么打开

在使用讯飞的语音解析之前,需要进行用户身份验证,即登陆讯飞服务器,这个在viewDidLoad()方法中添加两行代码即可.后面的ID数字就是之前我们在开放系统建立按自己应用时帮的APPIDifly文件用什么打开,在下载的SDK中也有有的.

NSString *initString = [[NSString alloc] initWithFormat:@"appid=%@",@"565e4dd9"];
[IFlySpeechUtility createUtility:initString];

3 创建无界面提示的语音识别对象

创建一个讯飞语音识别对象,可以对他进行一系列的调用

@property (nonatomic, strong) IFlySpeechRecognizer *iFlySpeechRecognizer;//不带界面的识别对象

4 对象初始化

前面声明了一些在语音合成的之后会用到的对象,现在必须对上面的对象进行初始化.还是在ViewDidLoad()里面进行就可以了.这里的初始化内容非常多,是进行一些语音的设定,所以单独做成了一个方法,在ViewDidLoad()中进行调用即可.

-(void)initRecognizer{
//单例模式,无UI的实例
if (_iFlySpeechRecognizer == nil) {
   _iFlySpeechRecognizer = [IFlySpeechRecognizer sharedInstance];            [_iFlySpeechRecognizer setParameter:@"" forKey:[IFlySpeechConstant PARAMS]];
   //设置听写模式
   [_iFlySpeechRecognizer setParameter:@"iat" forKey:[IFlySpeechConstant IFLY_DOMAIN]];
}
_iFlySpeechRecognizer.delegate = self;    
if (_iFlySpeechRecognizer != nil) {
   IATConfig *instance = [IATConfig sharedInstance];     
   //设置最长录音时间
   [_iFlySpeechRecognizer setParameter:instance.speechTimeout forKey:[IFlySpeechConstant SPEECH_TIMEOUT]];
   //设置后端点
   [_iFlySpeechRecognizer setParameter:instance.vadEos forKey:[IFlySpeechConstant VAD_EOS]];
    //设置前端点
    [_iFlySpeechRecognizer setParameter:instance.vadBos forKey:[IFlySpeechConstant VAD_BOS]];
    //网络等待时间
    [_iFlySpeechRecognizer setParameter:@"20000" forKey:[IFlySpeechConstant NET_TIMEOUT]];    
    //设置采样率,推荐使用16K
    [_iFlySpeechRecognizer setParameter:instance.sampleRate forKey:[IFlySpeechConstant SAMPLE_RATE]];    
    if ([instance.language isEqualToString:[IATConfig chinese]]) {
        //设置语言
        [_iFlySpeechRecognizer setParameter:instance.language forKey:[IFlySpeechConstant LANGUAGE]];
        //设置方言
        [_iFlySpeechRecognizer setParameter:instance.accent forKey:[IFlySpeechConstant ACCENT]];
    }else if ([instance.language isEqualToString:[IATConfig english]]) {
        [_iFlySpeechRecognizer setParameter:instance.language forKey:[IFlySpeechConstant LANGUAGE]];
    }
    //设置是否返回标点符号
    [_iFlySpeechRecognizer setParameter:instance.dot forKey:[IFlySpeechConstant ASR_PTT]];    
}
}


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-136472-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...