科大讯飞语音插件的使用

毕竟是相对小众的插件,网络上的资源也并不多,留个笔记。

1.初始化,最好放在应用初始化的时候来做这件事情(否则容易产生10106BUG或者参数错误)

//初始化讯飞语音插件

NSString *initString = [NSString stringWithFormat:@"%@=%@", [IFlySpeechConstant APPID], APPID_VALUE]; //APPID_VALUE是在讯飞申请的唯一标识码

//所有服务启动前,需要确保执行createUtility

[IFlySpeechUtility createUtility:initString];

2.在使用前和使用后要注意AVAudioSession的设置(如果应用中有其他需要使用到音频的功能,否则必然会产生10106的BUG)

//使用语音前,设置成playAndRecord(通常是发生在点击语音按钮事件中)

NSError* sessionError = nil;

AVAudioSession *audioSession = [AVAudioSession sharedInstance];

[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];

   

//使用语音后,设置成playback(通常是在onResult和onError这两个讯飞代理方法中)

NSError* sessionError = nil;

AVAudioSession *audioSession = [AVAudioSession sharedInstance];

[audioSession setCategory:AVAudioSessionCategoryPlayback error:&sessionError];

值得注意的是如果应用中有音频播放器的功能,需要在使用前暂停播放器

3.语音识别返回数据的基本处理,因为onResult中返回的是array  

NSMutableString *result = [[NSMutableString alloc] init];

NSDictionary *dic = [array objectAtIndex:0];

for (NSString *key in dic) {

  [result appendFormat:@"%@",key];

}

[self performSelectorOnMainThread:@selector(onUpdateTextView:) withObject:result waitUntilDone:YES];

- (void)onUpdateTextView:(NSString *)sentence {  //主要是进行一些字符的处理

NSMutableString *keyStr = [NSMutableString stringWithString:sentence];

if ([keyStr hasSuffix:@"。"]) {

NSRange range = [keyStr rangeOfString:@"。" options:NSBackwardsSearch];

[keyStr deleteCharactersInRange:range];

}

if ([keyStr hasSuffix:@"?"]) {

NSRange range = [keyStr rangeOfString:@"?" options:NSBackwardsSearch];

[keyStr deleteCharactersInRange:range];

}

if ([keyStr hasSuffix:@"!"]) {

NSRange range = [keyStr rangeOfString:@"!" options:NSBackwardsSearch];

[keyStr deleteCharactersInRange:range];

}

if ([keyStr hasSuffix:@","]) {

NSRange range = [keyStr rangeOfString:@"," options:NSBackwardsSearch];

[keyStr deleteCharactersInRange:range];

}

//使用语音后,设置成playback

NSError* sessionError = nil;

AVAudioSession *audioSession = [AVAudioSession sharedInstance];

[audioSession setCategory:AVAudioSessionCategoryPlayback error:&sessionError];

if (pausedPlayer) {  //看需求是否需要恢复播放器的播放

[[AudioPlayer sharedInstance] startPlay];

pausedPlayer = NO;

}

[iflyRecognizerView cancel];

}

时间: 2024-11-07 10:51:34

科大讯飞语音插件的使用的相关文章

基于科大讯飞语音云windows平台开发

前记: 前段时间公司没事干,突发奇想想做一个语音识别系统,看起来应该很简单的,但做起来却是各种问题,这个对电气毕业的我,却是挺为难的.谷姐已经离我们而去,感谢度娘,感谢CSDN各位大神,好歹也做的是那么回事了,虽然还是不好用,但基本功能实现了. 该软件使用VS2008C++/CLR开发,由于科大讯飞提供的是C的API接口,结果到这边就是各种不兼容,CLR是基于托管堆运行的,而这个API有是非托管堆的,使用了各种指针,原本打算使用C#来做,最后门外汉的我也没能做到C#和C指针完美结合,真怀恋单片机

【Util】科大讯飞语音听写接口使用的封装

在 科大讯飞开放平台——语音听写接口的使用 这篇文章里介绍了科大讯飞语音听写接口的简单使用方法,但是在实际开发中发现仅仅那样做在使用起来还是不方便,于是想到把语音听写接口的调用.Json数据解析.听写结果的处理等操作进行封装,使用异步回调的方式进行调用,这样在使用到语音听写的地方只需创建一个监听接口并重写语音识别返回结果的处理方法即可.梳理了一下步骤如下: (一)前期准备工作(略,见科大讯飞开放平台——语音听写接口的使用一文) 注:将获取到的AppId存到一个常量类里,后面便于管理: 1 pub

转:基于科大讯飞语音API语音识别开发详解

最近项目需要用到android语音识别,立马就想到科大讯飞,结合官方实例及阅读API文档,初步的完成了Android语音识别,下面是实现过程实录. 一.准备工作 1.你需要android手机应用开发基础 2.科大讯飞语音识别SDK android版 3.科大讯飞语音识别开发API文档 4.android手机 关于科大讯飞SDK及API文档,请到科大语音官网下载:http://open.voicecloud.cn/ 当然SDK和API有多个版本可选,按照你的需要下载,其次,下载需要填写资料申请注册

【语音从零之五】用科大讯飞语音包实现语音打开已安装应用程序

[更新]有人说不会使用科大讯飞的语音包.这里是传送门,能够參考从零系列的前四篇文章 (一)利用科大讯飞语音包实现Android语音识别Demo (二)科大讯飞语音包Mscdemo的使用 (三)自己定义类中调用讯飞语音包错误解决的方法 (四)运用Handler另起线程执行科大讯飞语音识别 本文主要介绍怎样利用语音包实现口语控制打开应用程序,比如:说"打开计算器",计算器就彭地打开了. 要完毕这个功能,首先要识别出指令是"打开",然后识别出应用程序名称是"计算

安卓TTS语音合成经验分享(科大讯飞语音+)集成

应用场景:足浴软件,技师钟房安排调派和队列排序查看,语音播报提醒.老程序是使用双屏显卡,windows系统PC上运行一个无人值守桌面程序.如今安卓机顶盒(WIFI)和MINI电视棒通过HDMI接口和支持大屏幕高清液晶显示器(电视)组合,让这一应用场景的成本大幅下降,实用性更好. 通过一番调研,发现国内上市公司科大讯飞的语音+SDK包口碑好,效果好,集成也方便.语音+支持离线应用,这是最主要的.集成过程走起: 1.下载DEMO程序.DEMO程序就包含了全部需要的资源. 2.SDK集成关键代码: (

科大讯飞语音接入(AndroidStudio)

科大讯飞语音接入(AndroidStudio) 操作时间 2016/5/7 15:14:13 效果图 步骤 完全按照文档即可.不过需要注意以下提到的注意事项 注意事项 导入 SDK 首先需要按照手册导入 .so..jar.特别注意(最重要):需要引入.so文件,参考http://jingyan.baidu.com/article/e3c78d644baaf23c4d85f57d.html Step 2 添加用户权限 Step 2 添加用户权限.特别注意:文档权限写的不规范,需要手动去掉空格 语音

科大讯飞语音录入的功能

实现语音录入识别和关键字(也就是实现一个识别到语音的字符串显示在屏幕上) 需要借助一个第三方科大讯飞的工具. 首先看科大讯飞的官方文档(查看科大讯飞都有哪些功能)找到我们需要的功能点相应的集成Demo  我们这里需要的是语音识别功能   需要找到使用示例  查看使用的步骤 1.导入科大讯飞的jar包  Msc.jar 放到工程目录的lib目录下(必做项) 2.将SDK.\lib目录下libs文件夹拷贝到工程根目录.确保.\libs\**\libmsc.so文件存在.(导入库文件放到libs中)(

<交流贴>android语音识别之科大讯飞语音API的使用

因为最近在研究语音识别,所以借鉴了一下CreAmazing网友的帖子 Android系统本身其实提供有语音识别模块,在它的APIDemo里也有关于语音识别的sample,不过经过大多开发者的真机测试,发现很多真机并不能使用哪个sample,在网上查找了一下原因,大部分是因为开发者在刷机的时候,大部分的ROM都阉割掉了语音识别和语音合成TTS(Text To Speech)部分,所以运行sample的时候会有异常抛出. 如果不用google提供的语音识别,要怎么实现语音识别喃?科大讯飞的语音API

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

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