diff --git a/README.md b/README.md index 67fa13e..8722782 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,42 @@ -# 科大讯飞的语音听说读写的cordova插件 - -## 安装方法 - -APP_KEY参数值为您在科大讯飞申请的appid - - -运行cordova plugin add https://gitee.com/shuto/cordova-plugin-IFlyspeech-master.git --variable APP_KEY=${APP_KEY} - -## 调用方法 - - - /** 开始录音 最大持续时间40秒 - * @Param 成功callback - * @Param 失败callback - * @Param 是否显示录音画面 - * @Param 是否显示标点 - * - */ - xunfeiListenSpeaking.startListen(success, error, isShowDialog, isShowPunc); - - // 停止录音 - xunfeiListenSpeaking.stopListen(); - - /** - * 开始说话 - * @Param 成功callback - * @Param 失败callback - * @Param 需要说出的信息 - */ - xunfeiListenSpeaking.startSpeak(success, error, message); - - // 停止说话 - xunfeiListenSpeaking.stopSpeak(); - - - // 暂停说话 - xunfeiListenSpeaking.pauseSpeaking(); - - // 恢复说话 - xunfeiListenSpeaking.resumeSpeaking(); - - +# 科大讯飞的语音听说读写的cordova插件 + +## 安装方法 + +APP_KEY参数值为您在科大讯飞申请的appid + +运行cordova plugin add https://gitee.com/shuto/cordova-plugin-IFlyspeech-master.git --variable APP_KEY=${APP_KEY} + +## 调用方法 + + + /** 开始录音 最大持续时间40秒 + * @Param 成功callback + * @Param 失败callback + * @Param 是否显示录音画面 + * @Param 是否显示标点 + * + */ + xunfeiListenSpeaking.startListen(success, error, isShowDialog, isShowPunc); + + // 停止录音 + xunfeiListenSpeaking.stopListen(); + + /** + * 开始说话 + * @Param 成功callback + * @Param 失败callback + * @Param 需要说出的信息 + */ + xunfeiListenSpeaking.startSpeak(success, error, message); + + // 停止说话 + xunfeiListenSpeaking.stopSpeak(); + + + // 暂停说话 + xunfeiListenSpeaking.pauseSpeaking(); + + // 恢复说话 + xunfeiListenSpeaking.resumeSpeaking(); + + diff --git a/plugin.xml b/plugin.xml index af53cbb..c391b96 100644 --- a/plugin.xml +++ b/plugin.xml @@ -1,278 +1,113 @@ - - - cordova-plugin-xunfeiListenSpeaking + + + cordova-plugin-xunfeiListenSpeaking - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - $APP_KEY - 本示例为讯飞语音Android平台开发者提供语音听写、语法识别、语义理解和语音合成等代码样例,旨在让用户能够依据该示例快速开发出基于语音接口的应用程序。 - 科大讯飞作为中国最大的智能语音技术提供商,在智能语音技术领域有着长期的研究积累,并在中文语音合成、语音识别、口语评测等多项技术上拥有国际领先的成果。科大讯飞是我国唯一以语音技术为产业化方向的“国家863计划成果产业化基地”… - iFLYTEK is a national key software enterprise dedicated to the research of intelligent speech and language technologies, development of software and chip products, provision of speech information services, and integration of E-government systems. The intelligent speech technology of iFLYTEK, the core technology of the company, represents the top level in the world. - \t上传内容为:\n\t#ABNF 1.0 gb2312;\n\tlanguage zh-CN;\n\tmode voice;\n\troot $main;\n\t$main = $place1 到$place2 ;\n\t$place1 = 北京 | 武汉 | 南京 | 天津 | 东京;\n\t$place2 = 上海 | 合肥; - \t您可以说:\n\t今天的天气怎么样?\n\t北京到上海的火车?\n\t有什么好吃的?\n\t上海外滩有哪些酒店?\n\n\t更多语义请登录:\n\thttp://osp.voicecloud.cn/ \n\t配置您的专属语义吧! - - 请开始说话… - 开始音频流识别 - 上传联系人 - 上传用户词表 - 上传成功 - 词表下载失败或内容为空 - 下载成功 - iat_show - 显示听写界面 - 结果动态修正 + $APP_KEY + 取消语音 + + - 取消语音 - - - 本地合成 - 在线合成 - - - local - cloud - - - 小燕—女青、中英、普通话 - 小宇—男青、中英、普通话 - 凯瑟琳—女青、英 - 亨利—男青、英 - 玛丽—女青、英 - 小研—女青、中英、普通话 - 小琪—女青、中英、普通话 - 小峰—男青、中英、普通话 - 小梅—女青、中英、粤语 - 小莉—女青、中英、台湾普通话 - 小蓉—女青、中、四川话 - 小芸—女青、中、东北话 - 小坤—男青、中、河南话 - 小强—男青、中、湖南话 - 小莹—女青、中、陕西话 - 小新—男童、中、普通话 - 楠楠—女童、中、普通话 - 老孙—男老、中、普通话 - - - xiaoyan - xiaoyu - catherine - henry - vimary - vixy - xiaoqi - vixf - xiaomei - xiaolin - xiaorong - xiaoqian - xiaokun - xiaoqiang - vixying - xiaoxin - nannan - vils - - - 正常 - 高兴 - 悲伤 - 生气 - - - neutral - happy - sad - angry - - - 通话 - 系统 - 铃声 - 音乐 - 闹铃 - 通知 - - - 0 - 1 - 2 - 3 - 4 - 5 - - 缓冲进度为%d%%,播放进度为%d%% - - - 普通话 - 粤语 - 河南话 - 英语 - - - mandarin - cantonese - henanese - en_us - - - "[word]\napple\nbanana\norange" - "The quick brown fox jumps over the lazy dog." - "知,痴,是" - "磁铁,率领,脆弱,动手,古筝" - "一座座雪峰插入云霄,峰顶银光闪闪,大大小小的湖泊,像颗颗宝石镶嵌在彩带般的沟谷中。" - - 英语 - 汉语 - - - en_us - zh_cn - - - 单字 - 词语 - 句子 - - - read_syllable - read_word - read_sentence - - - plain - complete - - - - 有标点 - 无标点 - - - 1 - 0 - - - 开启 - 关闭 - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + $APP_KEY - - + diff --git a/src/android/assets/call.bnf b/src/android/assets/call.bnf deleted file mode 100644 index c1cfc60..0000000 --- a/src/android/assets/call.bnf +++ /dev/null @@ -1,12 +0,0 @@ -#BNF+IAT 1.0 UTF-8; -!grammar call; -!slot ; -!slot ; -!slot ; -!slot ; -!start ; -:[][]|[][]; -:张海洋; -:我要|我想|我想要; -:打电话; -:给; \ No newline at end of file diff --git a/src/android/assets/grammar_sample.abnf b/src/android/assets/grammar_sample.abnf deleted file mode 100644 index 0868c79..0000000 --- a/src/android/assets/grammar_sample.abnf +++ /dev/null @@ -1,8 +0,0 @@ -#ABNF 1.0 UTF-8; -language zh-CN; -mode voice; - -root $main; -$main = $place1 到 $place2; -$place1 = 北京|武汉|南京|天津|东京; -$place2 = 上海|合肥; \ No newline at end of file diff --git a/src/android/assets/iattest.wav b/src/android/assets/iattest.wav deleted file mode 100644 index fcee567..0000000 Binary files a/src/android/assets/iattest.wav and /dev/null differ diff --git a/src/android/assets/iflytek/recognize.xml b/src/android/assets/iflytek/recognize.xml index 003dccf..78300c1 100644 Binary files a/src/android/assets/iflytek/recognize.xml and b/src/android/assets/iflytek/recognize.xml differ diff --git a/src/android/assets/keys b/src/android/assets/keys deleted file mode 100644 index 34039f1..0000000 Binary files a/src/android/assets/keys and /dev/null differ diff --git a/src/android/assets/userwords b/src/android/assets/userwords deleted file mode 100644 index 7c107cc..0000000 --- a/src/android/assets/userwords +++ /dev/null @@ -1 +0,0 @@ -{"userword":[{"name":"我的常用词","words":["佳晨实业","蜀南庭苑","高兰路","复联二"]},{"name":"我的好友","words":["李馨琪","鹿晓雷","张集栋","周家莉","叶震珂","熊泽萌"]}]} \ No newline at end of file diff --git a/src/android/libs/Msc.jar b/src/android/libs/Msc.jar index 3bcdb57..2dce377 100644 Binary files a/src/android/libs/Msc.jar and b/src/android/libs/Msc.jar differ diff --git a/src/android/libs/Sunflower.jar b/src/android/libs/Sunflower.jar index 786d584..435ef8c 100644 Binary files a/src/android/libs/Sunflower.jar and b/src/android/libs/Sunflower.jar differ diff --git a/src/android/libs/arm64-v8a/libmsc.so b/src/android/libs/arm64-v8a/libmsc.so index 02d73a3..307dbc9 100644 Binary files a/src/android/libs/arm64-v8a/libmsc.so and b/src/android/libs/arm64-v8a/libmsc.so differ diff --git a/src/android/libs/armeabi-v7a/libmsc.so b/src/android/libs/armeabi-v7a/libmsc.so index 89b8c27..a97128f 100644 Binary files a/src/android/libs/armeabi-v7a/libmsc.so and b/src/android/libs/armeabi-v7a/libmsc.so differ diff --git a/src/android/libs/armeabi/libmsc.so b/src/android/libs/armeabi/libmsc.so index 89b8c27..f6ccced 100644 Binary files a/src/android/libs/armeabi/libmsc.so and b/src/android/libs/armeabi/libmsc.so differ diff --git a/src/android/libs/mips/libmsc.so b/src/android/libs/mips/libmsc.so new file mode 100644 index 0000000..44bc2be Binary files /dev/null and b/src/android/libs/mips/libmsc.so differ diff --git a/src/android/libs/mips64/libmsc.so b/src/android/libs/mips64/libmsc.so new file mode 100644 index 0000000..38dfc96 Binary files /dev/null and b/src/android/libs/mips64/libmsc.so differ diff --git a/src/android/libs/x86/libmsc.so b/src/android/libs/x86/libmsc.so new file mode 100644 index 0000000..bd6e834 Binary files /dev/null and b/src/android/libs/x86/libmsc.so differ diff --git a/src/android/libs/x86_64/libmsc.so b/src/android/libs/x86_64/libmsc.so new file mode 100644 index 0000000..d1f8aa0 Binary files /dev/null and b/src/android/libs/x86_64/libmsc.so differ diff --git a/src/android/res/layout/activity_xunfei_dialog.xml b/src/android/res/layout/activity_xunfei_dialog.xml deleted file mode 100644 index ab8ed1a..0000000 --- a/src/android/res/layout/activity_xunfei_dialog.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/src/android/res/layout/ifly_layout_mnotice_image.xml b/src/android/res/layout/ifly_layout_mnotice_image.xml new file mode 100644 index 0000000..f89a1d5 --- /dev/null +++ b/src/android/res/layout/ifly_layout_mnotice_image.xml @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/src/android/res/values/strings.xml b/src/android/res/values/strings.xml deleted file mode 100644 index c963166..0000000 --- a/src/android/res/values/strings.xml +++ /dev/null @@ -1,155 +0,0 @@ - - XunfeiSpeaking - - - 584e7225 - 本示例为讯飞语音Android平台开发者提供语音听写、语法识别、语义理解和语音合成等代码样例,旨在让用户能够依据该示例快速开发出基于语音接口的应用程序。 - 科大讯飞作为中国最大的智能语音技术提供商,在智能语音技术领域有着长期的研究积累,并在中文语音合成、语音识别、口语评测等多项技术上拥有国际领先的成果。科大讯飞是我国唯一以语音技术为产业化方向的“国家863计划成果产业化基地”… - iFLYTEK is a national key software enterprise dedicated to the research of intelligent speech and language technologies, development of software and chip products, provision of speech information services, and integration of E-government systems. The intelligent speech technology of iFLYTEK, the core technology of the company, represents the top level in the world. - \t上传内容为:\n\t#ABNF 1.0 gb2312;\n\tlanguage zh-CN;\n\tmode voice;\n\troot $main;\n\t$main = $place1 到$place2 ;\n\t$place1 = 北京 | 武汉 | 南京 | 天津 | 东京;\n\t$place2 = 上海 | 合肥; - \t您可以说:\n\t今天的天气怎么样?\n\t北京到上海的火车?\n\t有什么好吃的?\n\t上海外滩有哪些酒店?\n\n\t更多语义请登录:\n\thttp://osp.voicecloud.cn/ \n\t配置您的专属语义吧! - - 请开始说话… - 开始音频流识别 - 上传联系人 - 上传用户词表 - 上传成功 - 词表下载失败或内容为空 - 下载成功 - iat_show - 显示听写界面 - 结果动态修正 - - - - 本地合成 - 在线合成 - - - local - cloud - - - 小燕—女青、中英、普通话 - 小宇—男青、中英、普通话 - 凯瑟琳—女青、英 - 亨利—男青、英 - 玛丽—女青、英 - 小研—女青、中英、普通话 - 小琪—女青、中英、普通话 - 小峰—男青、中英、普通话 - 小梅—女青、中英、粤语 - 小莉—女青、中英、台湾普通话 - 小蓉—女青、中、四川话 - 小芸—女青、中、东北话 - 小坤—男青、中、河南话 - 小强—男青、中、湖南话 - 小莹—女青、中、陕西话 - 小新—男童、中、普通话 - 楠楠—女童、中、普通话 - 老孙—男老、中、普通话 - - - xiaoyan - xiaoyu - catherine - henry - vimary - vixy - xiaoqi - vixf - xiaomei - xiaolin - xiaorong - xiaoqian - xiaokun - xiaoqiang - vixying - xiaoxin - nannan - vils - - - 正常 - 高兴 - 悲伤 - 生气 - - - neutral - happy - sad - angry - - - 通话 - 系统 - 铃声 - 音乐 - 闹铃 - 通知 - - - 0 - 1 - 2 - 3 - 4 - 5 - - 缓冲进度为%d%%,播放进度为%d%% - - - 普通话 - 粤语 - 河南话 - 英语 - - - mandarin - cantonese - henanese - en_us - - - "[word]\napple\nbanana\norange" - "The quick brown fox jumps over the lazy dog." - "知,痴,是" - "磁铁,率领,脆弱,动手,古筝" - "一座座雪峰插入云霄,峰顶银光闪闪,大大小小的湖泊,像颗颗宝石镶嵌在彩带般的沟谷中。" - - 英语 - 汉语 - - - en_us - zh_cn - - - 单字 - 词语 - 句子 - - - read_syllable - read_word - read_sentence - - - plain - complete - - - - 有标点 - 无标点 - - - 1 - 0 - - - 开启 - 关闭 - - diff --git a/src/android/res/xml/iat_setting.xml b/src/android/res/xml/iat_setting.xml deleted file mode 100644 index d5a66c7..0000000 --- a/src/android/res/xml/iat_setting.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/android/res/xml/ise_settings.xml b/src/android/res/xml/ise_settings.xml deleted file mode 100644 index 473f44a..0000000 --- a/src/android/res/xml/ise_settings.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/src/android/res/xml/tts_setting.xml b/src/android/res/xml/tts_setting.xml deleted file mode 100644 index dc42482..0000000 --- a/src/android/res/xml/tts_setting.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/src/android/res/xml/understand_setting.xml b/src/android/res/xml/understand_setting.xml deleted file mode 100644 index fc36110..0000000 --- a/src/android/res/xml/understand_setting.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/src/android/src/com/thomas/xunfeilistenspeaking/XunfeiDialogActivity.java b/src/android/src/com/thomas/xunfeilistenspeaking/XunfeiDialogActivity.java index 78ce2e2..5f15158 100644 --- a/src/android/src/com/thomas/xunfeilistenspeaking/XunfeiDialogActivity.java +++ b/src/android/src/com/thomas/xunfeilistenspeaking/XunfeiDialogActivity.java @@ -12,6 +12,7 @@ import android.widget.Toast; import com.iflytek.cloud.*; import com.iflytek.cloud.ui.RecognizerDialog; import com.iflytek.cloud.ui.RecognizerDialogListener; +import com.iflytek.cloud.util.ResourceUtil; import com.iflytek.sunflower.FlowerCollector; import org.json.JSONException; import org.json.JSONObject; @@ -46,7 +47,7 @@ public class XunfeiDialogActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(getResources().getIdentifier("activity_xunfei_dialog","layout",getPackageName())); + setContentView(getResources().getIdentifier("ifly_layout_mnotice_image","layout",getPackageName())); isShowDialog = getIntent().getBooleanExtra("isShowDialog",false); punc = getIntent().getStringExtra("punc"); @@ -252,6 +253,10 @@ public class XunfeiDialogActivity extends Activity{ // 设置听写引擎 mIat.setParameter(SpeechConstant.ENGINE_TYPE, mEngineType); + if (mEngineType.equals(SpeechConstant.TYPE_LOCAL)) { + // 设置本地识别资源 + mIat.setParameter(ResourceUtil.ASR_RES_PATH, getResourcePath()); + } // 设置返回结果格式 mIat.setParameter(SpeechConstant.RESULT_TYPE, "json"); @@ -288,6 +293,15 @@ public class XunfeiDialogActivity extends Activity{ mIat.setParameter(SpeechConstant.ASR_AUDIO_PATH, Environment.getExternalStorageDirectory() + "/msc/iat.wav"); } + private String getResourcePath(){ + StringBuffer tempBuffer = new StringBuffer(); + //识别通用资源 + tempBuffer.append(ResourceUtil.generateResourcePath(this, ResourceUtil.RESOURCE_TYPE.assets, "iat/common.jet")); + tempBuffer.append(";"); + tempBuffer.append(ResourceUtil.generateResourcePath(this, ResourceUtil.RESOURCE_TYPE.assets, "iat/sms_16k.jet")); + //识别8k资源-使用8k的时候请解开注释 + return tempBuffer.toString(); + } @Override protected void onDestroy() { diff --git a/src/android/src/com/thomas/xunfeilistenspeaking/XunfeiListenSpeaking.java b/src/android/src/com/thomas/xunfeilistenspeaking/XunfeiListenSpeaking.java index 22d9aa1..3706c3f 100644 --- a/src/android/src/com/thomas/xunfeilistenspeaking/XunfeiListenSpeaking.java +++ b/src/android/src/com/thomas/xunfeilistenspeaking/XunfeiListenSpeaking.java @@ -1,9 +1,12 @@ package com.thomas.xunfeilistenspeaking; +import android.Manifest; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.Handler; @@ -13,18 +16,25 @@ import com.iflytek.cloud.*; import com.iflytek.sunflower.FlowerCollector; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaPlugin; +import org.apache.cordova.PermissionHelper; +import org.apache.cordova.PluginResult; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; +import java.util.List; /** * Created by Thomas.Wang on 17/2/9. */ public class XunfeiListenSpeaking extends CordovaPlugin{ private static String TAG = XunfeiListenSpeaking.class.getSimpleName(); + + public static final int PERMISSION_DENIED_ERROR = 20; + private Context context; private CallbackContext callbackContext; private Toast mToast; @@ -40,18 +50,24 @@ public class XunfeiListenSpeaking extends CordovaPlugin{ private String mEngineType = SpeechConstant.TYPE_CLOUD; // 用HashMap存储听写结果 private HashMap mIatResults = new LinkedHashMap(); + + private boolean isShowDialog; + private String punc; + @Override protected void pluginInitialize() { super.pluginInitialize(); context = cordova.getActivity(); // SpeechUtility.createUtility(context, SpeechConstant.APPID +"=584e7225"); - SpeechUtility.createUtility(context, SpeechConstant.APPID +"="+context.getString(getId("app_id","string"))); + String appid = context.getString(getId("app_id","string")); + SpeechUtility.createUtility(context, SpeechConstant.APPID +"="+appid); } private int getId(String idName,String type){ return context.getResources().getIdentifier(idName, type,context.getPackageName()); } private static final int DIALOG_ACTIVIT_CODE = 0; + @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { @@ -61,28 +77,38 @@ public class XunfeiListenSpeaking extends CordovaPlugin{ // boolean isShowDialog = args.getBoolean(0); // String punc = args.getBoolean(1)?"1":"0"; - boolean isShowDialog ; +// boolean isShowDialog ; try { isShowDialog = args.getBoolean(0); }catch (Exception e){ isShowDialog = true; } - String punc; +// String punc; try{ punc = args.getBoolean(1)?"1":"0"; }catch (Exception e){ punc = "1"; } - if (isShowDialog){ - Intent intent = new Intent(); - intent.setClass(context, XunfeiDialogActivity.class); - intent.putExtra("isShowDialog",isShowDialog); - intent.putExtra("punc",punc); - cordova.startActivityForResult( this,intent, DIALOG_ACTIVIT_CODE); - }else { - startListenWidthNotDialog(punc); - } + boolean hasRecordAudioPermission = PermissionHelper.hasPermission(this, Manifest.permission.RECORD_AUDIO); + boolean hasReadExternalStoragePermission = PermissionHelper.hasPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE); + boolean hasWriteExternalStoragePermission = PermissionHelper.hasPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE); + if(hasRecordAudioPermission && hasReadExternalStoragePermission && hasWriteExternalStoragePermission) { + this.startListen(); + } + else { + List permissions = new ArrayList(3); + if (!hasRecordAudioPermission) { + permissions.add(Manifest.permission.RECORD_AUDIO); + } + if (!hasReadExternalStoragePermission) { + permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE); + } + if (!hasWriteExternalStoragePermission) { + permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); + } + PermissionHelper.requestPermissions(this, 0, permissions.toArray(new String[0])); + } return true; } @@ -121,6 +147,17 @@ public class XunfeiListenSpeaking extends CordovaPlugin{ return false; } + private void startListen() { + if (isShowDialog){ + Intent intent = new Intent(); + intent.setClass(context, XunfeiDialogActivity.class); + intent.putExtra("isShowDialog",isShowDialog); + intent.putExtra("punc",punc); + cordova.startActivityForResult( this,intent, DIALOG_ACTIVIT_CODE); + }else { + startListenWidthNotDialog(punc); + } + } private void stopListen(){ if (mIat!=null&&mIat.isListening()) { @@ -395,5 +432,17 @@ public class XunfeiListenSpeaking extends CordovaPlugin{ }); } + public void onRequestPermissionResult(int requestCode, String[] permissions, + int[] grantResults) throws JSONException { + for (int r : grantResults) { + if (r == PackageManager.PERMISSION_DENIED) { + this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, PERMISSION_DENIED_ERROR)); + return; + } + } + startListen(); + } + + } diff --git a/src/ios/iflyMSC.framework/Headers/IFlyAudioSession.h b/src/ios/iflyMSC.framework/Headers/IFlyAudioSession.h new file mode 100644 index 0000000..e3b975e --- /dev/null +++ b/src/ios/iflyMSC.framework/Headers/IFlyAudioSession.h @@ -0,0 +1,35 @@ +// +// IFlyAudioSession.h +// MSCDemo +// +// Created by AlexHHC on 1/9/14. +// +// + +#import + +/** + * 音频环境初始化,设置AVAudioSession的Category属性。 + */ +@interface IFlyAudioSession : NSObject + +/** + * 初始化播音环境,主要用于合成播放器。 + * + * 此接口主要根据原来的音频环境,重新优化设置AVAudioSession的Category属性值。
+ * 若原来的Category属性值为AVAudioSessionCategoryPlayAndRecord,则添加AVAudioSessionCategoryOptionDefaultToSpeaker|AVAudioSessionCategoryOptionAllowBluetooth选项;若为其他Category属性值且isMPCenter为NO,则设置Category属性值为AVAudioSessionCategoryPlayback,选项为AVAudioSessionCategoryOptionMixWithOthers;若为其他Category属性值且isMPCenter为YES,则保持原来的设置,不做任何更改。 + * + * @param isMPCenter 是否初始化MPPlayerCenter:0不初始化,1初始化。此参数只在AVAudioSession的Category属性值不为AVAudioSessionCategoryPlayAndRecord时设置有效。 + */ ++(void) initPlayingAudioSession:(BOOL)isMPCenter; + +/** + * 初始化录音环境,主要用于识别录音器。 + * + * 设置AVAudioSession的Category属性值为AVAudioSessionCategoryPlayAndRecord,选项为AVAudioSessionCategoryOptionDefaultToSpeaker|AVAudioSessionCategoryOptionAllowBluetooth。 + * + * @return 成功返回YES,失败返回NO + */ ++(BOOL) initRecordingAudioSession; + +@end diff --git a/src/ios/iflyMSC.framework/Headers/IFlyContact.h b/src/ios/iflyMSC.framework/Headers/IFlyContact.h deleted file mode 100644 index 22d4878..0000000 --- a/src/ios/iflyMSC.framework/Headers/IFlyContact.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// IFlyContact.h -// msc -// -// Created by ypzhao on 13-3-1. -// Copyright (c) 2013年 IFLYTEK. All rights reserved. -// - -#import - -/*! - * 此接口为获取通信录中的联系人 - * 获取联系人是为了在进行语音识别时(sms)能更好的识别出您说的人名,联系人上传是属于个性化的 - * 一部分. - */ -@interface IFlyContact : NSObject - -/*! - * 获取联系人 - * 调用此方法需要添加 AddressBook.framework 到工程中,调用此方法后可以直接将通信录中的联系 - * 人转化为语音云识别的数据结构。您可以将获取的数据通过IFlyDataUploader类,上传到语音云,我们 - * 只获取通信录中的人名 - * - * @return 返回联系人信息 - */ -- (NSString *) contact; -@end diff --git a/src/ios/iflyMSC.framework/Headers/IFlyDataUploader.h b/src/ios/iflyMSC.framework/Headers/IFlyDataUploader.h index 1ffb6c8..5eb0584 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlyDataUploader.h +++ b/src/ios/iflyMSC.framework/Headers/IFlyDataUploader.h @@ -12,7 +12,7 @@ @class IFlySpeechError; /*! - * 数据上传类 + * 数据上传类,主要用于上传语法文件或上传联系人、词表等个性化数据。 */ @interface IFlyDataUploader : NSObject diff --git a/src/ios/iflyMSC.framework/Headers/IFlyISVDelegate.h b/src/ios/iflyMSC.framework/Headers/IFlyISVDelegate.h index a3c4e8c..814b676 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlyISVDelegate.h +++ b/src/ios/iflyMSC.framework/Headers/IFlyISVDelegate.h @@ -11,33 +11,33 @@ @class IFlySpeechError; -/** +/*! * 声纹回调协议 */ @protocol IFlyISVDelegate -/** +/*! * 声纹结果回调 * * @param dic 结果 */ -(void) onResult:(NSDictionary *)dic; -/** +/*! * 错误码回调 * * @param errorCode 错误码 */ --(void) onError:(IFlySpeechError *) errorCode; +-(void) onCompleted:(IFlySpeechError *) errorCode; @optional -/** +/*! * 等待结果 */ -(void) onRecognition; -/** +/*! * 音量改变回调 * * @param volume 音量值 diff --git a/src/ios/iflyMSC.framework/Headers/IFlyISVRecognizer.h b/src/ios/iflyMSC.framework/Headers/IFlyISVRecognizer.h index c7e3bef..a8e52b7 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlyISVRecognizer.h +++ b/src/ios/iflyMSC.framework/Headers/IFlyISVRecognizer.h @@ -17,113 +17,111 @@ { } + +/*! + * The delegate of FlyISVRecognizer responsing to IFlyISVDelegate. + */ @property (assign) id delegate; - -/* - * FlyISVRecognizer is a kind of Singleton calss - * the function can be used as below: - IFLyISVRecognizer *recognizer=[IFlyISVRecognizer creteRecognizer: self]; +/*! + * FlyISVRecognizer is a kind of Singleton calss.The function can be used as below:
+ * IFLyISVRecognizer *recognizer=[IFlyISVRecognizer creteRecognizer: self]; */ - +(instancetype) sharedInstance; -/* - * genrerate a serial number password - * princeple: - 1.number serial has no 1 in itself; - 2.the nuber serial has no same number("98765432"is right while "99876543" is wrong) - * @length: the serial number's length,length of "98765432" is 8, - generally length is 8 and other value is forbidden +/*! + * Genrerate a serial number password
+ * Princeple:
+ * 1.Number serial has no 1 in itself;
+ * 2.The nuber serial has no same number("98765432"is right while "99876543" is wrong) + * + * @param length the serial number's length,length of "98765432" is 8,generally length is 8 and other value is forbidden */ - -(NSString*) generatePassword:(int)length; -/* - * Used to get password from server - * @pwdt: - when pwdt is 1,the function will return chinese text; - while pwdt is 2, the funciton will return number serial +/*! + * Used to get password from server + * + * @param pwdt when pwdt is 1,the function will return chinese text;while pwdt is 2, the funciton will return number serial */ - -(NSArray*) getPasswordList:(int)pwdt; -/* - * Used to judge if the engine is running in listenning - * return value: - YES: the engine is listenning; - No : the engine is not listenning +/*! + * Used to judge if the engine is running in listenning + * + * @return YES: the engine is listenning;
No : the engine is not listenning */ -(BOOL) isListening; -/* - * Used to query or delete the voiceprint model in server - * @cmd: - "del": delete model - "que": query model - * @authid: user id ,can be @"tianxia" or other; - * @pwdt: voiceprint type - 1: fixed txt voiceprint code ,like @"我的地盘我做主" - 2: free voiceprint code , user can speek anything,but 5 times - trainning the speech shall be same - 3: number serial voiceprint code ,like @"98765432" and so on - * @ptxt: voiceprint txt,only fixed voiceprint and number serial have this, - in free voiceprint model this param shall be set nil - * @vid: another voiceprint type model,user can use this to query or delete - model in server can be @"jakillasdfasdjjjlajlsdfhdfdsadff",totally 32 bits; - * NOTES: - when vid is not nil,then the server will judge the vid first - while the vid is nil, server can still query or delete the voiceprint model - by other params +/*! + * Used to query or delete the voiceprint model in server + * + * @param cmd "del": delete model;
"que": query model; + * @param authid: user id ,can be @"tianxia" or other; + * @param pwdt voiceprint type
+ * 1: fixed txt voiceprint code ,like @"我的地盘我做主";
+ * 2: free voiceprint code , user can speek anything,but 5 times trainning the speech shall be same;
+ * 3: number serial voiceprint code ,like @"98765432" and so on. + * @param ptxt voiceprint txt,only fixed voiceprint and number serial have this,in free voiceprint model this param shall be set nil. + * @param vid another voiceprint type model,user can use this to query or delete model in server can be @"jakillasdfasdjjjlajlsdfhdfdsadff",totally 32 bits;
+ * NOTES:
+ * when vid is not nil,then the server will judge the vid first; while the vid is nil, server can still query or delete the voiceprint model by other params. */ -(BOOL) sendRequest:(NSString*)cmd authid:(NSString *)auth_id pwdt:(int)pwdt ptxt:(NSString *)ptxt vid:(NSString *)vid err:(int *)err; -/* - * set the voiceprint params - * @"sst" : @"train" or @"verify" - * @"auth_id" : @"tianxia" or ther - * @"sub" : @"ivp" - * @"ptxt" : - * @"rgn" : @"5" - * @"pwdt" : @"1",or @"2", or @"3" - * @"auf" : @"audio/L16;rate=16000" or @"audio/L16;rate=8000" - * @"vad_enable : @"1" or @"0" - * @"vad_timeout" : @"3000" - * @"vad_speech_tail": @"100" +/*! + * Set the voiceprint params + * + * | key | value | + * |:---------------:|:-------------------------------------------------:| + * | sst | @"train" or @"verify" | + * | auth_id | @"tianxia" or other | + * | sub | @"ivp" | + * | ptxt | | + * | rgn | @"5" | + * | pwdt | @"1",or @"2", or @"3" | + * | auf | @"audio/L16;rate=16000" or @"audio/L16;rate=8000" | + * | vad_enable | @"1" or @"0" | + * | vad_timeout | @"3000" | + * | vad_speech_tail | @"100" | + * + * @param value 参数值 + * @param key 参数类型 + * + * @return 设置成功返回YES,失败返回NO */ -(BOOL) setParameter:(NSString *)value forKey:(NSString *)key; -/* - * get the voiceprint params - * used the same as function of setParameter +/*! + * Get the voiceprint params used the same as function of setParameter */ -(NSString*) getParameter:(NSString *)key; -/* - * start recording +/*! + * Start recording */ -(void) startListening; -/* - * stop recording +/*! + * Stop recording */ -(void) stopListening; -/* - * cancel recording,like function stopListening +/*! + * Cancel recording,like function stopListening */ -(void) cancel; /* cancel recognization */ diff --git a/src/ios/iflyMSC.framework/Headers/IFlyMSC.h b/src/ios/iflyMSC.framework/Headers/IFlyMSC.h index 65e62be..d956909 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlyMSC.h +++ b/src/ios/iflyMSC.framework/Headers/IFlyMSC.h @@ -9,7 +9,7 @@ #ifndef MSC_IFlyMSC_h #define MSC_IFlyMSC_h -#import "IFlyContact.h" +#import "IFlyAudioSession.h" #import "IFlyDataUploader.h" #import "IFlyDebugLog.h" #import "IFlyISVDelegate.h" @@ -27,16 +27,12 @@ #import "IFlySpeechRecognizerDelegate.h" #import "IFlySpeechSynthesizer.h" #import "IFlySpeechSynthesizerDelegate.h" -#import "IFlySpeechUnderstander.h" #import "IFlySpeechUtility.h" -#import "IFlyTextUnderstander.h" #import "IFlyUserWords.h" #import "IFlyPcmRecorder.h" -#import "IFlySpeechEvaluator.h" -#import "IFlySpeechEvaluatorDelegate.h" - #import "IFlyVoiceWakeuper.h" #import "IFlyVoiceWakeuperDelegate.h" + #endif diff --git a/src/ios/iflyMSC.framework/Headers/IFlyPcmRecorder.h b/src/ios/iflyMSC.framework/Headers/IFlyPcmRecorder.h index 5cb9d64..1d624b3 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlyPcmRecorder.h +++ b/src/ios/iflyMSC.framework/Headers/IFlyPcmRecorder.h @@ -14,17 +14,17 @@ #import #import #import -#import +#import @class IFlyPcmRecorder; -/** +/*! * 录音协议 */ @protocol IFlyPcmRecorderDelegate -/** +/*! * 回调音频数据 * * @param buffer 音频数据 @@ -32,7 +32,7 @@ */ - (void) onIFlyRecorderBuffer: (const void *)buffer bufferSize:(int)size; -/** +/*! * 回调音频的错误码 * * @param recoder 录音器 @@ -42,7 +42,7 @@ @optional -/** +/*! * 回调录音音量 * * @param power 音量值 @@ -52,53 +52,65 @@ @end -/** - * 录音封装 +/*! + * 录音器控件 */ @interface IFlyPcmRecorder : NSObject -/** +/*! * 录音委托对象 */ -@property (assign) id delegate; +@property (nonatomic,assign) id delegate; -/** +/*! + * 用于设置是否在录音结束后发送Deactive通知,默认是YES:发送 + */ +@property (nonatomic,assign) BOOL isNeedDeActive; + +/*! * 单例模式 * * @return 返回录音对象单例 */ + (instancetype) sharedInstance; -/** +/*! * 开始录音 * * @return 开启录音成功返回YES,否则返回NO */ - (BOOL) start; -/** +/*! * 停止录音 */ - (void) stop; -/** +/*! * 设置音频采样率 * * @param rate -[in] 采样率,8k/16k */ - (void) setSample:(NSString *) rate; -/* - * 设置录音时间间隔参数 +/*! + * 设置录音音量回调时间间隔参数 */ - (void) setPowerCycle:(float) cycle; -/** +/*! * 保存录音 * * @param savePath 音频保存路径 */ -(void) setSaveAudioPath:(NSString *)savePath; +/*! + * 录音器是否完成 + * + * @return 录音器完全结束返回YES,否则返回NO + */ +-(BOOL) isCompleted; + @end diff --git a/src/ios/iflyMSC.framework/Headers/IFlyRecognizerView.h b/src/ios/iflyMSC.framework/Headers/IFlyRecognizerView.h index 3b67472..483a217 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlyRecognizerView.h +++ b/src/ios/iflyMSC.framework/Headers/IFlyRecognizerView.h @@ -12,8 +12,8 @@ @protocol IFlyRecognizerViewDelegate ; /*! - * 语音识别控件 - * 录音时触摸控件结束录音,开始识别(相当于旧版的停止);触摸其他位置,取消录音,结束会话(取消) + * 语音识别控件
+ * 录音时触摸控件结束录音,开始识别(相当于旧版的停止);触摸其他位置,取消录音,结束会话(取消)
* 出错时触摸控件,重新开启会话(相当于旧版的再说一次);触摸其他位置,取消录音,结束会话(取消) * */ @@ -87,24 +87,21 @@ /*! * 设置识别引擎的参数 - * 识别的引擎参数(key)取值如下: - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
*参数描述
domain应用的领域: 取值为:iat、search、video、poi、music、asr;
iat:普通文本听写;
search:热词搜索;
video:视频音乐搜索;
video:视频音乐搜索;
asr:关键词识别;
vad_bos前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;
engine指定iat识别默认值为5000;
其他情况默认值为 4000,范围 0-10000。
vad_eos后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,
自动停止录音;单位:ms;
sms 识别默认值为 1800;
其他默认值为 700,范围 0-10000。
sample_rate采样率:目前支持的采样率设置有 16000 和 8000。
asr_ptt标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。
result_type返回结果的数据格式: 可设置为json,xml,plain,默认为json。
grammarID识别的语法id: 只针对 domain 设置为”asr”的应用。
asr_audio_path音频文件名: 设置此参数后,将会自动保存识别的录音文件。
路径为Documents/(指定值)。
不设置或者设置为nil,则不保存音频。
params扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。
+ * + * 识别的引擎参数(key)取值如下:
+ * + * | 参数 | 描述 | + * |-----------------|-------------------------------------------------------| + * | domain | 应用的领域: 取值为:iat、search、video、poi、music、asr;
iat:普通文本听写;
search:热词搜索;
video:视频音乐搜索;
asr:关键词识别;| + * | vad_bos | 前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;
engine指定iat识别默认值为5000;
其他情况默认值为 4000,范围 0-10000。| + * | vad_eos | 后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,自动停止录音;单位:ms;
sms 识别默认值为 1800;
其他默认值为 700,范围 0-10000。| + * | sample_rate | 采样率:目前支持的采样率设置有 16000 和 8000。| + * | asr_ptt | 标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。| + * | result_type | 返回结果的数据格式: 可设置为json,xml,plain,默认为json。| + * | grammarID | 识别的语法id: 只针对 domain 设置为”asr”的应用。| + * | asr_audio_path | 音频文件名: 设置此参数后,将会自动保存识别的录音文件。
路径为Documents/(指定值)。
不设置或者设置为nil,则不保存音频。| + * | params | 扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。| + * * @param value 参数对应的取值 * @param key 识别引擎参数 * diff --git a/src/ios/iflyMSC.framework/Headers/IFlyRecognizerViewDelegate.h b/src/ios/iflyMSC.framework/Headers/IFlyRecognizerViewDelegate.h index 07c2035..c05bce6 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlyRecognizerViewDelegate.h +++ b/src/ios/iflyMSC.framework/Headers/IFlyRecognizerViewDelegate.h @@ -29,7 +29,7 @@ * * @param error 识别结束错误码 */ -- (void)onError: (IFlySpeechError *) error; +- (void)onCompleted: (IFlySpeechError *) error; @optional diff --git a/src/ios/iflyMSC.framework/Headers/IFlySetting.h b/src/ios/iflyMSC.framework/Headers/IFlySetting.h index c19f245..2054da6 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlySetting.h +++ b/src/ios/iflyMSC.framework/Headers/IFlySetting.h @@ -35,7 +35,7 @@ typedef NS_OPTIONS(NSInteger, LOG_LEVEL){ }; /*! - * 此接口为iflyMSC sdk 配置接口。 + * 此接口为iflyMSC sdk 配置接口。
* 可以获取版本号,设置日志打印等级等 */ @interface IFlySetting : NSObject @@ -55,8 +55,8 @@ typedef NS_OPTIONS(NSInteger, LOG_LEVEL){ + (LOG_LEVEL) logLvl; /*! - * 是否打印控制台log - * 在软件发布时,建议关闭此log。 + * 是否打印控制台log
+ * 在软件发布时,建议关闭此log。 * * @param showLog -[in] YES,打印log;NO,不打印 */ @@ -64,26 +64,21 @@ typedef NS_OPTIONS(NSInteger, LOG_LEVEL){ /*! * 设置日志msc.log生成路径以及日志等级 - * - * - * - * - * - * - * - * - * - * - * - * - *
*日志打印等级描述
LVL_ALL全部打印
LVL_DETAIL高,异常分析需要的级别
LVL_NORMAL中,打印基本日志信息
LVL_LOW低,只打印主要日志信息
LVL_NONE不打印
+ * + * | 日志打印等级 | 描述 | + * |------------------------|-----------------------------------| + * | LVL_ALL | 全部打印 | + * | LVL_DETAIL | 高,异常分析需要的级别 | + * | LVL_NORMAL | 中,打印基本日志信息 | + * | LVL_LOW | 低,只打印主要日志信息 | + * | LVL_NONE | 不打印 | * * @param level -[in] 日志打印等级 */ + (void) setLogFile:(LOG_LEVEL) level; /*! - * 设置日志文件的路径 + * 设置日志文件的路径
* 日志文件默认存放在Documents目录。 * * @param path -[in] 日志文件的全路径 diff --git a/src/ios/iflyMSC.framework/Headers/IFlySpeechConstant.h b/src/ios/iflyMSC.framework/Headers/IFlySpeechConstant.h index 1507d79..0166dca 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlySpeechConstant.h +++ b/src/ios/iflyMSC.framework/Headers/IFlySpeechConstant.h @@ -9,7 +9,7 @@ #import /*! - * 公共常量类 + * 公共常量类
* 主要定义参数的key value值 */ @interface IFlySpeechConstant : NSObject @@ -18,7 +18,7 @@ #pragma mark - 通用参数key /*! - * 语音应用ID + * 语音应用ID
* 通过开发者网站申请 * * @return 语音应用IDkey @@ -47,6 +47,13 @@ */ +(NSString*)ACCENT_HENANESE; +/*! + * 语言区域。 + * + * @return 四川话value。 + */ ++(NSString*)ACCENT_SICHUANESE; + /*! * 语言区域。 * @@ -55,7 +62,7 @@ +(NSString*)ACCENT_CANTONESE; /*! - * 语言 + * 语言
* 支持:zh_cn,zh_tw,en_us
* * @return 语言key @@ -85,8 +92,7 @@ +(NSString*)LANGUAGE_ENGLISH; /*! - * 返回结果的数据格式, - * 可设置为json,xml,plain,默认为json。 + * 返回结果的数据格式,可设置为json,xml,plain,默认为json。 * * @return 返回结果的数据格式key */ @@ -107,15 +113,15 @@ +(NSString*)DATA_TYPE; /*! - * 语音输入超时时间 - * 单位:ms,默认30000 + * 语音输入超时时间
+ * 单位:ms,默认30000 * * @return 语音输入超时时间key */ +(NSString*)SPEECH_TIMEOUT; /*! - * 网络连接超时时间 + * 网络连接超时时间
* 单位:ms,默认20000 * * @return 网络连接超时时间key @@ -136,17 +142,17 @@ */ +(NSString*)PARAMS; -/** +/*! * 加密参数 * - * 支持类型:ssl 加密 tcp 非加密 默认:tcp + * 支持类型:ssl 加密 tcp 非加密 默认:tcp
* 建议对安全性要求较高时使用ssl。 * * @return 加密参数key */ +(NSString*)PROT_TYPE; -/** +/*! * ssl证书内容 * * @return ssl证书内容key @@ -168,7 +174,7 @@ +(NSString*)SAMPLE_RATE; /*! - * 合成、识别、唤醒、评测、声纹等业务采样率。 + * 合成、识别、唤醒、声纹等业务采样率。 * * @return 合成及识别采样率8K Value。 */ @@ -182,8 +188,8 @@ +(NSString*)SAMPLE_RATE_16K; /*! - * 引擎类型。 - * 可选:local,cloud,auto + * 引擎类型。
+ * 可选:local,cloud,auto
* 默认:auto * * @return 引擎类型key。 @@ -232,25 +238,46 @@ */ +(NSString*)RESULT_ENCODING; -/** - * 是否初始化播放器 - * SDK内部播放器采用音频队列实现,有部分外部需求需要自定义音频队列,可以通过此开关控制 +/*! + * 是否初始化播放器
+ * SDK内部播放器采用音频队列实现,有部分外部需求需要自定义音频队列,可以通过此开关控制
* 0:不初始化,非0或者参数为空:初始化,默认初始化 - * @return 是否初始化播放器 参数key + * + * @return 是否初始化播放器参数key */ +(NSString*)PLAYER_INIT; +/*! + * 是否播放器结束后发送deactive系统通知
+ * SDK内部播放器结束后可通过此开关发送deactive系统通知,使其他被中断的音频应用解除中断
+ * 0:不发送,非0或者参数为空:发送,默认发送 + * + * @return 是否播放器结束后发送deactive系统通知参数key + */ ++(NSString*)PLAYER_DEACTIVE; + /** - * 是否初始化录音器 - * SDK内部录音器采用音频队列实现,有部分外部需求需要自定义音频队列,可以通过此开关控制 + * 是否初始化录音器
+ * SDK内部录音器采用音频队列实现,有部分外部需求需要自定义音频队列,可以通过此开关控制
* 0:不初始化,非0或者参数为空:初始化,默认初始化 - * @return 是否初始化录音器 参数key + * + * @return 是否初始化录音器参数key */ +(NSString*)RECORDER_INIT; +/** + * 是否录音器结束后发送deactive系统通知
+ * SDK内部录音器结束后可通过此开关发送deactive系统通知,使其他被中断的音频应用解除中断
+ * 0:不发送,非0或者参数为空:发送,默认发送 + * + * @return 是否录音器结束后发送deactive系统通知参数key + */ ++(NSString*)RECORDER_DEACTIVE; + + #pragma mark - 合成相关设置key /*! - * 语速 + * 语速
* 范围 (0~100) 默认值:50 * * @return 语速key @@ -258,7 +285,7 @@ +(NSString*)SPEED; /*! - * 音调 + * 音调
* 范围(0~100)默认值:50 * * @return 音调key @@ -268,8 +295,9 @@ /*! * 合成录音保存路径 * + * 注意:只需要设置文件名则可,会自动拼接到[IFlySetting setLogFilePath]接口设置的目录后 + * * @return 合成录音保存路径key - * @注意 只需要设置文件名则可,会自动拼接到IFlySetting setLogFilePath接口设置的目录后 */ +(NSString*)TTS_AUDIO_PATH; @@ -281,7 +309,7 @@ +(NSString*)VAD_ENABLE; /*! - * VAD前端点超时 + * VAD前端点超时
* 范围:0-10000(单位ms) * * @return VAD前端点超时key @@ -289,7 +317,7 @@ +(NSString*)VAD_BOS; /*! - * VAD后端点超时 。 + * VAD后端点超时。
* 可选范围:0-10000(单位ms) * * @return VAD后端点超时key @@ -344,32 +372,30 @@ /*! * 发音人 - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
*云端发音人名称参数
小燕xiaoyan
小宇xiaoyu
凯瑟琳catherine
亨利henry
玛丽vimary
小研vixy
小琪vixq
小峰vixf
小梅vixl
小莉vixq
小蓉(四川话)vixr
小芸vixyun
小坤vixk
小强vixqa
小莹vixying
小新vixx
楠楠vinn
老孙vils
+ * + * 云端支持如下发音人:
+ * 对于网络TTS的发音人角色,不同引擎类型支持的发音人不同,使用中请注意选择。
+ * + * | 发音人 | 参数 | + * |:--------:|:----------------:| + * | 小燕 | xiaoyan | + * | 小宇 | xiaoyu | + * | 凯瑟琳 | catherine | + * | 亨利 | henry | + * | 玛丽 | vimary | + * | 小研 | vixy | + * | 小琪 | vixq | + * | 小峰 | vixf | + * | 小梅 | vixl | + * | 小莉 | vixq | + * | 小蓉 | vixr | + * | 小芸 | vixyun | + * | 小坤 | vixk | + * | 小强 | vixqa | + * | 小莹 | vixyin | + * | 小新 | vixx | + * | 楠楠 | vinn | + * | 老孙 | vils | * * @return 发音人key */ @@ -377,19 +403,22 @@ /*! * 发音人ID key。 + * * @return 发音人ID key */ +(NSString*)VOICE_ID; /*! * 发音人语种 key。 + * * 参数值:0:Auto 1:中文 2英文 ,默认 0. + * * @return 发音人ID key */ +(NSString*)VOICE_LANG; /*! - * 音量 + * 音量
* 范围(0~100) 默认值:50 * * @return 音量key @@ -397,35 +426,34 @@ +(NSString*)VOLUME ; /*! - * 合成音频播放缓冲时间 - * 即缓冲多少秒音频后开始播放,如tts_buffer_time=1000; + * 合成音频播放缓冲时间
+ * 即缓冲多少秒音频后开始播放,如tts_buffer_time=1000;
* 默认缓冲1000ms毫秒后播放。 * * @return 合成音频播放缓冲时间缓冲时间key */ +(NSString*)TTS_BUFFER_TIME ; -/** 合成数据即时返回 - */ -/** +/*! * 合成数据是否即时返回 - * 是否需要数据回调,为1时,当合成一段音频会通过onEvent回调返回,直接合成结束; + * + * 是否需要数据回调,为1时,当合成一段音频会通过onEvent回调返回,直接合成结束;
* 设置为1为即时返回;0为非即时返回;默认值为0; * - * @return 成数据即时返回key + * @return 合成数据即时返回key */ +(NSString*)TTS_DATA_NOTIFY; -/** +/*! * 预合成文本 * * @return 预合成文本参数key */ +(NSString*)NEXT_TEXT; -/** - * 是否需要打开MPPlayingInfocenter +/*! + * 是否需要打开MPPlayingInfocenter
* 是否需要初始化MPPlayerCenter的属性;0:需要初始化,1:不初始化 * * @return 是否需要打开MPPlayingInfocenter 参数key @@ -435,8 +463,8 @@ #pragma mark - 识别、听写、语义相关设置key /*! - * 录音源 - * 录音时的录音方式,默认为麦克风,设置为1; + * 录音源
+ * 录音时的录音方式,默认为麦克风,设置为1;
* 如果需要外部送入音频,设置为-1,通过WriteAudio接口送入音频。 * * @return 录音源key @@ -479,15 +507,15 @@ +(NSString*)ASR_PTT_NODOT; /*! - * 本地语法名称。 - * 本地语法名称,对应云端的有CLOUD_GRAMMAR + * 本地语法名称。
+ * 本地语法名称,对应云端的有CLOUD_GRAMMAR * * @return 本地语法名称key。 */ +(NSString*)LOCAL_GRAMMAR; /*! - * 云端语法ID。 + * 云端语法ID。
* 云端编译语法返回的表示,早期版本使用GRAMMAR_ID,仍然兼容,但建议使用新的。 * * @return 云端语法ID key。 @@ -530,7 +558,7 @@ +(NSString*)GRAMMAR_LIST; /*! - * 开放语义协议版本号。 + * 开放语义协议版本号。
* 如需使用请在http://osp.voicecloud.cn/上进行业务配置 * * @return 开放语义协议版本号key。 @@ -560,17 +588,24 @@ +(NSString*)IVW_ONESHOT; /*! - * 唤醒工作方式 - * 1:表示唤醒成功后继续录音,0:表示唤醒成功后停止录音。 + * 唤醒工作方式
+ * 1:表示唤醒成功后继续录音,0:表示唤醒成功后停止录音。 * * @return 唤醒工作方式key */ +(NSString*)KEEP_ALIVE; +/*! + * 唤醒录音保存路径 + * + * @return 唤醒录音保存路径key + */ ++(NSString*) IVW_AUDIO_PATH; + #pragma mark - 评测相关设置key /*! * 评测类型
- * 可选值:read_syllable(英文评测不支持):单字;read_word:词语;read_sentence:句子;read_chapter(待开放):篇章。 + * 可选值:read_syllable(英文评测不支持):单字;read_word:词语;read_sentence:句子;read_chapter(待开放):篇章。 * * @return 评测类型 key */ @@ -578,15 +613,15 @@ /*! * 评测结果等级
- * 可选值:complete:完整 ;plain:简单 + * 可选值:complete:完整 ;plain:简单 * * @return 评测结果等级 key */ +(NSString*)ISE_RESULT_LEVEL; /*! - * 评测结果格式 - * 可选值:xml;plain + * 评测结果格式
+ * 可选值:xml;plain * * @return 评测结果格式 key */ @@ -602,7 +637,7 @@ /*! * 朗读跟踪,只对句子和篇章有效
- * 可选值:enable:开启;disable:关闭。 + * 可选值:enable:开启;disable:关闭。 * * @return 朗读跟踪 key */ @@ -617,28 +652,28 @@ +(NSString*)ISE_TRACK_TYPE; #pragma mark - 语记SDK业务key -/** +/*! * 本地所有资源 * * @return 本地所有资源key */ + (NSString *)PLUS_LOCAL_ALL; -/** +/*! * 本地合成资源 * * @return 本地合成资源key */ + (NSString *)PLUS_LOCAL_TTS; -/** +/*! * 本地识别资源 * * @return 本地识别资源key */ + (NSString *)PLUS_LOCAL_ASR; -/** +/*! * 本地唤醒资源 * * @return 本地唤醒资源key @@ -647,110 +682,110 @@ #pragma mark - 身份验证业务key -/** - * auth_id +/*! + * auth_id
* 用于用户注册和登录、查询、删除等业务时标识用户身份 * * @return 用户标识 */ + (NSString*)MFV_AUTH_ID; -/** +/*! * 请求业务类型,可选值:mfv(默认,融合验证),ivp(声纹),ifr(人脸) * * @return 请求业务类型key */ + (NSString*)MFV_SUB; -/** - * 会话类型,不同sub有不同的sst取值。 - * ifr:enroll,verify,identify,reenroll,query,delete +/*! + * 会话类型,不同sub有不同的sst取值。
+ * ifr:enroll,verify,identify,reenroll,query,delete
* ivp:enroll(train),verify,reenroll,query,delete,download * * @return 会话类型key */ + (NSString*)MFV_SST; -/** +/*! * 融合验证模式,仅在融合验证场景下使用。可选值:sin(单一生物特征数据验证),mix(混合生物特征数据验证),agi(灵活生物特征数据验证) * * @return 融合验证模式key */ + (NSString*)MFV_VCM; -/** +/*! * 特征场景,用来说明本次验证将涉及的业务。可选值:ivp,ifr,ivp|ifr * * @return 特征场景 key */ + (NSString*)MFV_SCENES; -/** +/*! * 确认周期(affirmance cycle,单位:s),用户设置的确认超时时间(生命周期),仅在灵活融合验证场景下使用 * * @return 确认周期key */ + (NSString*)MFV_AFC; -/** +/*! * 数据保存路径 * * @return 数据保存路径key */ + (NSString*)MFV_DATA_PATH; -/** +/*! * 训练次数:取值2~9.无默认值,必须明确指定。 * * @return 训练次数key */ + (NSString*)MFV_RGN; -/** +/*! * 声纹确认门限值,验证得分>=tsd验证通过,否则验证失败(该参数目前不支持,作为保留参数。)却只范围:0~100. * * @return 声纹确认门限值key */ + (NSString*)MFV_TSD; -/** +/*! * 密码文本。从服务端下载,比如数字密码所需要的数字串。 * * @return 密码文本key */ + (NSString*)MFV_PTXT; -/** +/*! * 密码类型。取值:1(文本密码),2(自由说),3(数字密码). * * @return 密码类型key */ + (NSString*)MFV_PWDT; -/** +/*! * 取消注册。取值:0(不取消,即不生效),1(取消本次注册). * * @return 取消注册key */ + (NSString*)MFV_FIN; -/** +/*! * 等待超时时间:描述客户端等待结果的超时时间 * * @return 等待超时时间:key */ + (NSString*)MFV_WTT; -/** - * 数据格式 +/*! + * 数据格式
* 声纹为音频采样率支持:16000和8000;人脸为图片格式,支持jpg和gif * * @return 数据格式key */ + (NSString*)MFV_DATA_FORMAT; -/** - * 数据压缩编码 +/*! + * 数据压缩编码
* 声纹为;人脸支持raw,不对图片压缩 * * @return 数据压缩编码key @@ -772,78 +807,95 @@ //7. appid 取值:用户申请的appid 用途: 验证用户 -/** sub 默认值:wfr +/*! + * sub 默认值:wfr
* 用于区分业务类型,web访问方式中,nginx配置不用使用,但是在结构化日志和染色日志记录中使用。 */ + (NSString*) FACE_SUB; -/** WFR +/*! + * WFR
* sub参数的默认值 */ + (NSString*) FACE_WFR; -/** sst +/*! + * sst
* 指定本路会话是属于何种性质 */ + (NSString*) FACE_SST; -/** REG +/*! + * REG
* 人脸图像注册(reg):上传图像,验证图像的有效性,然后存储起来,作为数据源。 */ + (NSString*) FACE_REG; -/** VERIFY + +/*! + * VERIFY
* 人脸图像验证(verify):通过与指定源图像比较,验证人脸相似性。 */ + (NSString*) FACE_VERIFY; -/** DETECT + +/*! + * DETECT
* 人脸图像检测(detect):能够检测出不同姿态方位的人脸在图中的位置。 */ + (NSString*) FACE_DETECT; -/** ALIGN + +/*! + * ALIGN
* 人脸图像聚焦(align):在给定人脸框下自动标定出两眼、鼻尖、嘴角的坐标。 */ + (NSString*) FACE_ALIGN; -/** ATTR +/*! + * ATTR
* 面部属性识别(attr):对面部属性进行识别:例如秃顶、刘海、大嘴、模糊、眼镜等。 */ + (NSString*) FACE_ATTR; -/** AUE +/*! + * AUE
* 图像压缩格式,现在引擎不支持图像压缩,aue只能取值raw */ + (NSString*) FACE_AUE; -/** RAW +/*! + * RAW
* AUE参数的值 */ + (NSString*) FACE_RAW; -/** PSET +/*! + * PSET
* 人脸识别验证阈值,取值可以是负数也可以是整数。 */ + (NSString*) FACE_PSET; -/** SKIP +/*! + * SKIP
* 后台图片处理是否进行过滤。true表示不过滤,false表示过滤,传入字符串@“true”或@“false” */ + (NSString*) FACE_SKIP; -/** GID +/*! + * GID
* 图像模型id,如:4a6c124ed6b78436ee5aac4563f13eb5 */ + (NSString*) FACE_GID; -/** - * auth_id +/*! + * auth_id
* 用于用户注册和登录、查询、删除等业务时标识用户身份 * * @return 用户标识 */ + (NSString*)FACE_AUTH_ID; -/** DVC +/*! + * DVC
* 用户设备编号,用于验证用户 */ + (NSString*) FACE_DVC; diff --git a/src/ios/iflyMSC.framework/Headers/IFlySpeechError.h b/src/ios/iflyMSC.framework/Headers/IFlySpeechError.h index 7aa8293..3db75e6 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlySpeechError.h +++ b/src/ios/iflyMSC.framework/Headers/IFlySpeechError.h @@ -22,7 +22,7 @@ @property(nonatomic,assign) int errorCode; /*! - * 错误码类 + * 错误码类型 */ @property(nonatomic,assign) int errorType; @@ -55,4 +55,4 @@ - (NSString *) errorDesc; @end -#endif \ No newline at end of file +#endif diff --git a/src/ios/iflyMSC.framework/Headers/IFlySpeechEvaluator.h b/src/ios/iflyMSC.framework/Headers/IFlySpeechEvaluator.h index af43d93..81e6026 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlySpeechEvaluator.h +++ b/src/ios/iflyMSC.framework/Headers/IFlySpeechEvaluator.h @@ -10,6 +10,9 @@ #import #import "IFlySpeechEvaluatorDelegate.h" +#define IFLY_AUDIO_SOURCE_MIC @"1" +#define IFLY_AUDIO_SOURCE_STREAM @"-1" + /*! * 语音评测类 */ @@ -55,17 +58,18 @@ - (NSString*)parameterForKey:(NSString *)key; /*! - * 开始评测 - * 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错 + * 开始评测
+ * 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错 * * @param data 评测的试题 * @param params 评测的参数 + * @return 成功返回YES,失败返回NO */ -- (void)startListening:(NSData *)data params:(NSString *)params; +- (BOOL)startListening:(NSData *)data params:(NSString *)params; /*! - * 停止录音 - * 调用此函数会停止录音,并开始进行语音识别 + * 停止录音
+ * 调用此函数会停止录音,并开始进行语音识别 */ - (void)stopListening; @@ -76,3 +80,22 @@ @end +/*! + * 音频流评测
+ * 音频流评测可以将文件分段写入 + */ +@interface IFlySpeechEvaluator(IFlyStreamISERecognizer) + +/*! + * 写入音频流 + * + * @param audioData 音频数据 + * + * @return 写入成功返回YES,写入失败返回NO + */ +- (BOOL) writeAudio:(NSData *) audioData; + +@end + + + diff --git a/src/ios/iflyMSC.framework/Headers/IFlySpeechEvaluatorDelegate.h b/src/ios/iflyMSC.framework/Headers/IFlySpeechEvaluatorDelegate.h index cc18a08..5afc832 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlySpeechEvaluatorDelegate.h +++ b/src/ios/iflyMSC.framework/Headers/IFlySpeechEvaluatorDelegate.h @@ -25,15 +25,15 @@ - (void)onVolumeChanged:(int)volume buffer:(NSData *)buffer; /*! - * 开始录音回调 - * 当调用了`startListening`函数之后,如果没有发生错误则会回调此函数。如果发生错误则回调onError:函数 + * 开始录音回调
+ * 当调用了`startListening`函数之后,如果没有发生错误则会回调此函数。如果发生错误则回调onCompleted:函数 */ - (void)onBeginOfSpeech; /*! - * 停止录音回调 - * 当调用了`stopListening`函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。 - * 如果发生错误则回调onError:函数 + * 停止录音回调
+ * 当调用了`stopListening`函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。
+ * 如果发生错误则回调onCompleted:函数 */ - (void)onEndOfSpeech; @@ -44,18 +44,16 @@ /*! * 评测错误回调 - * 在进行语音评测过程中的任何时刻都有可能回调此函数,你可以根据errorCode进行相应的处理. - * 当errorCode没有错误时,表示此次会话正常结束,否则,表示此次会话有错误发生。特别的当调用 - * `cancel`函数时,引擎不会自动结束,需要等到回调此函数,才表示此次会话结束。在没有回调此函 - * 数之前如果重新调用了`startListenging`函数则会报错误。 + * + * 在进行语音评测过程中的任何时刻都有可能回调此函数,你可以根据errorCode进行相应的处理.当errorCode没有错误时,表示此次会话正常结束,否则,表示此次会话有错误发生。特别的当调用`cancel`函数时,引擎不会自动结束,需要等到回调此函数,才表示此次会话结束。在没有回调此函数之前如果重新调用了`startListenging`函数则会报错误。 * * @param errorCode 错误描述类 */ -- (void)onError:(IFlySpeechError *)errorCode; +- (void)onCompleted:(IFlySpeechError *)errorCode; /*! - * 评测结果回调 - * 在评测过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。 + * 评测结果回调
+ * 在评测过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。 * * @param results -[out] 评测结果。 * @param isLast -[out] 是否最后一条结果 diff --git a/src/ios/iflyMSC.framework/Headers/IFlySpeechEvent.h b/src/ios/iflyMSC.framework/Headers/IFlySpeechEvent.h index d056a02..9b4a863 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlySpeechEvent.h +++ b/src/ios/iflyMSC.framework/Headers/IFlySpeechEvent.h @@ -13,92 +13,75 @@ */ typedef NS_ENUM(NSUInteger,IFlySpeechEventType){ /*! - * 网络状态消息 + * 网络状态消息
* 在消息到达时,可通过onEvent的第2个参数arg1,获取当前网络连接状态值 */ IFlySpeechEventTypeNetPref = 10001, - /** - * 转写音频文件消息 - * 在录音模式下,成功创建音频文件时返回。可通过onEvent - * 第4个参数data 指定Key为[IFlySpeechConstant IST_AUDIO_PATH],获取音频文件绝对路径. - * 或通过[IFlySpeechTranscripter getParameter:[IFlySpeechConstant IST_AUDIO_PATH]], - * 获取音频文件绝对路径. + /*! + * 转写音频文件消息
+ * 在录音模式下,成功创建音频文件时返回。可通过onEvent第4个参数data,指定Key为[IFlySpeechConstant IST_AUDIO_PATH],获取音频文件绝对路径.或通过[IFlySpeechTranscripter getParameter:[IFlySpeechConstant IST_AUDIO_PATH]],获取音频文件绝对路径. */ IFlySpeechEventTypeISTAudioFile = 10004, - /** - * 转写已上传字节消息 - * 在消息到达时,通过onEvent - * 的第二个参数arg1,获取已确认上传到服务器的字节数. - * 若当前音频源为非写音频模式,还可通过onEvent - * 的第三个参数arg2,获取当前所有音频的字节大小.录音模式时,由于所有音频字节大小会变。 - * 当停止音频输入后(等待录音时间超时 - * [IFlySpeechConstant SPEECH_TIMEOUT] - * ,或调用[IFlySpeechTranscripter stopTranscripting]), - * 且服务器收到所有音频时,第四个参数data,将包含完成标记的布尔值(true),可通过data调用 - * 指定KEY为KCIFlySpeechEventKeyISTUploadComplete获取。 - * 此消息可能多次返回. + /*! + * 转写已上传字节消息
+ * 在消息到达时,通过onEvent的第二个参数arg1,获取已确认上传到服务器的字节数.若当前音频源为非写音频模式,还可通过onEvent + * 的第三个参数arg2,获取当前所有音频的字节大小.录音模式时,由于所有音频字节大小会变。当停止音频输入后(等待录音时间超时[IFlySpeechConstant SPEECH_TIMEOUT],或调用[IFlySpeechTranscripter stopTranscripting]),且服务器收到所有音频时,第四个参数data,将包含完成标记的布尔值(true),可通过data调用指定KEY为KCIFlySpeechEventKeyISTUploadComplete获取。此消息可能多次返回. */ IFlySpeechEventTypeISTUploadBytes = 10006, - /** - * 转写缓存剩余 - * 此消息仅在音频源为-1时需要关注 - * 在调用[IFlySpeechTranscripter writeAudio]写音频时,应该关注此事件。 - * 此事件在调用写音频接口、及音频最后被写入底库库时分别回调一次。当事件回调时,通过onEvent - * 的第二个参数arg1,获取当前剩余的缓存大小,当缓存小于要写入的音频时,应该先暂停写音频数据,直到下次缓存大小大于要写入的音频时. - * 最大缓存为128KByte。 + /*! + * 转写缓存剩余
+ * 此消息仅在音频源为-1时需要关注,在调用[IFlySpeechTranscripter writeAudio]写音频时,应该关注此事件。
+ * 此事件在调用写音频接口、及音频最后被写入底库库时分别回调一次。当事件回调时,通过onEvent的第二个参数arg1,获取当前剩余的缓存大小,当缓存小于要写入的音频时,应该先暂停写音频数据,直到下次缓存大小大于要写入的音频时.最大缓存为128KByte。 */ IFlySpeechEventTypeISTCacheLeft = 10007, - /** - * 转写结果等待时间消息 - * 在消息到达时,通过 onEvent - * 的第二个参数arg1,获取当前结果需要的时间. + /*! + * 转写结果等待时间消息
+ * 在消息到达时,通过 onEvent的第二个参数arg1,获取当前结果需要的时间.
* 此消息可能多次返回,返回时间不定,且不一定会返回. */ IFlySpeechEventTypeISTResultTime= 10008, - /** - * 转写转写音频同步ID消息 - * 在消息到达时,通过 onEvent - * 的第二个参数arg1,获取当前写音频同步ID. + /*! + * 转写转写音频同步ID消息
+ * 在消息到达时,通过 onEvent的第二个参数arg1,获取当前写音频同步ID.
* 此消息可能多次返回. */ IFlySpeechEventTypeISTSyncID= 10009, - /** - * 会话开始消息 + /*! + * 会话开始消息
* 在会话开始成功后返回 */ IFlySpeechEventTypeSessionBegin = 10010, - /** - * 会话结束消息 + /*! + * 会话结束消息
* 在会话结束前返回 */ IFlySpeechEventTypeSessionEnd = 10011, - /** + /*! * 音量消息,在得到音量时抛出,暂时只有身份验证的声纹业务用到 */ IFlySpeechEventTypeVolume = 10012, - /** + /*! * VAD后端点消息,在检测到VAD后端点时抛出,暂时只有身份验证的声纹业务用到 */ IFlySpeechEventTypeVadEOS = 10013, /*! - * 服务端会话id - * 在消息到达时,可通过onEvent的第4个参数data(字典类型), - * 指定key KCIFlySpeechEventKeySessionID,获取服务端会话id. + * 服务端会话id
+ * 在消息到达时,可通过onEvent的第4个参数data(字典类型),指定key KCIFlySpeechEventKeySessionID,获取服务端会话id. */ IFlySpeechEventTypeSessionID = 20001, /*! - * TTS合成数据消息 - * -(void)onEvent:(int)eventType arg0:(int)arg0 arg1:(int)arg1 data:(NSData *)eventData - * 其中eventData中包含数据 + * TTS合成数据消息
+ * -(void)onEvent:(int)eventType arg0:(int)arg0 arg1:(int)arg1 data:(NSData *)eventData
+ * 其中eventData中包含数据 * */ IFlySpeechEventTypeTTSBuffer = 21001, @@ -110,9 +93,9 @@ typedef NS_ENUM(NSUInteger,IFlySpeechEventType){ IFlySpeechEventTypeTTSCancel = 21002, /*! - * IVW onshot 听写 or 识别结果 - * 在消息到达时,第2个参数arg1包含是否为最后一个结果:1为是,0为否; - * 第4个参数data中包含数据,通过指定KEY为KCIFlySpeechEventKeyIVWResult获取. + * IVW onshot 听写 or 识别结果
+ * 在消息到达时,第2个参数arg1包含是否为最后一个结果:1为是,0为否;
+ * 第4个参数data中包含数据,通过指定KEY为KCIFlySpeechEventKeyIVWResult获取. */ IFlySpeechEventTypeIVWResult = 22001, @@ -129,17 +112,14 @@ typedef NS_ENUM(NSUInteger,IFlySpeechEventType){ IFlySpeechEventTypeRecordStop= 22003, /*! - * 服务端音频url - * 在消息到达时, - * 第4个参数data,包含数据,通过 - * 指定KEY为KCIFlySpeechEventKeyAudioUrl获取. + * 服务端音频url
+ * 在消息到达时,第4个参数data,包含数据,通过指定KEY为KCIFlySpeechEventKeyAudioUrl获取. */ IFlySpeechEventTypeAudioUrl = 23001, /*! - * 变声数据结果返回 - * - * 设置voice_change参数获取结果. + * 变声数据结果返回
+ * 设置voice_change参数获取结果. */ IFlySpeechEventTypeVoiceChangeResult = 24001 diff --git a/src/ios/iflyMSC.framework/Headers/IFlySpeechRecognizer.h b/src/ios/iflyMSC.framework/Headers/IFlySpeechRecognizer.h index 6c43c55..12fcfd9 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlySpeechRecognizer.h +++ b/src/ios/iflyMSC.framework/Headers/IFlySpeechRecognizer.h @@ -14,12 +14,14 @@ #define IFLY_AUDIO_SOURCE_STREAM @"-1" /*! - * 语音识别类 - * 此类现在设计为单例,你在使用中只需要创建此对象,不能调用release/dealloc函数去释放此对象。所有关于语音识别的操作都在此类中。 + * 语音识别类
+ * 此类现在设计为单例,你在使用中只需要创建此对象,不能调用release/dealloc函数去释放此对象。所有关于语音识别的操作都在此类中。 */ @interface IFlySpeechRecognizer : NSObject -/** 设置委托对象 */ +/*! + * 设置委托对象 + */ @property(nonatomic,assign) id delegate ; /*! @@ -74,24 +76,21 @@ /*! * 设置识别引擎的参数 - * 识别的引擎参数(key)取值如下: - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
*参数描述
domain应用的领域: 取值为:iat、search、video、poi、music、asr;
iat:普通文本听写;
search:热词搜索;
video:视频音乐搜索;
video:视频音乐搜索;
asr:关键词识别;
vad_bos前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;
engine指定iat识别默认值为5000;
其他情况默认值为 4000,范围 0-10000。
vad_eos后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,
自动停止录音;单位:ms;
sms 识别默认值为 1800;
其他默认值为 700,范围 0-10000。
sample_rate采样率:目前支持的采样率设置有 16000 和 8000。
asr_ptt标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。
result_type返回结果的数据格式: 可设置为json,xml,plain,默认为json。
grammarID识别的语法id: 只针对 domain 设置为”asr”的应用。
asr_audio_path音频文件名: 设置此参数后,将会自动保存识别的录音文件。
路径为Documents/(指定值)。
不设置或者设置为nil,则不保存音频。
params扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。
+ * + * 识别的引擎参数(key)取值如下: + * + * | 参数 | 描述 | + * |-----------------|-------------------------------------------------------| + * | domain | 应用的领域: 取值为:iat、search、video、poi、music、asr;
iat:普通文本听写;
search:热词搜索;
video:视频音乐搜索;
asr:关键词识别;| + * | vad_bos | 前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;
engine指定iat识别默认值为5000;
其他情况默认值为 4000,范围 0-10000。| + * | vad_eos | 后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,自动停止录音;单位:ms;
sms 识别默认值为 1800;
其他默认值为 700,范围 0-10000。| + * | sample_rate | 采样率:目前支持的采样率设置有 16000 和 8000。| + * | asr_ptt | 标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。| + * | result_type | 返回结果的数据格式: 可设置为json,xml,plain,默认为json。| + * | grammarID | 识别的语法id: 只针对 domain 设置为”asr”的应用。| + * | asr_audio_path | 音频文件名: 设置此参数后,将会自动保存识别的录音文件。
路径为Documents/(指定值)。
不设置或者设置为nil,则不保存音频。| + * | params | 扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。| + * * @param value 参数对应的取值 * @param key 识别引擎参数 * @@ -110,16 +109,16 @@ /*! * 开始识别 - * 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错。若有需要多次回话, - * 请在onError回调返回后请求下一路回话。 + * + * 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错。若有需要多次回话,请在onCompleted回调返回后请求下一路回话。 * * @return 成功返回YES;失败返回NO */ - (BOOL) startListening; /*! - * 停止录音 - * 调用此函数会停止录音,并开始进行语音识别 + * 停止录音
+ * 调用此函数会停止录音,并开始进行语音识别 */ - (void) stopListening; @@ -141,22 +140,24 @@ grammarType:(NSString *)grammarType grammarContent:(NSString *)grammarContent; -/** 是否正在识别 +/*! + * 是否正在识别 */ @property (nonatomic, readonly) BOOL isListening; @end /*! - * 音频流识别 - * 音频流识别可以将文件分段写入 + * 音频流识别
+ * 音频流识别可以将文件分段写入 */ @interface IFlySpeechRecognizer(IFlyStreamRecognizer) /*! * 写入音频流 -* 此方法的使用示例如下: -*
[_iFlySpeechRecognizer setParameter:@"audio_source" value:@"-1"];
+*
+*  此方法的使用示例如下:
+* 
[_iFlySpeechRecognizer setParameter:@"-1" value:@"audio_source"];
 * [_iFlySpeechRecognizer startListening];
 * [_iFlySpeechRecognizer writeAudio:audioData1];
 * [_iFlySpeechRecognizer writeAudio:audioData2];
diff --git a/src/ios/iflyMSC.framework/Headers/IFlySpeechRecognizerDelegate.h b/src/ios/iflyMSC.framework/Headers/IFlySpeechRecognizerDelegate.h
index b565f1a..77331b5 100644
--- a/src/ios/iflyMSC.framework/Headers/IFlySpeechRecognizerDelegate.h
+++ b/src/ios/iflyMSC.framework/Headers/IFlySpeechRecognizerDelegate.h
@@ -20,8 +20,8 @@ typedef void(^IFlyOnBuildFinishCompletionHandler)(NSString* grammarId,IFlySpeech
 
 
 /*!
- *  语音识别协议
- *   在使用语音识别时,需要实现这个协议中的方法.
+ *  语音识别协议
+ * 在使用语音识别时,需要实现这个协议中的方法. */ @protocol IFlySpeechRecognizerDelegate @@ -29,18 +29,17 @@ typedef void(^IFlyOnBuildFinishCompletionHandler)(NSString* grammarId,IFlySpeech /*! * 识别结果回调 - * 在进行语音识别过程中的任何时刻都有可能回调此函数,你可以根据errorCode进行相应的处理, - * 当errorCode没有错误时,表示此次会话正常结束;否则,表示此次会话有错误发生。特别的当调用 - * `cancel`函数时,引擎不会自动结束,需要等到回调此函数,才表示此次会话结束。在没有回调此函数 - * 之前如果重新调用了`startListenging`函数则会报错误。 + * + * 在进行语音识别过程中的任何时刻都有可能回调此函数,你可以根据errorCode进行相应的处理,当errorCode没有错误时,表示此次会话正常结束;否则,表示此次会话有错误发生。特别的当调用`cancel`函数时,引擎不会自动结束,需要等到回调此函数,才表示此次会话结束。在没有回调此函数之前如果重新调用了`startListenging`函数则会报错误。 * * @param errorCode 错误描述 */ -- (void) onError:(IFlySpeechError *) errorCode; +- (void) onCompleted:(IFlySpeechError *) errorCode; /*! * 识别结果回调 - * 在识别过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。 + * + * 在识别过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。
* 使用results的示例如下: *

  *  - (void) onResults:(NSArray *) results{
@@ -60,36 +59,36 @@ typedef void(^IFlyOnBuildFinishCompletionHandler)(NSString* grammarId,IFlySpeech
 @optional
 
 /*!
- *  音量变化回调
- *    在录音过程中,回调音频的音量。
+ *  音量变化回调
+ * 在录音过程中,回调音频的音量。 * * @param volume -[out] 音量,范围从0-30 */ - (void) onVolumeChanged: (int)volume; /*! - * 开始录音回调 - * 当调用了`startListening`函数之后,如果没有发生错误则会回调此函数。 - * 如果发生错误则回调onError:函数 + * 开始录音回调
+ * 当调用了`startListening`函数之后,如果没有发生错误则会回调此函数。
+ * 如果发生错误则回调onCompleted:函数 */ - (void) onBeginOfSpeech; /*! - * 停止录音回调 - * 当调用了`stopListening`函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。 - * 如果发生错误则回调onError:函数 + * 停止录音回调
+ * 当调用了`stopListening`函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。
+ * 如果发生错误则回调onCompleted:函数 */ - (void) onEndOfSpeech; /*! - * 取消识别回调 - * 当调用了`cancel`函数之后,会回调此函数,在调用了cancel函数和回调onError之前会有一个 + * 取消识别回调
+ * 当调用了`cancel`函数之后,会回调此函数,在调用了cancel函数和回调onCompleted之前会有一个
* 短暂时间,您可以在此函数中实现对这段时间的界面显示。 */ - (void) onCancel; #ifdef _EDUCATION_ -/** +/*! * 返回音频Key * * @param key 音频Key @@ -98,8 +97,8 @@ typedef void(^IFlyOnBuildFinishCompletionHandler)(NSString* grammarId,IFlySpeech #endif -/** - * 扩展事件回调 +/*! + * 扩展事件回调
* 根据事件类型返回额外的数据 * * @param eventType 事件类型,具体参见IFlySpeechEventType的IFlySpeechEventTypeVoiceChangeResult枚举。 diff --git a/src/ios/iflyMSC.framework/Headers/IFlySpeechSynthesizer.h b/src/ios/iflyMSC.framework/Headers/IFlySpeechSynthesizer.h index 040f4a5..e7d220c 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlySpeechSynthesizer.h +++ b/src/ios/iflyMSC.framework/Headers/IFlySpeechSynthesizer.h @@ -56,20 +56,15 @@ /*! * 设置合成参数 - * - * - * - * - * - * - * - * - * - * - * - * - * - *
参数描述
speed合成语速,取值范围 0~100
volume合成的音量,取值范围 0~100
voice_name默认为”xiaoyan”;可以设置的参数列表可参考个性化发音人列表
sample_rate采样率:目前支持的采样率设置有 16000 和 8000。
tts_audio_path音频文件名 设置此参数后,将会自动保存合成的音频文件。
路径为Documents/(指定值)。不设置或者设置为nil,则不保存音频。
params扩展参数: 对于一些特殊的参数可在此设置。
+ * + * | 参数 | 描述 | + * |-----------------|----------------------------------------------------| + * | speed | 合成语速,取值范围 0~100 | + * | volume | 合成的音量,取值范围 0~100 | + * | voice_name | 默认为”xiaoyan”;可以设置的参数列表可参考个性化发音人列表 | + * | sample_rate | 采样率:目前支持的采样率设置有 16000 和 8000。 | + * | tts_audio_path | 音频文件名 设置此参数后,将会自动保存合成的音频文件。
路径为Documents/(指定值)。不设置或者设置为nil,则不保存音频。| + * | params | 扩展参数: 对于一些特殊的参数可在此设置。 | * * @param value 参数取值 * @param key 合成参数 @@ -88,16 +83,16 @@ -(NSString*) parameterForKey:(NSString *)key; /*! - * 开始合成(播放) - * 调用此函数进行合成,如果发生错误会回调错误`onCompleted` + * 开始合成(播放)
+ * 调用此函数进行合成,如果发生错误会回调错误`onCompleted` * * @param text 合成的文本,最大的字节数为1k */ - (void) startSpeaking:(NSString *)text; /*! - * 开始合成(不播放) - * 调用此函数进行合成,如果发生错误会回调错误`onCompleted` + * 开始合成(不播放)
+ * 调用此函数进行合成,如果发生错误会回调错误`onCompleted` * * @param text 合成的文本,最大的字节数为1k * @param uri 合成后,保存再本地的音频路径 @@ -105,8 +100,8 @@ -(void)synthesize:(NSString *)text toUri:(NSString*)uri; /*! - * 暂停播放 - * 暂停播放之后,合成不会暂停,仍会继续,如果发生错误则会回调错误`onCompleted` + * 暂停播放
+ * 暂停播放之后,合成不会暂停,仍会继续,如果发生错误则会回调错误`onCompleted` */ - (void) pauseSpeaking; diff --git a/src/ios/iflyMSC.framework/Headers/IFlySpeechSynthesizerDelegate.h b/src/ios/iflyMSC.framework/Headers/IFlySpeechSynthesizerDelegate.h index d54f70b..bdef9ac 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlySpeechSynthesizerDelegate.h +++ b/src/ios/iflyMSC.framework/Headers/IFlySpeechSynthesizerDelegate.h @@ -11,15 +11,15 @@ @class IFlySpeechError; -/** +/*! * 语音合成回调 */ @protocol IFlySpeechSynthesizerDelegate @required -/** - * 结束回调 +/*! + * 结束回调
* 当整个合成结束之后会回调此函数 * * @param error 错误码 @@ -28,12 +28,12 @@ @optional -/** +/*! * 开始合成回调 */ - (void) onSpeakBegin; -/** +/*! * 缓冲进度回调 * * @param progress 缓冲进度,0-100 @@ -41,33 +41,34 @@ */ - (void) onBufferProgress:(int) progress message:(NSString *)msg; -/** +/*! * 播放进度回调 * * @param progress 当前播放进度,0-100 - * @param beginPos 当前播放文本的起始位置,0-100 - * @param endPos 当前播放文本的结束位置,0-100 + * @param beginPos 当前播放文本的起始位置(按照字节计算),对于汉字(2字节)需/2处理 + * @param endPos 当前播放文本的结束位置(按照字节计算),对于汉字(2字节)需/2处理 */ - (void) onSpeakProgress:(int) progress beginPos:(int)beginPos endPos:(int)endPos; -/** +/*! * 暂停播放回调 */ - (void) onSpeakPaused; -/** - * 恢复播放回调 +/*! + * 恢复播放回调
+ * 注意:此回调方法SDK内部不执行,播放恢复全部在onSpeakBegin中执行 */ - (void) onSpeakResumed; -/** - * 正在取消回调 - * 当调用`cancel`之后会回调此函数 +/*! + * 正在取消回调
+ * 注意:此回调方法SDK内部不执行 */ - (void) onSpeakCancel; -/** - * 扩展事件回调 +/*! + * 扩展事件回调
* 根据事件类型返回额外的数据 * * @param eventType 事件类型,具体参见IFlySpeechEventType枚举。目前只支持EVENT_TTS_BUFFER也就是实时返回合成音频。 diff --git a/src/ios/iflyMSC.framework/Headers/IFlySpeechUnderstander.h b/src/ios/iflyMSC.framework/Headers/IFlySpeechUnderstander.h deleted file mode 100644 index 39e71fe..0000000 --- a/src/ios/iflyMSC.framework/Headers/IFlySpeechUnderstander.h +++ /dev/null @@ -1,134 +0,0 @@ -// -// IFlySpeechUnderstander.h -// MSC -// -// Created by iflytek on 2014-03-12. -// Copyright (c) 2014年 iflytek. All rights reserved. -// - -#import - -@class IFlySpeechError; -@protocol IFlySpeechRecognizerDelegate; - -/*! - * 语义理解接口 - */ -@interface IFlySpeechUnderstander : NSObject - -/*! - * 是否正在语义理解 - */ -@property (readonly) BOOL isUnderstanding; - -/*! - * 设置委托对象 - */ -@property(nonatomic,retain) id delegate ; - -/*! - * 创建语义理解对象的单例 - * - * @return 语义理解对象 - */ -+(instancetype) sharedInstance; - -/*! - * 开始义理解 - * 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错。若有需要多次回话,请在onError回调返回后请求下一路回话。 - * - * @return 成功返回YES,失败返回NO - */ -- (BOOL) startListening; - -/*! - * 停止录音 - * 调用此函数会停止录音,并开始进行语义理解 - */ -- (void) stopListening; - -/*! - * 取消本次会话 - */ -- (void) cancel; - -/* - * | ------------- |----------------------------------------------------------- - * | 参数 | 描述 - * | ------------- |----------------------------------------------------------- - * | domain |应用的领域: 取值为:iat、search、video、poi、music、asr; - * | | iat:普通文本听写; - * | | search:热词搜索; - * | | video:视频音乐搜索; - * | | asr:关键词识别; - * | ------------- |----------------------------------------------------------- - * | vad_bos |前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms; - * | | engine指定iat识别默认值为5000; - * | | 其他情况默认值为 4000,范围 0-10000。 - * | ------------- |----------------------------------------------------------- - * | vad_eos |后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, - * | | 自动停止录音;单位:ms; - * | | sms 识别默认值为 1800; - * | | 其他默认值为 700,范围 0-10000。 - * | ------------- |----------------------------------------------------------- - * | sample_rate |采样率:目前支持的采样率设置有 16000 和 8000。 - * | ------------- |----------------------------------------------------------- - * | asr_ptt |标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。 - * | ------------- |----------------------------------------------------------- - * | result_type |返回结果的数据格式: 可设置为json,xml,plain,默认为json。 - * | ------------- |----------------------------------------------------------- - * | grammarID |识别的语法id: 只针对 domain 设置为”asr”的应用。 - * | ------------- |----------------------------------------------------------- - * | asr_audio_path|音频文件名: 设置此参数后,将会自动保存识别的录音文件。 - * | | 路径为Documents/(指定值)。 - * | | 不设置或者设置为nil,则不保存音频。 - * | ------------- |----------------------------------------------------------- - * | params |扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。 - * | ------------- |----------------------------------------------------------- - * - */ - -/*! - * 设置语义理解引擎的参数 - * 语义理解的引擎参数(key)取值如下: - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
*参数描述
domain应用的领域: 取值为:iat、search、video、poi、music、asr;
iat:普通文本听写;
search:热词搜索;
video:视频音乐搜索;
video:视频音乐搜索;
asr:关键词识别;
vad_bos前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;
engine指定iat识别默认值为5000;
其他情况默认值为 4000,范围 0-10000。
vad_eos后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,
自动停止录音;单位:ms;
sms 识别默认值为 1800;
其他默认值为 700,范围 0-10000。
sample_rate采样率:目前支持的采样率设置有 16000 和 8000。
asr_ptt标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。
result_type返回结果的数据格式: 可设置为json,xml,plain,默认为json。
grammarID识别的语法id: 只针对 domain 设置为”asr”的应用。
asr_audio_path音频文件名: 设置此参数后,将会自动保存识别的录音文件。
路径为Documents/(指定值)。
不设置或者设置为nil,则不保存音频。
params扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。
- * @param value 参数对应的取值 - * @param key 语义理解引擎参数 - * - * @return 成功返回YES;失败返回NO - */ --(BOOL) setParameter:(NSString *) value forKey:(NSString*)key; - -/*! - * 写入音频流 - * - * @param audioData 音频数据 - * - * @return 写入成功返回YES,写入失败返回NO - */ -- (BOOL) writeAudio:(NSData *) audioData; - -/*! - * 销毁语义理解对象。 - * - * @return 成功返回YES;失败返回NO - */ -- (BOOL) destroy; - -@end diff --git a/src/ios/iflyMSC.framework/Headers/IFlySpeechUtility.h b/src/ios/iflyMSC.framework/Headers/IFlySpeechUtility.h index 6bb6736..13fdd2a 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlySpeechUtility.h +++ b/src/ios/iflyMSC.framework/Headers/IFlySpeechUtility.h @@ -12,73 +12,73 @@ @class IFlySpeechError; -/** +/*! * 引擎模式 */ typedef NS_ENUM(NSUInteger,IFlyEngineMode){ - /** + /*! * 云端使用MSC,本地优先使用语记 */ IFlyEngineModeAuto = 0, - /** + /*! * 只使用MSC */ IFlyEngineModeMsc, - /** + /*! * 本地只使用语记(受平台限制,云端无法使用语记) */ IFlyEngineModePlus, }; -/** +/*! * 服务类型 */ typedef NS_ENUM(NSUInteger,IFlySpeechPlusServiceType){ - /** + /*! * 打开语记主界面 */ IFlySpeechPlusServiceTypeNone=0, - /** + /*! * 获取合成资源 */ IFlySpeechPlusServiceTypeTTS, - /** + /*! * 获取识别资源(未开放) */ IFlySpeechPlusServiceTypeISR, - /** + /*! * 获取唤醒资源(未开放) */ IFlySpeechPlusServiceTypeIVW, } ; -/** 语记返回回调 +/*! 语记返回回调 */ @protocol IFlySpeechplusDelegate -/** +/*! * 发生错误 * * @param errorCode 错误码 */ -- (void)onError:(int)errorCode; +- (void)onCompleted:(int)errorCode; -/** +/*! * 服务正常结束 */ - (void)onCompleted; @end -/** +/*! * 用户配置 */ @interface IFlySpeechUtility : NSObject /*! - * 创建用户语音配置 - * 注册应用请前往语音云开发者网站。
+ * 创建用户语音配置
+ * 注册应用请前往语音云开发者网站。
* 网站:http://www.xfyun.cn * * @param params 启动参数,必须保证appid参数传入,示例:appid=123456 @@ -111,7 +111,7 @@ typedef NS_ENUM(NSUInteger,IFlySpeechPlusServiceType){ */ -(BOOL) setParameter:(NSString *) value forKey:(NSString*)key; -/** +/*! * 获取MSC引擎状态参数 * * @param key 参数名 @@ -120,32 +120,32 @@ typedef NS_ENUM(NSUInteger,IFlySpeechPlusServiceType){ */ - (NSString *)parameterForKey:(NSString *)key; -/** +/*! * 引擎类型 */ @property (nonatomic, readonly) IFlyEngineMode engineMode; -/** +/*! * 语记协议委托 */ @property (nonatomic, assign) id delegate; @end -/** +/*! * 讯飞语记类别 */ @interface IFlySpeechUtility (SpeechPlus) -/** +/*! * 检查讯飞语记是否安装 * * @return 已安装返回YES,否则返回NO */ + (BOOL)checkServiceInstalled; -/** - * 获取讯飞语记下载地址进行下载,安装完成后即可使用服务。 +/*! + * 获取讯飞语记下载地址进行下载,安装完成后即可使用服务。
* 下载地址需要通过[[UIApplication sharedApplication] openUrl:]打开 * * @return 讯飞语记在App Store下载地址 @@ -153,9 +153,9 @@ typedef NS_ENUM(NSUInteger,IFlySpeechPlusServiceType){ + (NSString *)componentUrl; -/** - * 注意:此接口废弃,不再需要使用 - * 处理语记使用URL启动第三方应用程序时传递的数据 +/*! + * 注意:此接口废弃,不再需要使用
+ * 处理语记使用URL启动第三方应用程序时传递的数据
* 需要在 application:openURL:sourceApplication:annotation:或者application:handleOpenURL中调用。 * * @param url 语记启动第三方应用程序时传递过来的URL @@ -164,7 +164,7 @@ typedef NS_ENUM(NSUInteger,IFlySpeechPlusServiceType){ */ - (BOOL)handleOpenURL:(NSURL *)url iOS_EXCLUSIVE; -/** +/*! * 打开讯飞语记获取相应类型服务,0表示打开主界面 * * @param serviceType 服务类型 diff --git a/src/ios/iflyMSC.framework/Headers/IFlyTextUnderstander.h b/src/ios/iflyMSC.framework/Headers/IFlyTextUnderstander.h deleted file mode 100644 index 5e78ea5..0000000 --- a/src/ios/iflyMSC.framework/Headers/IFlyTextUnderstander.h +++ /dev/null @@ -1,57 +0,0 @@ -// -// TextUnderstand.h -// MSCDemo -// -// Created by iflytek on 4/24/14. -// Copyright (c) 2014 iflytek. All rights reserved. -// - -#import - -@class IFlySpeechError; - -/*! - * 文本转语义完成回调函数 - * - * @param result 成功,返回文本语义理解结果 - * @param error 错误描述 - */ -typedef void(^IFlyUnderstandTextCompletionHandler)(NSString* result, IFlySpeechError * error); - -/*! - * 文本转语义类 - */ -@interface IFlyTextUnderstander : NSObject - -/*! - * 是否正在文本转语义 - */ -@property (readonly, atomic) __block BOOL isUnderstanding; - -/*! - * 文本转语义接口 - * 输入文本内容,获取语义理解结果 - * - * @param text 输入的文本内容 - * @param completionHandler 文本转语义完成回调函数 - * - * @return 错误码 - */ --(int) understandText:(NSString*)text withCompletionHandler:(IFlyUnderstandTextCompletionHandler) completionHandler; - -/*! - * 设置文本转语义参数 - * - * @param value 参数对应的取值 - * @param key 文本转语义参数参数 - * - * @return 成功返回YES,失败返回NO - */ --(BOOL) setParameter:(NSString *) value forKey:(NSString*)key; - -/*! - * 取消本次会话 - */ --(void)cancel; - -@end diff --git a/src/ios/iflyMSC.framework/Headers/IFlyUserWords.h b/src/ios/iflyMSC.framework/Headers/IFlyUserWords.h index 7c56a3b..f7fc91b 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlyUserWords.h +++ b/src/ios/iflyMSC.framework/Headers/IFlyUserWords.h @@ -16,7 +16,8 @@ /*! * 初始化对象 - * 在进行初始化时,需要传入的格式如下: + * + * 在进行初始化时,需要传入的格式如下: *
{\"userword\":[{\"name\":\"iflytek\",\"words\":[\"科大讯飞\",
  *  \"云平台\",\"用户词条\",\"开始上传词条\"]}]}
* diff --git a/src/ios/iflyMSC.framework/Headers/IFlyVoiceWakeuper.h b/src/ios/iflyMSC.framework/Headers/IFlyVoiceWakeuper.h index 6a43695..de51776 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlyVoiceWakeuper.h +++ b/src/ios/iflyMSC.framework/Headers/IFlyVoiceWakeuper.h @@ -10,170 +10,74 @@ #import #import "IFlyVoiceWakeuperDelegate.h" -/** - - 版本描述:唤醒1.0.0.1 - - 语音唤醒资源占用(iPhone5s实测) - 内存占用:3M - CPU占用:< 12% - - - 唤醒服务接口时序描述 - - sharedInstance 创建唤醒实例 - setParameter 设置服务参数 - - 例:[_voiceWakeuper setParameter:@"wake" forKey:@"sst"]; - sst 表示服务类型,wake是唤醒,enroll是注册 - - 例:[_voiceWakeuper setParameter:@"m_wakeupResPath" forKey:@"ivw_wake_list"]; - ivw_wake_list 表示唤醒资源的路径 - - 例:[_voiceWakeuper setParameter:@"holdValue" forKey:@"ivw_threshold"]; - ivw_threshold 表示唤醒资源的阀值,holdValue形式: - ID:20;15;30 - 每个数字代表对应资源的阀值,15表示资源1阀值,20表示资源2阀值,30表示资源3阀值 - 本demo只有一个资源设置为ID:20 则可 - - startListening启动服务 - stopListening 取消服务,但是不释放内部资源 - cancel 终止服务,并释放内部资源 - - - *参数定义 - - * 服务设置参数 - sst=wake表示唤醒 - sst=enroll表示注册 - SESSION_TYPE @"sst" //服务类型 - - WAKEUP @"wake" //唤醒 - ENROLL @"enroll" //注册 - - * 唤醒时,表示资源对应的阀值,为输入值,参数类型为:ID:20;20;3 - 已ID为起始,中间用“;”隔开,表示公三个资源,各自阀值对应为20,20和3 - IVW_THRESHOLD @"ivw_threshold" //唤醒词对应的门限 - - - * 传入参数 - 主要是没有定义的参数,依赖params传入 - PARAM @"params" - - - * 训练,合并生成的资源路径 - - 例:ivw_word_path=/abc/123/newpath.irf - IVW_WORD_PATH @"ivw_word_path" - - - - * 业务成功后的会话持续状态 - keep_alive 0:唤醒一次就结束,1:唤醒后继续 - KEEP_ALIVE @"keep_alive" - - - * focus_type注册和唤醒的返回参数 - wake 唤醒 - enroll 注册 - FOCUS_TYPE @"focus_type" //服务类型 - - - * 服务状态 - status=success 服务正常 - status=failed 服务失败 - status=done 注册完成 - STATUS @"status" //服务状态 - SUCESS @"success" //服务成功 - FAILED @"failed" //服务失败 - DONE @"done" //训练完成 - - - * 唤醒结果的位置 - ID @"id" //唤醒结果的id - - - * 唤醒资源的阀值 - 注册时返回,表示注册资源对应的阀值,为输出值 - THRESHOLD @"threshold" //训练资源的阀值 - - - * 服务结果的可信度 - SCORE @"score" //服务结果可信度 - - - * 为注册时返回,表示已经注册成功的次数 - NUM @"num" //已训练成功次数 - - - * 表示服务传入音频对应的起始点和结束点 - BOS @"bos" //前端点 - EOS @"eos" //后端点 - - - * 录音方式,如果是外部数据,设置为-1,通过WriteAudio送入音频 - 注意:目前紧紧支持唤醒服务,注册业务尚不支持 - AUDIO_SOURCE @"audio_source" - - - * 表示资源合并操作 - MERGE_RES_ACTION @"merge" - -*/ - +#define IFLY_AUDIO_SOURCE_MIC @"1" +#define IFLY_AUDIO_SOURCE_STREAM @"-1" +/*! + * 语音唤醒 + */ @interface IFlyVoiceWakeuper : NSObject -{ -} +/*! + * 代理 + */ +@property (nonatomic, assign) id delegate; -@property(assign) id delegate; +/*! + * 是否正在唤醒 + */ +@property (nonatomic, readonly) BOOL isListening; -/** - 创建唤醒实例,采用单例模式 +/*! + * 创建唤醒实例,采用单例模式 */ + (instancetype) sharedInstance; -/** - 启动唤醒 - 返回值:YES 成功,NO:失败 +/*! + * 启动唤醒 + * 返回值:YES 成功,NO:失败 */ -(BOOL) startListening; -/** - 取消唤醒会话 - 注意与cancel的区别,紧紧停止服务,并不释放资源 +/*! + * 停止录音 */ -(BOOL) stopListening; -/** - 获取工作参数 - */ --(NSString*) getParameter:(NSString *)key; - -/** - 设置工作参数 - 注意服务正在运行中,不能设置参数 - */ --(BOOL) setParameter:(NSString *) value forKey:(NSString*)key; - -/** - 取消唤醒会话,并释放内部资源 +/*! + * 取消唤醒会话 */ -(BOOL) cancel; -/** - 唤醒业务更新,目前支持合并资源操作 +/*! + * 获取工作参数 */ -//+(int) updateWords:(NSString *)action params:(NSString*) params; +-(NSString*) getParameter:(NSString *)key; -/** - 写入录音数据 - 暂时紧紧支持唤醒的写入,注册服务尚不支持 +/*! + * 设置工作参数
+ * 注意服务正在运行中,不能设置参数 */ -//-(int) writeAudio:(const void*)buffer offset:(int)offset length:(int)length; - -@property (readonly) BOOL isListening; +-(BOOL) setParameter:(NSString *) value forKey:(NSString*)key; @end + +/*! + * 音频流唤醒
+ * 音频流唤醒可以将文件分段写入 + */ +@interface IFlyVoiceWakeuper(IFlyStreamVoiceWakeuper) + +/*! + * 写入音频流 + * + * @param audioData 音频数据 + * + * @return 写入成功返回YES,写入失败返回NO + */ +- (BOOL) writeAudio:(NSData *) audioData; + +@end + + diff --git a/src/ios/iflyMSC.framework/Headers/IFlyVoiceWakeuperDelegate.h b/src/ios/iflyMSC.framework/Headers/IFlyVoiceWakeuperDelegate.h index 326d032..9032a8e 100644 --- a/src/ios/iflyMSC.framework/Headers/IFlyVoiceWakeuperDelegate.h +++ b/src/ios/iflyMSC.framework/Headers/IFlyVoiceWakeuperDelegate.h @@ -13,70 +13,46 @@ @class IFlySpeechError; -/** - * 代理返回时序描述 - - onError 为唤醒会话错误反馈 - onBeginOfSpeech 表示录音开始 - onVolumeChanged 录音音量大小 - onEndOfSpeech 录音结束,当服务终止时返回onEndOfSpeech - onResult 服务结果反馈,内容定义如下 - - * 唤醒服务 - - 例: - focus_type = wake 唤醒会话 - wakeup_result_id = 0 唤醒词位置 - wakeup_result_Score = 60 唤醒词可信度 - - * 注册服务 - - 例: - focus_type = enroll 注册会话 - enroll_success_num = 1 当前注册成功次数 - current_enroll_status = success/failed 当前会话是否成功 - wakeup_result_Score = 60 注册结果可信度 - threshold = 10 当注册达到3次后,反馈对应资源的阀值 - */ @protocol IFlyVoiceWakeuperDelegate @optional -/** - 录音开始 +/*! + * 录音开始 */ -(void) onBeginOfSpeech; -/** - 录音结束 +/*! + * 录音结束 */ -(void) onEndOfSpeech; -/** - 会话错误 - @param errorCode 错误描述类, -*/ -- (void) onError:(IFlySpeechError *) error; - -/** - 唤醒 - resultID:唤醒词位置 +/*! + * 会话错误 + * + * @param errorCode 错误描述类, */ --(void) onResult:(NSMutableDictionary *)resultArray; +- (void) onCompleted:(IFlySpeechError *) error; -/** - 音量反馈,返回频率与录音数据返回回调频率一致 - volume:音量值 +/*! + * 唤醒结果 + * + * @param resultDic 唤醒结果字典 + */ +-(void) onResult:(NSMutableDictionary *)resultDic; + +/*! + * 音量反馈,返回频率与录音数据返回回调频率一致 + * + * @param volume 音量值 */ - (void) onVolumeChanged: (int)volume; - -/** 扩展事件回调 - - 根据事件类型返回额外的数据 - +/*! + * 扩展事件回调
+ * 根据事件类型返回额外的数据 + * @param eventType 事件类型,具体参见IFlySpeechEvent枚举。 - */ - (void) onEvent:(int)eventType isLast:(BOOL)isLast arg1:(int)arg1 data:(NSMutableDictionary *)eventData; diff --git a/src/ios/iflyMSC.framework/iflyMSC b/src/ios/iflyMSC.framework/iflyMSC index 77aad7b..57a81b9 100644 Binary files a/src/ios/iflyMSC.framework/iflyMSC and b/src/ios/iflyMSC.framework/iflyMSC differ