Merge branch 'master' of https://github.com/shuto-cn/cordova-plugin-IFlyspeech-master
This commit is contained in:
commit
edc27c925c
85
README.md
85
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();
|
||||
|
||||
|
||||
|
365
plugin.xml
365
plugin.xml
@ -1,278 +1,113 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<plugin id="cordova-plugin-xunfeiListenSpeaking" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<name>cordova-plugin-xunfeiListenSpeaking</name>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<plugin id="cordova-plugin-xunfeiListenSpeaking" version="0.0.1"
|
||||
xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<name>cordova-plugin-xunfeiListenSpeaking</name>
|
||||
<preference name="APP_KEY" />
|
||||
<preference name="CHANNEL" default="developer-default" />
|
||||
<platform name = "android">
|
||||
<js-module name="xunfeiListenSpeaking" src="www/cordova-plugin-xunfeiListenSpeaking.js">
|
||||
<clobbers target="xunfeiListenSpeaking" />
|
||||
</js-module>
|
||||
<engines>
|
||||
<engine name="cordova" version=">=3.0" />
|
||||
</engines>
|
||||
<platform name="android">
|
||||
<js-module name="xunfeiListenSpeaking" src="www/cordova-plugin-xunfeiListenSpeaking.js">
|
||||
<clobbers target="xunfeiListenSpeaking" />
|
||||
</js-module>
|
||||
<config-file target="res/xml/config.xml" parent="/*">
|
||||
<feature name="XunfeiListenSpeaking" >
|
||||
<param name="android-package" value="com.thomas.xunfeilistenspeaking.XunfeiListenSpeaking"/>
|
||||
</feature>
|
||||
</config-file>
|
||||
|
||||
<config-file target="AndroidManifest.xml" parent="/manifest">
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<!-- 移动统计分析 -->
|
||||
<meta-data
|
||||
android:name="IFLYTEK_APPKEY"
|
||||
android:value="$APP_KEY" />
|
||||
<meta-data
|
||||
android:name="IFLYTEK_CHANNEL"
|
||||
android:value="$CHANNEL" />
|
||||
|
||||
</config-file>
|
||||
<config-file target="AndroidManifest.xml" parent="/manifest/application">
|
||||
<activity android:name="com.thomas.xunfeilistenspeaking.XunfeiDialogActivity"
|
||||
android:theme="@android:style/Theme.Translucent.NoTitleBar">
|
||||
|
||||
</activity>
|
||||
<feature name="XunfeiListenSpeaking">
|
||||
<param name="android-package" value="com.thomas.xunfeilistenspeaking.XunfeiListenSpeaking" />
|
||||
<param name="onload" value="true" />
|
||||
</feature>
|
||||
</config-file>
|
||||
<!--assets-->
|
||||
<source-file src="src/android/assets/iattest.wav" target-dir="assets"/>
|
||||
<source-file src="src/android/assets/call.bnf" target-dir="assets"/>
|
||||
<source-file src="src/android/assets/grammar_sample.abnf" target-dir="assets"/>
|
||||
<source-file src="src/android/assets/keys" target-dir="assets"/>
|
||||
<source-file src="src/android/assets/userwords" target-dir="assets"/>
|
||||
<source-file src="src/android/assets/iflytek/voice_bg.9.png" target-dir="assets/iflytek"/>
|
||||
<source-file src="src/android/assets/iflytek/voice_empty.png" target-dir="assets/iflytek"/>
|
||||
<source-file src="src/android/assets/iflytek/voice_full.png" target-dir="assets/iflytek"/>
|
||||
<source-file src="src/android/assets/iflytek/waiting.png" target-dir="assets/iflytek"/>
|
||||
<source-file src="src/android/assets/iflytek/warning.png" target-dir="assets/iflytek"/>
|
||||
<source-file src="src/android/assets/iflytek/recognize.xml" target-dir="assets/iflytek"/>
|
||||
<config-file target="AndroidManifest.xml" parent="/manifest">
|
||||
<!-- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> -->
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> -->
|
||||
<!-- <uses-permission android:name="android.permission.READ_CONTACTS" /> -->
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<!-- <uses-permission android:name="android.permission.WRITE_SETTINGS" /> -->
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
</config-file>
|
||||
<config-file target="AndroidManifest.xml" parent="/manifest/application">
|
||||
<activity android:name="com.thomas.xunfeilistenspeaking.XunfeiDialogActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar">
|
||||
</activity>
|
||||
</config-file>
|
||||
<!-- assets -->
|
||||
<resource-file src="src/android/assets/iflytek/voice_bg.9.png" target="assets/iflytek/voice_bg.9.png" />
|
||||
<resource-file src="src/android/assets/iflytek/voice_empty.png" target="assets/iflytek/voice_empty.png" />
|
||||
<resource-file src="src/android/assets/iflytek/voice_full.png" target="assets/iflytek/voice_full.png" />
|
||||
<resource-file src="src/android/assets/iflytek/waiting.png" target="assets/iflytek/waiting.png" />
|
||||
<resource-file src="src/android/assets/iflytek/warning.png" target="assets/iflytek/warning.png" />
|
||||
<resource-file src="src/android/assets/iflytek/recognize.xml" target="assets/iflytek/recognize.xml" />
|
||||
<!-- lib -->
|
||||
<lib-file src="src/android/libs/Msc.jar" />
|
||||
<lib-file src="src/android/libs/Sunflower.jar" />
|
||||
<!-- <lib-file src="src/android/libs/armeabi" />
|
||||
<lib-file src="src/android/libs/armeabi-v7a" />
|
||||
<lib-file src="src/android/libs/arm64-v8a" /> -->
|
||||
<resource-file src="src/android/libs/armeabi/libmsc.so" target="jniLibs/armeabi/libmsc.so" />
|
||||
<resource-file src="src/android/libs/armeabi-v7a/libmsc.so" target="jniLibs/armeabi-v7a/libmsc.so" />
|
||||
<resource-file src="src/android/libs/arm64-v8a/libmsc.so" target="jniLibs/arm64-v8a/libmsc.so" />
|
||||
<resource-file src="src/android/libs/x86/libmsc.so" target="jniLibs/x86/libmsc.so" />
|
||||
<resource-file src="src/android/libs/x86_64/libmsc.so" target="jniLibs/x86_64/libmsc.so" />
|
||||
<resource-file src="src/android/libs/mips/libmsc.so" target="jniLibs/mips/libmsc.so" />
|
||||
<resource-file src="src/android/libs/mips64/libmsc.so" target="jniLibs/mips64/libmsc.so" />
|
||||
<!-- layout -->
|
||||
<resource-file src="src/android/res/layout/ifly_layout_mnotice_image.xml" target="res/layout/ifly_layout_mnotice_image.xml" />
|
||||
|
||||
|
||||
<!--lib-->
|
||||
<source-file src="src/android/libs/Msc.jar" target-dir="libs"/>
|
||||
<source-file src="src/android/libs/Sunflower.jar" target-dir="libs"/>
|
||||
<source-file src="src/android/libs/armeabi/libmsc.so" target-dir="libs/armeabi"/>
|
||||
<source-file src="src/android/libs/arm64-v8a/libmsc.so" target-dir="libs/arm64-v8a"/>
|
||||
<source-file src="src/android/libs/armeabi-v7a/libmsc.so" target-dir="libs/armeabi-v7a"/>
|
||||
|
||||
<!--layout-->
|
||||
<source-file src="src/android/res/layout/activity_xunfei_dialog.xml" target-dir="res/layout"/>
|
||||
|
||||
<!--xml-->
|
||||
<source-file src="src/android/res/xml/iat_setting.xml" target-dir="res/xml"/>
|
||||
<source-file src="src/android/res/xml/ise_settings.xml" target-dir="res/xml"/>
|
||||
<source-file src="src/android/res/xml/tts_setting.xml" target-dir="res/xml"/>
|
||||
<source-file src="src/android/res/xml/understand_setting.xml" target-dir="res/xml"/>
|
||||
|
||||
<!--src-->
|
||||
<source-file src="src/android/src/com/thomas/xunfeilistenspeaking/XunfeiListenSpeaking.java" target-dir="src/com/thomas/xunfeilistenspeaking"/>
|
||||
<source-file src="src/android/src/com/thomas/xunfeilistenspeaking/IatSettings.java" target-dir="src/com/thomas/xunfeilistenspeaking"/>
|
||||
<source-file src="src/android/src/com/thomas/xunfeilistenspeaking/JsonParser.java" target-dir="src/com/thomas/xunfeilistenspeaking"/>
|
||||
<source-file src="src/android/src/com/thomas/xunfeilistenspeaking/SettingTextWatcher.java" target-dir="src/com/thomas/xunfeilistenspeaking"/>
|
||||
<source-file src="src/android/src/com/thomas/xunfeilistenspeaking/XunfeiDialogActivity.java" target-dir="src/com/thomas/xunfeilistenspeaking"/>
|
||||
|
||||
|
||||
<!--res-->
|
||||
<!-- src -->
|
||||
<source-file src="src/android/src/com/thomas/xunfeilistenspeaking/XunfeiListenSpeaking.java" target-dir="src/com/thomas/xunfeilistenspeaking" />
|
||||
<source-file src="src/android/src/com/thomas/xunfeilistenspeaking/IatSettings.java" target-dir="src/com/thomas/xunfeilistenspeaking" />
|
||||
<source-file src="src/android/src/com/thomas/xunfeilistenspeaking/JsonParser.java" target-dir="src/com/thomas/xunfeilistenspeaking" />
|
||||
<source-file src="src/android/src/com/thomas/xunfeilistenspeaking/SettingTextWatcher.java" target-dir="src/com/thomas/xunfeilistenspeaking" />
|
||||
<source-file src="src/android/src/com/thomas/xunfeilistenspeaking/XunfeiDialogActivity.java" target-dir="src/com/thomas/xunfeilistenspeaking" />
|
||||
<!-- res -->
|
||||
<config-file target="res/values/strings.xml" parent="/resources">
|
||||
<!--<string name="app_name">讯飞语音示例</string>-->
|
||||
<!-- 请替换成在语音云官网申请的appid -->
|
||||
<string name="app_id">$APP_KEY</string>
|
||||
<string name="example_explain">本示例为讯飞语音Android平台开发者提供语音听写、语法识别、语义理解和语音合成等代码样例,旨在让用户能够依据该示例快速开发出基于语音接口的应用程序。</string>
|
||||
<string name="text_tts_source">科大讯飞作为中国最大的智能语音技术提供商,在智能语音技术领域有着长期的研究积累,并在中文语音合成、语音识别、口语评测等多项技术上拥有国际领先的成果。科大讯飞是我国唯一以语音技术为产业化方向的“国家863计划成果产业化基地”…</string>
|
||||
<string name="text_tts_source_en">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.</string>
|
||||
<string name="text_isr_abnf_hint">\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 = 上海 | 合肥;</string>
|
||||
<string name="text_understand_hint">\t您可以说:\n\t今天的天气怎么样?\n\t北京到上海的火车?\n\t有什么好吃的?\n\t上海外滩有哪些酒店?\n\n\t更多语义请登录:\n\thttp://osp.voicecloud.cn/ \n\t配置您的专属语义吧!</string>
|
||||
<!-- 听写 -->
|
||||
<string name="text_begin">请开始说话…</string>
|
||||
<string name="text_begin_recognizer">开始音频流识别</string>
|
||||
<string name="text_upload_contacts">上传联系人</string>
|
||||
<string name="text_upload_userwords">上传用户词表</string>
|
||||
<string name="text_upload_success">上传成功</string>
|
||||
<string name="text_userword_empty">词表下载失败或内容为空</string>
|
||||
<string name="text_download_success">下载成功</string>
|
||||
<string name="pref_key_iat_show">iat_show</string>
|
||||
<string name="pref_title_iat_show">显示听写界面</string>
|
||||
<string name="pref_title_iat_dwa">结果动态修正</string>
|
||||
<string name="app_id">$APP_KEY</string>
|
||||
<string name="xunfei_cancel_listen">取消语音</string>
|
||||
</config-file>
|
||||
</platform>
|
||||
|
||||
<string name="xunfei_cancel_listen">取消语音</string>
|
||||
<!-- 合成 -->
|
||||
<string-array name="engine_entries">
|
||||
<item>本地合成</item>
|
||||
<item>在线合成</item>
|
||||
</string-array>
|
||||
<string-array name="engine_values">
|
||||
<item>local</item>
|
||||
<item>cloud</item>
|
||||
</string-array>
|
||||
<string-array name="voicer_cloud_entries">
|
||||
<item>小燕—女青、中英、普通话</item>
|
||||
<item>小宇—男青、中英、普通话</item>
|
||||
<item>凯瑟琳—女青、英</item>
|
||||
<item>亨利—男青、英</item>
|
||||
<item>玛丽—女青、英</item>
|
||||
<item>小研—女青、中英、普通话</item>
|
||||
<item>小琪—女青、中英、普通话</item>
|
||||
<item>小峰—男青、中英、普通话</item>
|
||||
<item>小梅—女青、中英、粤语</item>
|
||||
<item>小莉—女青、中英、台湾普通话</item>
|
||||
<item>小蓉—女青、中、四川话</item>
|
||||
<item>小芸—女青、中、东北话</item>
|
||||
<item>小坤—男青、中、河南话</item>
|
||||
<item>小强—男青、中、湖南话</item>
|
||||
<item>小莹—女青、中、陕西话</item>
|
||||
<item>小新—男童、中、普通话</item>
|
||||
<item>楠楠—女童、中、普通话</item>
|
||||
<item>老孙—男老、中、普通话</item>
|
||||
</string-array>
|
||||
<string-array name="voicer_cloud_values">
|
||||
<item>xiaoyan</item>
|
||||
<item>xiaoyu</item>
|
||||
<item>catherine</item>
|
||||
<item>henry</item>
|
||||
<item>vimary</item>
|
||||
<item>vixy</item>
|
||||
<item>xiaoqi</item>
|
||||
<item>vixf</item>
|
||||
<item>xiaomei</item>
|
||||
<item>xiaolin</item>
|
||||
<item>xiaorong</item>
|
||||
<item>xiaoqian</item>
|
||||
<item>xiaokun</item>
|
||||
<item>xiaoqiang</item>
|
||||
<item>vixying</item>
|
||||
<item>xiaoxin</item>
|
||||
<item>nannan</item>
|
||||
<item>vils</item>
|
||||
</string-array>
|
||||
<string-array name="emot_entries">
|
||||
<item>正常</item>
|
||||
<item>高兴</item>
|
||||
<item>悲伤</item>
|
||||
<item>生气</item>
|
||||
</string-array>
|
||||
<string-array name="emot_values">
|
||||
<item>neutral</item>
|
||||
<item>happy</item>
|
||||
<item>sad</item>
|
||||
<item>angry</item>
|
||||
</string-array>
|
||||
<string-array name="stream_entries">
|
||||
<item>通话</item>
|
||||
<item>系统</item>
|
||||
<item>铃声</item>
|
||||
<item>音乐</item>
|
||||
<item>闹铃</item>
|
||||
<item>通知</item>
|
||||
</string-array>
|
||||
<string-array name="stream_values">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
<item>4</item>
|
||||
<item>5</item>
|
||||
</string-array>
|
||||
<string formatted="false" name="tts_toast_format">缓冲进度为%d%%,播放进度为%d%%</string>
|
||||
<!-- 语言 -->
|
||||
<string-array name="language_entries">
|
||||
<item>普通话</item>
|
||||
<item>粤语</item>
|
||||
<item>河南话</item>
|
||||
<item>英语</item>
|
||||
</string-array>
|
||||
<string-array name="language_values">
|
||||
<item>mandarin</item>
|
||||
<item>cantonese</item>
|
||||
<item>henanese</item>
|
||||
<item>en_us</item>
|
||||
</string-array>
|
||||
<!-- 语音评测 -->
|
||||
<string name="text_en_word">"[word]\napple\nbanana\norange"</string>
|
||||
<string name="text_en_sentence">"The quick brown fox jumps over the lazy dog."</string>
|
||||
<string name="text_cn_syllable">"知,痴,是"</string>
|
||||
<string name="text_cn_word">"磁铁,率领,脆弱,动手,古筝"</string>
|
||||
<string name="text_cn_sentence">"一座座雪峰插入云霄,峰顶银光闪闪,大大小小的湖泊,像颗颗宝石镶嵌在彩带般的沟谷中。"</string>
|
||||
<string-array name="ise_language_entries">
|
||||
<item>英语</item>
|
||||
<item>汉语</item>
|
||||
</string-array>
|
||||
<string-array name="ise_language_values">
|
||||
<item>en_us</item>
|
||||
<item>zh_cn</item>
|
||||
</string-array>
|
||||
<string-array name="category_entries">
|
||||
<item>单字</item>
|
||||
<item>词语</item>
|
||||
<item>句子</item>
|
||||
</string-array>
|
||||
<string-array name="category_values">
|
||||
<item>read_syllable</item>
|
||||
<item>read_word</item>
|
||||
<item>read_sentence</item>
|
||||
</string-array>
|
||||
<string-array name="result_level_entries">
|
||||
<item>plain</item>
|
||||
<item>complete</item>
|
||||
</string-array>
|
||||
<!-- 标点符号 -->
|
||||
<string-array name="punc_entries">
|
||||
<item>有标点</item>
|
||||
<item>无标点</item>
|
||||
</string-array>
|
||||
<string-array name="punc_values">
|
||||
<item>1</item>
|
||||
<item>0</item>
|
||||
</string-array>
|
||||
<string-array name="dwa_entries">
|
||||
<item>开启</item>
|
||||
<item>关闭</item>
|
||||
</string-array>
|
||||
</config-file>
|
||||
</platform>
|
||||
|
||||
<platform name="ios">
|
||||
<js-module name="speech" src="www/Speech.js">
|
||||
<!-- <clobbers target="navigator.speech" />-->
|
||||
<clobbers target="xunfeiListenSpeaking" />
|
||||
</js-module>
|
||||
<config-file parent="/*" target="config.xml">
|
||||
<feature name="Speech">
|
||||
<param name="ios-package" value="CDVSpeech" />
|
||||
</feature>
|
||||
</config-file>
|
||||
<platform name="ios">
|
||||
<js-module name="speech" src="www/Speech.js">
|
||||
<!-- <clobbers target="navigator.speech" /> -->
|
||||
<clobbers target="xunfeiListenSpeaking" />
|
||||
</js-module>
|
||||
<config-file parent="/*" target="config.xml">
|
||||
<feature name="Speech">
|
||||
<param name="ios-package" value="CDVSpeech" />
|
||||
</feature>
|
||||
</config-file>
|
||||
|
||||
<config-file target="*-Info.plist" parent="NSMicrophoneUsageDescription">
|
||||
<string></string>
|
||||
</config-file>
|
||||
|
||||
<header-file src="src/ios/CDVSpeech.h" />
|
||||
<source-file src="src/ios/CDVSpeech.m" />
|
||||
<resource-file src="src/ios/IFlySpeechConfig.plist" />
|
||||
<config-file target="*-Info.plist" parent="NSMicrophoneUsageDescription">
|
||||
<string></string>
|
||||
</config-file>
|
||||
|
||||
<header-file src="src/ios/CDVSpeech.h" />
|
||||
<source-file src="src/ios/CDVSpeech.m" />
|
||||
|
||||
<framework src="AVFoundation.framework" />
|
||||
<framework src="AddressBook.framework" />
|
||||
<framework src="AudioToolbox.framework" />
|
||||
<framework src="SystemConfiguration.framework" />
|
||||
<framework src="QuartzCore.framework" />
|
||||
|
||||
<framework src="libz.tbd" />
|
||||
<framework src="libc++.tbd" />
|
||||
<framework src="UIKit.framework" />
|
||||
<framework src="CoreGraphics.framework" />
|
||||
<framework src="Foundation.framework" />
|
||||
<framework src="CoreTelephony.framework" />
|
||||
<framework src="CoreLocation.framework" />
|
||||
<framework src="Contacts.framework" />
|
||||
|
||||
<framework src="AVFoundation.framework" />
|
||||
<framework src="AddressBook.framework" />
|
||||
<framework src="AudioToolbox.framework" />
|
||||
<framework src="SystemConfiguration.framework" />
|
||||
<framework src="QuartzCore.framework" />
|
||||
|
||||
<framework src="libz.tbd" />
|
||||
<framework src="libc++.tbd" />
|
||||
<framework src="UIKit.framework" />
|
||||
<framework src="CoreGraphics.framework" />
|
||||
<framework src="Foundation.framework" />
|
||||
<framework src="CoreTelephony.framework" />
|
||||
<framework src="CoreLocation.framework" />
|
||||
<framework src="Contacts.framework" />
|
||||
<framework src="src/ios/iflyMSC.framework" custom="true" />
|
||||
<config-file target="*IFlySpeechConfig.plist" parent="AppKey">
|
||||
<string>$APP_KEY</string>
|
||||
</config-file>
|
||||
</platform>
|
||||
|
||||
</platform>
|
||||
</plugin>
|
||||
|
@ -1,12 +0,0 @@
|
||||
#BNF+IAT 1.0 UTF-8;
|
||||
!grammar call;
|
||||
!slot <contact>;
|
||||
!slot <callPre>;
|
||||
!slot <callPhone>;
|
||||
!slot <callTo>;
|
||||
!start <callStart>;
|
||||
<callStart>:[<callPre>][<callTo>]<contact><callPhone>|[<callPre>]<callPhone>[<callTo>]<contact>;
|
||||
<contact>:张海洋;
|
||||
<callPre>:我要|我想|我想要;
|
||||
<callPhone>:打电话;
|
||||
<callTo>:给;
|
@ -1,8 +0,0 @@
|
||||
#ABNF 1.0 UTF-8;
|
||||
language zh-CN;
|
||||
mode voice;
|
||||
|
||||
root $main;
|
||||
$main = $place1 到 $place2;
|
||||
$place1 = 北京|武汉|南京|天津|东京;
|
||||
$place2 = 上海|合肥;
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
||||
{"userword":[{"name":"我的常用词","words":["佳晨实业","蜀南庭苑","高兰路","复联二"]},{"name":"我的好友","words":["李馨琪","鹿晓雷","张集栋","周家莉","叶震珂","熊泽萌"]}]}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/android/libs/mips/libmsc.so
Normal file
BIN
src/android/libs/mips/libmsc.so
Normal file
Binary file not shown.
BIN
src/android/libs/mips64/libmsc.so
Normal file
BIN
src/android/libs/mips64/libmsc.so
Normal file
Binary file not shown.
BIN
src/android/libs/x86/libmsc.so
Normal file
BIN
src/android/libs/x86/libmsc.so
Normal file
Binary file not shown.
BIN
src/android/libs/x86_64/libmsc.so
Normal file
BIN
src/android/libs/x86_64/libmsc.so
Normal file
Binary file not shown.
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
</LinearLayout>
|
13
src/android/res/layout/ifly_layout_mnotice_image.xml
Normal file
13
src/android/res/layout/ifly_layout_mnotice_image.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical">
|
||||
<ImageView
|
||||
android:id="@+id/ifly_mnotice_image_container"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitXY"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
</RelativeLayout>
|
@ -1,155 +0,0 @@
|
||||
<resources>
|
||||
<string name="app_name">XunfeiSpeaking</string>
|
||||
<!--<string name="app_name">讯飞语音示例</string>-->
|
||||
<!-- 请替换成在语音云官网申请的appid -->
|
||||
<string name="app_id">584e7225</string>
|
||||
<string name="example_explain">本示例为讯飞语音Android平台开发者提供语音听写、语法识别、语义理解和语音合成等代码样例,旨在让用户能够依据该示例快速开发出基于语音接口的应用程序。</string>
|
||||
<string name="text_tts_source">科大讯飞作为中国最大的智能语音技术提供商,在智能语音技术领域有着长期的研究积累,并在中文语音合成、语音识别、口语评测等多项技术上拥有国际领先的成果。科大讯飞是我国唯一以语音技术为产业化方向的“国家863计划成果产业化基地”…</string>
|
||||
<string name="text_tts_source_en">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.</string>
|
||||
<string name="text_isr_abnf_hint">\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 = 上海 | 合肥;</string>
|
||||
<string name="text_understand_hint">\t您可以说:\n\t今天的天气怎么样?\n\t北京到上海的火车?\n\t有什么好吃的?\n\t上海外滩有哪些酒店?\n\n\t更多语义请登录:\n\thttp://osp.voicecloud.cn/ \n\t配置您的专属语义吧!</string>
|
||||
<!-- 听写 -->
|
||||
<string name="text_begin">请开始说话…</string>
|
||||
<string name="text_begin_recognizer">开始音频流识别</string>
|
||||
<string name="text_upload_contacts">上传联系人</string>
|
||||
<string name="text_upload_userwords">上传用户词表</string>
|
||||
<string name="text_upload_success">上传成功</string>
|
||||
<string name="text_userword_empty">词表下载失败或内容为空</string>
|
||||
<string name="text_download_success">下载成功</string>
|
||||
<string name="pref_key_iat_show">iat_show</string>
|
||||
<string name="pref_title_iat_show">显示听写界面</string>
|
||||
<string name="pref_title_iat_dwa">结果动态修正</string>
|
||||
|
||||
<!-- 合成 -->
|
||||
<string-array name="engine_entries">
|
||||
<item>本地合成</item>
|
||||
<item>在线合成</item>
|
||||
</string-array>
|
||||
<string-array name="engine_values">
|
||||
<item>local</item>
|
||||
<item>cloud</item>
|
||||
</string-array>
|
||||
<string-array name="voicer_cloud_entries">
|
||||
<item>小燕—女青、中英、普通话</item>
|
||||
<item>小宇—男青、中英、普通话</item>
|
||||
<item>凯瑟琳—女青、英</item>
|
||||
<item>亨利—男青、英</item>
|
||||
<item>玛丽—女青、英</item>
|
||||
<item>小研—女青、中英、普通话</item>
|
||||
<item>小琪—女青、中英、普通话</item>
|
||||
<item>小峰—男青、中英、普通话</item>
|
||||
<item>小梅—女青、中英、粤语</item>
|
||||
<item>小莉—女青、中英、台湾普通话</item>
|
||||
<item>小蓉—女青、中、四川话</item>
|
||||
<item>小芸—女青、中、东北话</item>
|
||||
<item>小坤—男青、中、河南话</item>
|
||||
<item>小强—男青、中、湖南话</item>
|
||||
<item>小莹—女青、中、陕西话</item>
|
||||
<item>小新—男童、中、普通话</item>
|
||||
<item>楠楠—女童、中、普通话</item>
|
||||
<item>老孙—男老、中、普通话</item>
|
||||
</string-array>
|
||||
<string-array name="voicer_cloud_values">
|
||||
<item>xiaoyan</item>
|
||||
<item>xiaoyu</item>
|
||||
<item>catherine</item>
|
||||
<item>henry</item>
|
||||
<item>vimary</item>
|
||||
<item>vixy</item>
|
||||
<item>xiaoqi</item>
|
||||
<item>vixf</item>
|
||||
<item>xiaomei</item>
|
||||
<item>xiaolin</item>
|
||||
<item>xiaorong</item>
|
||||
<item>xiaoqian</item>
|
||||
<item>xiaokun</item>
|
||||
<item>xiaoqiang</item>
|
||||
<item>vixying</item>
|
||||
<item>xiaoxin</item>
|
||||
<item>nannan</item>
|
||||
<item>vils</item>
|
||||
</string-array>
|
||||
<string-array name="emot_entries">
|
||||
<item>正常</item>
|
||||
<item>高兴</item>
|
||||
<item>悲伤</item>
|
||||
<item>生气</item>
|
||||
</string-array>
|
||||
<string-array name="emot_values">
|
||||
<item>neutral</item>
|
||||
<item>happy</item>
|
||||
<item>sad</item>
|
||||
<item>angry</item>
|
||||
</string-array>
|
||||
<string-array name="stream_entries">
|
||||
<item>通话</item>
|
||||
<item>系统</item>
|
||||
<item>铃声</item>
|
||||
<item>音乐</item>
|
||||
<item>闹铃</item>
|
||||
<item>通知</item>
|
||||
</string-array>
|
||||
<string-array name="stream_values">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
<item>4</item>
|
||||
<item>5</item>
|
||||
</string-array>
|
||||
<string formatted="false" name="tts_toast_format">缓冲进度为%d%%,播放进度为%d%%</string>
|
||||
<!-- 语言 -->
|
||||
<string-array name="language_entries">
|
||||
<item>普通话</item>
|
||||
<item>粤语</item>
|
||||
<item>河南话</item>
|
||||
<item>英语</item>
|
||||
</string-array>
|
||||
<string-array name="language_values">
|
||||
<item>mandarin</item>
|
||||
<item>cantonese</item>
|
||||
<item>henanese</item>
|
||||
<item>en_us</item>
|
||||
</string-array>
|
||||
<!-- 语音评测 -->
|
||||
<string name="text_en_word">"[word]\napple\nbanana\norange"</string>
|
||||
<string name="text_en_sentence">"The quick brown fox jumps over the lazy dog."</string>
|
||||
<string name="text_cn_syllable">"知,痴,是"</string>
|
||||
<string name="text_cn_word">"磁铁,率领,脆弱,动手,古筝"</string>
|
||||
<string name="text_cn_sentence">"一座座雪峰插入云霄,峰顶银光闪闪,大大小小的湖泊,像颗颗宝石镶嵌在彩带般的沟谷中。"</string>
|
||||
<string-array name="ise_language_entries">
|
||||
<item>英语</item>
|
||||
<item>汉语</item>
|
||||
</string-array>
|
||||
<string-array name="ise_language_values">
|
||||
<item>en_us</item>
|
||||
<item>zh_cn</item>
|
||||
</string-array>
|
||||
<string-array name="category_entries">
|
||||
<item>单字</item>
|
||||
<item>词语</item>
|
||||
<item>句子</item>
|
||||
</string-array>
|
||||
<string-array name="category_values">
|
||||
<item>read_syllable</item>
|
||||
<item>read_word</item>
|
||||
<item>read_sentence</item>
|
||||
</string-array>
|
||||
<string-array name="result_level_entries">
|
||||
<item>plain</item>
|
||||
<item>complete</item>
|
||||
</string-array>
|
||||
<!-- 标点符号 -->
|
||||
<string-array name="punc_entries">
|
||||
<item>有标点</item>
|
||||
<item>无标点</item>
|
||||
</string-array>
|
||||
<string-array name="punc_values">
|
||||
<item>1</item>
|
||||
<item>0</item>
|
||||
</string-array>
|
||||
<string-array name="dwa_entries">
|
||||
<item>开启</item>
|
||||
<item>关闭</item>
|
||||
</string-array>
|
||||
</resources>
|
@ -1,40 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
|
||||
<ListPreference
|
||||
android:key="iat_language_preference"
|
||||
android:title="语言设置"
|
||||
android:entries="@array/language_entries"
|
||||
android:entryValues="@array/language_values"
|
||||
android:summary="支持:普通话,粤语,河南话,英语 "
|
||||
android:defaultValue="mandarin" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="iat_vadbos_preference"
|
||||
android:title="前端点超时"
|
||||
android:dialogTitle="请输入时间(0-10000)ms"
|
||||
android:summary="默认值:短信转写5000,其他4000"
|
||||
android:defaultValue="5000" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="iat_vadeos_preference"
|
||||
android:title="后端点超时"
|
||||
android:dialogTitle="请输入时间(0-10000)ms"
|
||||
android:summary="默认值:短信转写1800,其他700 "
|
||||
android:defaultValue="1800" />
|
||||
|
||||
<ListPreference
|
||||
android:key="iat_punc_preference"
|
||||
android:title="标点符号"
|
||||
android:entries="@array/punc_entries"
|
||||
android:entryValues="@array/punc_values"
|
||||
android:summary="默认值:有标点 "
|
||||
android:defaultValue="1" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/pref_key_iat_show"
|
||||
android:title="@string/pref_title_iat_show"
|
||||
android:defaultValue="true" />
|
||||
|
||||
</PreferenceScreen>
|
||||
|
@ -1,47 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
|
||||
<ListPreference
|
||||
android:key="language"
|
||||
android:title="评测语种"
|
||||
android:summary=""
|
||||
android:entries="@array/ise_language_entries"
|
||||
android:entryValues="@array/ise_language_values"
|
||||
android:defaultValue="zh_cn"/>
|
||||
|
||||
<ListPreference
|
||||
android:key="category"
|
||||
android:title="评测题型"
|
||||
android:summary=""
|
||||
android:entries="@array/category_entries"
|
||||
android:entryValues="@array/category_values"
|
||||
android:defaultValue="read_sentence"/>
|
||||
|
||||
<ListPreference
|
||||
android:key="result_level"
|
||||
android:title="结果等级"
|
||||
android:summary=""
|
||||
android:entries="@array/result_level_entries"
|
||||
android:entryValues="@array/result_level_entries"
|
||||
android:defaultValue="complete"/>
|
||||
|
||||
<EditTextPreference
|
||||
android:key="vad_bos"
|
||||
android:title="前端点超时"
|
||||
android:summary=""
|
||||
android:defaultValue="5000"/>
|
||||
|
||||
<EditTextPreference
|
||||
android:key="vad_eos"
|
||||
android:title="后端点超时"
|
||||
android:summary=""
|
||||
android:defaultValue="1800"/>
|
||||
|
||||
<EditTextPreference
|
||||
android:key="speech_timeout"
|
||||
android:title="评测超时"
|
||||
android:summary=""
|
||||
android:defaultValue="-1"/>
|
||||
|
||||
|
||||
</PreferenceScreen>
|
@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
|
||||
<EditTextPreference
|
||||
android:dialogTitle="请输入语速:在线(0-100)本地(0-200)"
|
||||
android:key="speed_preference"
|
||||
android:defaultValue="50"
|
||||
android:summary="默认值:50 "
|
||||
android:title="语速" />
|
||||
<EditTextPreference
|
||||
android:dialogTitle="请输入音调(0-100)"
|
||||
android:key="pitch_preference"
|
||||
android:defaultValue="50"
|
||||
android:summary="默认值:50 "
|
||||
android:title="音调" />
|
||||
<EditTextPreference
|
||||
android:dialogTitle="请输入音量(0-100)"
|
||||
android:key="volume_preference"
|
||||
android:defaultValue="50"
|
||||
android:summary="默认值:50 "
|
||||
android:title="音量" />
|
||||
<ListPreference
|
||||
android:defaultValue="3"
|
||||
android:entries="@array/stream_entries"
|
||||
android:entryValues="@array/stream_values"
|
||||
android:key="stream_preference"
|
||||
android:title="音频流类型" />
|
||||
|
||||
</PreferenceScreen>
|
@ -1,40 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<ListPreference
|
||||
android:key="understander_language_preference"
|
||||
android:title="语言设置"
|
||||
android:entries="@array/language_entries"
|
||||
android:entryValues="@array/language_values"
|
||||
android:summary="支持:普通话,粤语,河南话,英语 "
|
||||
android:defaultValue="mandarin" />
|
||||
<EditTextPreference
|
||||
android:key="understander_vadbos_preference"
|
||||
android:title="前端点超时"
|
||||
android:dialogTitle="请输入时间(0-10000)ms"
|
||||
android:summary="默认值:短信转写5000,其他4000"
|
||||
android:defaultValue="4000" />
|
||||
|
||||
<EditTextPreference
|
||||
android:key="understander_vadeos_preference"
|
||||
android:title="后端点超时"
|
||||
android:dialogTitle="请输入时间(0-10000)ms"
|
||||
android:summary="默认值:短信转写1800,其他700 "
|
||||
android:defaultValue="700" />
|
||||
|
||||
<ListPreference
|
||||
android:key="understander_punc_preference"
|
||||
android:title="标点符号"
|
||||
android:entries="@array/punc_entries"
|
||||
android:entryValues="@array/punc_values"
|
||||
android:summary="默认值:有标点 "
|
||||
android:defaultValue="1" />
|
||||
|
||||
<!-- <CheckBoxPreference -->
|
||||
<!-- android:key="nbest_preference" -->
|
||||
<!-- android:title="@string/set_multiple_candidate_title" -->
|
||||
<!-- android:summary="@string/set_multiple_candidate_summary" -->
|
||||
<!-- android:defaultValue="false" /> -->
|
||||
|
||||
</PreferenceScreen>
|
||||
|
||||
|
@ -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() {
|
||||
|
@ -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<String, String> mIatResults = new LinkedHashMap<String, String>();
|
||||
|
||||
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<String> permissions = new ArrayList<String>(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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
35
src/ios/iflyMSC.framework/Headers/IFlyAudioSession.h
Normal file
35
src/ios/iflyMSC.framework/Headers/IFlyAudioSession.h
Normal file
@ -0,0 +1,35 @@
|
||||
//
|
||||
// IFlyAudioSession.h
|
||||
// MSCDemo
|
||||
//
|
||||
// Created by AlexHHC on 1/9/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/**
|
||||
* 音频环境初始化,设置AVAudioSession的Category属性。
|
||||
*/
|
||||
@interface IFlyAudioSession : NSObject
|
||||
|
||||
/**
|
||||
* 初始化播音环境,主要用于合成播放器。
|
||||
*
|
||||
* 此接口主要根据原来的音频环境,重新优化设置AVAudioSession的Category属性值。<br>
|
||||
* 若原来的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
|
@ -1,27 +0,0 @@
|
||||
//
|
||||
// IFlyContact.h
|
||||
// msc
|
||||
//
|
||||
// Created by ypzhao on 13-3-1.
|
||||
// Copyright (c) 2013年 IFLYTEK. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*!
|
||||
* 此接口为获取通信录中的联系人
|
||||
* 获取联系人是为了在进行语音识别时(sms)能更好的识别出您说的人名,联系人上传是属于个性化的
|
||||
* 一部分.
|
||||
*/
|
||||
@interface IFlyContact : NSObject
|
||||
|
||||
/*!
|
||||
* 获取联系人
|
||||
* 调用此方法需要添加 AddressBook.framework 到工程中,调用此方法后可以直接将通信录中的联系
|
||||
* 人转化为语音云识别的数据结构。您可以将获取的数据通过IFlyDataUploader类,上传到语音云,我们
|
||||
* 只获取通信录中的人名
|
||||
*
|
||||
* @return 返回联系人信息
|
||||
*/
|
||||
- (NSString *) contact;
|
||||
@end
|
@ -12,7 +12,7 @@
|
||||
@class IFlySpeechError;
|
||||
|
||||
/*!
|
||||
* 数据上传类
|
||||
* 数据上传类,主要用于上传语法文件或上传联系人、词表等个性化数据。
|
||||
*/
|
||||
@interface IFlyDataUploader : NSObject
|
||||
|
||||
|
@ -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 音量值
|
||||
|
@ -17,113 +17,111 @@
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*!
|
||||
* The delegate of FlyISVRecognizer responsing to IFlyISVDelegate.
|
||||
*/
|
||||
@property (assign) id<IFlyISVDelegate> 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:<br>
|
||||
* 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<br>
|
||||
* Princeple:<br>
|
||||
* 1.Number serial has no 1 in itself;<br>
|
||||
* 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;<br>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;<br>"que": query model;
|
||||
* @param authid: user id ,can be @"tianxia" or other;
|
||||
* @param pwdt voiceprint type<br>
|
||||
* 1: fixed txt voiceprint code ,like @"我的地盘我做主";<br>
|
||||
* 2: free voiceprint code , user can speek anything,but 5 times trainning the speech shall be same;<br>
|
||||
* 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;<br>
|
||||
* NOTES:<br>
|
||||
* 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 */
|
||||
|
||||
|
@ -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
|
||||
|
@ -14,17 +14,17 @@
|
||||
#import <AudioToolbox/AudioFile.h>
|
||||
#import <AudioToolbox/AudioServices.h>
|
||||
#import <AudioToolbox/AudioConverter.h>
|
||||
#import <AVFoundation/AVAudioSession.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
||||
|
||||
@class IFlyPcmRecorder;
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 录音协议
|
||||
*/
|
||||
@protocol IFlyPcmRecorderDelegate<NSObject>
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 回调音频数据
|
||||
*
|
||||
* @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<AVAudioSessionDelegate>
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 录音委托对象
|
||||
*/
|
||||
@property (assign) id<IFlyPcmRecorderDelegate> delegate;
|
||||
@property (nonatomic,assign) id<IFlyPcmRecorderDelegate> 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
|
||||
|
||||
|
@ -12,8 +12,8 @@
|
||||
@protocol IFlyRecognizerViewDelegate ;
|
||||
|
||||
/*!
|
||||
* 语音识别控件
|
||||
* 录音时触摸控件结束录音,开始识别(相当于旧版的停止);触摸其他位置,取消录音,结束会话(取消)
|
||||
* 语音识别控件<br>
|
||||
* 录音时触摸控件结束录音,开始识别(相当于旧版的停止);触摸其他位置,取消录音,结束会话(取消)<br>
|
||||
* 出错时触摸控件,重新开启会话(相当于旧版的再说一次);触摸其他位置,取消录音,结束会话(取消)
|
||||
*
|
||||
*/
|
||||
@ -87,24 +87,21 @@
|
||||
|
||||
/*!
|
||||
* 设置识别引擎的参数
|
||||
* 识别的引擎参数(key)取值如下:
|
||||
* <table>
|
||||
* <thead>
|
||||
* <tr><th>*参数</th><th><em>描述</em></th>
|
||||
* </tr>
|
||||
* </thead>
|
||||
* <tbody>
|
||||
* <tr><td>domain</td><td>应用的领域: 取值为:iat、search、video、poi、music、asr;<br/>iat:普通文本听写;<br/>search:热词搜索;<br/>video:视频音乐搜索;<br/>video:视频音乐搜索;<br/>asr:关键词识别;</td></tr>
|
||||
* <tr><td>vad_bos</td><td>前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;<br/>engine指定iat识别默认值为5000;<br/>其他情况默认值为 4000,范围 0-10000。</td></tr>
|
||||
* <tr><td>vad_eos</td><td>后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,<br/>自动停止录音;单位:ms;<br/>sms 识别默认值为 1800;<br/>其他默认值为 700,范围 0-10000。</td></tr>
|
||||
* <tr><td>sample_rate</td><td>采样率:目前支持的采样率设置有 16000 和 8000。</td></tr>
|
||||
* <tr><td>asr_ptt</td><td>标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。</td></tr>
|
||||
* <tr><td>result_type</td><td>返回结果的数据格式: 可设置为json,xml,plain,默认为json。</td></tr>
|
||||
* <tr><td>grammarID</td><td>识别的语法id: 只针对 domain 设置为”asr”的应用。</td></tr>
|
||||
* <tr><td>asr_audio_path</td><td>音频文件名: 设置此参数后,将会自动保存识别的录音文件。<br/> 路径为Documents/(指定值)。<br/>不设置或者设置为nil,则不保存音频。</td></tr>
|
||||
* <tr><td>params</td><td>扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。</td></tr>
|
||||
* </tbody>
|
||||
* </table>
|
||||
*
|
||||
* 识别的引擎参数(key)取值如下:<br>
|
||||
*
|
||||
* | 参数 | 描述 |
|
||||
* |-----------------|-------------------------------------------------------|
|
||||
* | domain | 应用的领域: 取值为:iat、search、video、poi、music、asr;<br>iat:普通文本听写;<br>search:热词搜索;<br>video:视频音乐搜索;<br>asr:关键词识别;|
|
||||
* | vad_bos | 前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;<br>engine指定iat识别默认值为5000;<br>其他情况默认值为 4000,范围 0-10000。|
|
||||
* | vad_eos | 后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,自动停止录音;单位:ms;<br>sms 识别默认值为 1800;<br>其他默认值为 700,范围 0-10000。|
|
||||
* | sample_rate | 采样率:目前支持的采样率设置有 16000 和 8000。|
|
||||
* | asr_ptt | 标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。|
|
||||
* | result_type | 返回结果的数据格式: 可设置为json,xml,plain,默认为json。|
|
||||
* | grammarID | 识别的语法id: 只针对 domain 设置为”asr”的应用。|
|
||||
* | asr_audio_path | 音频文件名: 设置此参数后,将会自动保存识别的录音文件。<br>路径为Documents/(指定值)。<br>不设置或者设置为nil,则不保存音频。|
|
||||
* | params | 扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。|
|
||||
*
|
||||
* @param value 参数对应的取值
|
||||
* @param key 识别引擎参数
|
||||
*
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* @param error 识别结束错误码
|
||||
*/
|
||||
- (void)onError: (IFlySpeechError *) error;
|
||||
- (void)onCompleted: (IFlySpeechError *) error;
|
||||
|
||||
@optional
|
||||
|
||||
|
@ -35,7 +35,7 @@ typedef NS_OPTIONS(NSInteger, LOG_LEVEL){
|
||||
};
|
||||
|
||||
/*!
|
||||
* 此接口为iflyMSC sdk 配置接口。
|
||||
* 此接口为iflyMSC sdk 配置接口。<br>
|
||||
* 可以获取版本号,设置日志打印等级等
|
||||
*/
|
||||
@interface IFlySetting : NSObject
|
||||
@ -55,8 +55,8 @@ typedef NS_OPTIONS(NSInteger, LOG_LEVEL){
|
||||
+ (LOG_LEVEL) logLvl;
|
||||
|
||||
/*!
|
||||
* 是否打印控制台log
|
||||
* 在软件发布时,建议关闭此log。
|
||||
* 是否打印控制台log<br>
|
||||
* 在软件发布时,建议关闭此log。
|
||||
*
|
||||
* @param showLog -[in] YES,打印log;NO,不打印
|
||||
*/
|
||||
@ -64,26 +64,21 @@ typedef NS_OPTIONS(NSInteger, LOG_LEVEL){
|
||||
|
||||
/*!
|
||||
* 设置日志msc.log生成路径以及日志等级
|
||||
* <table>
|
||||
* <thead>
|
||||
* <tr><th>*日志打印等级</th><th><em>描述</em></th>
|
||||
* </tr>
|
||||
* </thead>
|
||||
* <tbody>
|
||||
* <tr><td>LVL_ALL</td><td>全部打印</td></tr>
|
||||
* <tr><td>LVL_DETAIL</td><td>高,异常分析需要的级别</td></tr>
|
||||
* <tr><td>LVL_NORMAL</td><td>中,打印基本日志信息</td></tr>
|
||||
* <tr><td>LVL_LOW</td><td>低,只打印主要日志信息</td></tr>
|
||||
* <tr><td>LVL_NONE</td><td>不打印</td></tr>
|
||||
* </tbody>
|
||||
* </table>
|
||||
*
|
||||
* | 日志打印等级 | 描述 |
|
||||
* |------------------------|-----------------------------------|
|
||||
* | LVL_ALL | 全部打印 |
|
||||
* | LVL_DETAIL | 高,异常分析需要的级别 |
|
||||
* | LVL_NORMAL | 中,打印基本日志信息 |
|
||||
* | LVL_LOW | 低,只打印主要日志信息 |
|
||||
* | LVL_NONE | 不打印 |
|
||||
*
|
||||
* @param level -[in] 日志打印等级
|
||||
*/
|
||||
+ (void) setLogFile:(LOG_LEVEL) level;
|
||||
|
||||
/*!
|
||||
* 设置日志文件的路径
|
||||
* 设置日志文件的路径<br>
|
||||
* 日志文件默认存放在Documents目录。
|
||||
*
|
||||
* @param path -[in] 日志文件的全路径
|
||||
|
@ -9,7 +9,7 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*!
|
||||
* 公共常量类
|
||||
* 公共常量类<br>
|
||||
* 主要定义参数的key value值
|
||||
*/
|
||||
@interface IFlySpeechConstant : NSObject
|
||||
@ -18,7 +18,7 @@
|
||||
#pragma mark - 通用参数key
|
||||
|
||||
/*!
|
||||
* 语音应用ID
|
||||
* 语音应用ID<br>
|
||||
* 通过开发者网站申请
|
||||
*
|
||||
* @return 语音应用IDkey
|
||||
@ -47,6 +47,13 @@
|
||||
*/
|
||||
+(NSString*)ACCENT_HENANESE;
|
||||
|
||||
/*!
|
||||
* 语言区域。
|
||||
*
|
||||
* @return 四川话value。
|
||||
*/
|
||||
+(NSString*)ACCENT_SICHUANESE;
|
||||
|
||||
/*!
|
||||
* 语言区域。
|
||||
*
|
||||
@ -55,7 +62,7 @@
|
||||
+(NSString*)ACCENT_CANTONESE;
|
||||
|
||||
/*!
|
||||
* 语言
|
||||
* 语言<br>
|
||||
* 支持:zh_cn,zh_tw,en_us<br>
|
||||
*
|
||||
* @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
|
||||
* 语音输入超时时间<br>
|
||||
* 单位:ms,默认30000
|
||||
*
|
||||
* @return 语音输入超时时间key
|
||||
*/
|
||||
+(NSString*)SPEECH_TIMEOUT;
|
||||
|
||||
/*!
|
||||
* 网络连接超时时间
|
||||
* 网络连接超时时间<br>
|
||||
* 单位:ms,默认20000
|
||||
*
|
||||
* @return 网络连接超时时间key
|
||||
@ -136,17 +142,17 @@
|
||||
*/
|
||||
+(NSString*)PARAMS;
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 加密参数
|
||||
*
|
||||
* 支持类型:ssl 加密 tcp 非加密 默认:tcp
|
||||
* 支持类型:ssl 加密 tcp 非加密 默认:tcp<br>
|
||||
* 建议对安全性要求较高时使用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
|
||||
* 引擎类型。<br>
|
||||
* 可选:local,cloud,auto<br>
|
||||
* 默认:auto
|
||||
*
|
||||
* @return 引擎类型key。
|
||||
@ -232,25 +238,46 @@
|
||||
*/
|
||||
+(NSString*)RESULT_ENCODING;
|
||||
|
||||
/**
|
||||
* 是否初始化播放器
|
||||
* SDK内部播放器采用音频队列实现,有部分外部需求需要自定义音频队列,可以通过此开关控制
|
||||
/*!
|
||||
* 是否初始化播放器<br>
|
||||
* SDK内部播放器采用音频队列实现,有部分外部需求需要自定义音频队列,可以通过此开关控制<br>
|
||||
* 0:不初始化,非0或者参数为空:初始化,默认初始化
|
||||
* @return 是否初始化播放器 参数key
|
||||
*
|
||||
* @return 是否初始化播放器参数key
|
||||
*/
|
||||
+(NSString*)PLAYER_INIT;
|
||||
|
||||
/*!
|
||||
* 是否播放器结束后发送deactive系统通知<br>
|
||||
* SDK内部播放器结束后可通过此开关发送deactive系统通知,使其他被中断的音频应用解除中断<br>
|
||||
* 0:不发送,非0或者参数为空:发送,默认发送
|
||||
*
|
||||
* @return 是否播放器结束后发送deactive系统通知参数key
|
||||
*/
|
||||
+(NSString*)PLAYER_DEACTIVE;
|
||||
|
||||
/**
|
||||
* 是否初始化录音器
|
||||
* SDK内部录音器采用音频队列实现,有部分外部需求需要自定义音频队列,可以通过此开关控制
|
||||
* 是否初始化录音器<br>
|
||||
* SDK内部录音器采用音频队列实现,有部分外部需求需要自定义音频队列,可以通过此开关控制<br>
|
||||
* 0:不初始化,非0或者参数为空:初始化,默认初始化
|
||||
* @return 是否初始化录音器 参数key
|
||||
*
|
||||
* @return 是否初始化录音器参数key
|
||||
*/
|
||||
+(NSString*)RECORDER_INIT;
|
||||
|
||||
/**
|
||||
* 是否录音器结束后发送deactive系统通知<br>
|
||||
* SDK内部录音器结束后可通过此开关发送deactive系统通知,使其他被中断的音频应用解除中断<br>
|
||||
* 0:不发送,非0或者参数为空:发送,默认发送
|
||||
*
|
||||
* @return 是否录音器结束后发送deactive系统通知参数key
|
||||
*/
|
||||
+(NSString*)RECORDER_DEACTIVE;
|
||||
|
||||
|
||||
#pragma mark - 合成相关设置key
|
||||
/*!
|
||||
* 语速
|
||||
* 语速<br>
|
||||
* 范围 (0~100) 默认值:50
|
||||
*
|
||||
* @return 语速key
|
||||
@ -258,7 +285,7 @@
|
||||
+(NSString*)SPEED;
|
||||
|
||||
/*!
|
||||
* 音调
|
||||
* 音调<br>
|
||||
* 范围(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前端点超时<br>
|
||||
* 范围:0-10000(单位ms)
|
||||
*
|
||||
* @return VAD前端点超时key
|
||||
@ -289,7 +317,7 @@
|
||||
+(NSString*)VAD_BOS;
|
||||
|
||||
/*!
|
||||
* VAD后端点超时 。
|
||||
* VAD后端点超时。<br>
|
||||
* 可选范围:0-10000(单位ms)
|
||||
*
|
||||
* @return VAD后端点超时key
|
||||
@ -344,32 +372,30 @@
|
||||
|
||||
/*!
|
||||
* 发音人
|
||||
* <table>
|
||||
* <thead>
|
||||
* <tr><th>*云端发音人名称</th><th><em>参数</em></th>
|
||||
* </tr>
|
||||
* </thead>
|
||||
* <tbody>
|
||||
* <tr><td>小燕</td><td>xiaoyan</td></tr>
|
||||
* <tr><td>小宇</td><td>xiaoyu</td></tr>
|
||||
* <tr><td>凯瑟琳</td><td>catherine</td></tr>
|
||||
* <tr><td>亨利</td><td>henry</td></tr>
|
||||
* <tr><td>玛丽</td><td>vimary</td></tr>
|
||||
* <tr><td>小研</td><td>vixy</td></tr>
|
||||
* <tr><td>小琪</td><td>vixq</td></tr>
|
||||
* <tr><td>小峰</td><td>vixf</td></tr>
|
||||
* <tr><td>小梅</td><td>vixl</td></tr>
|
||||
* <tr><td>小莉</td><td>vixq</td></tr>
|
||||
* <tr><td>小蓉(四川话)</td><td>vixr</td></tr>
|
||||
* <tr><td>小芸</td><td>vixyun</td></tr>
|
||||
* <tr><td>小坤</td><td>vixk</td></tr>
|
||||
* <tr><td>小强</td><td>vixqa</td></tr>
|
||||
* <tr><td>小莹</td><td>vixying</td></tr>
|
||||
* <tr><td>小新</td><td>vixx</td></tr>
|
||||
* <tr><td>楠楠</td><td>vinn</td></tr>
|
||||
* <tr><td>老孙</td><td>vils</td></tr>
|
||||
* </tbody>
|
||||
* </table>
|
||||
*
|
||||
* 云端支持如下发音人:<br>
|
||||
* 对于网络TTS的发音人角色,不同引擎类型支持的发音人不同,使用中请注意选择。<br>
|
||||
*
|
||||
* | 发音人 | 参数 |
|
||||
* |:--------:|:----------------:|
|
||||
* | 小燕 | 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;
|
||||
|
||||
/*!
|
||||
* 音量
|
||||
* 音量<br>
|
||||
* 范围(0~100) 默认值:50
|
||||
*
|
||||
* @return 音量key
|
||||
@ -397,35 +426,34 @@
|
||||
+(NSString*)VOLUME ;
|
||||
|
||||
/*!
|
||||
* 合成音频播放缓冲时间
|
||||
* 即缓冲多少秒音频后开始播放,如tts_buffer_time=1000;
|
||||
* 合成音频播放缓冲时间<br>
|
||||
* 即缓冲多少秒音频后开始播放,如tts_buffer_time=1000;<br>
|
||||
* 默认缓冲1000ms毫秒后播放。
|
||||
*
|
||||
* @return 合成音频播放缓冲时间缓冲时间key
|
||||
*/
|
||||
+(NSString*)TTS_BUFFER_TIME ;
|
||||
|
||||
/** 合成数据即时返回
|
||||
*/
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 合成数据是否即时返回
|
||||
* 是否需要数据回调,为1时,当合成一段音频会通过onEvent回调返回,直接合成结束;
|
||||
*
|
||||
* 是否需要数据回调,为1时,当合成一段音频会通过onEvent回调返回,直接合成结束;<br>
|
||||
* 设置为1为即时返回;0为非即时返回;默认值为0;
|
||||
*
|
||||
* @return 成数据即时返回key
|
||||
* @return 合成数据即时返回key
|
||||
*/
|
||||
+(NSString*)TTS_DATA_NOTIFY;
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 预合成文本
|
||||
*
|
||||
* @return 预合成文本参数key
|
||||
*/
|
||||
+(NSString*)NEXT_TEXT;
|
||||
|
||||
/**
|
||||
* 是否需要打开MPPlayingInfocenter
|
||||
/*!
|
||||
* 是否需要打开MPPlayingInfocenter<br>
|
||||
* 是否需要初始化MPPlayerCenter的属性;0:需要初始化,1:不初始化
|
||||
*
|
||||
* @return 是否需要打开MPPlayingInfocenter 参数key
|
||||
@ -435,8 +463,8 @@
|
||||
#pragma mark - 识别、听写、语义相关设置key
|
||||
|
||||
/*!
|
||||
* 录音源
|
||||
* 录音时的录音方式,默认为麦克风,设置为1;
|
||||
* 录音源<br>
|
||||
* 录音时的录音方式,默认为麦克风,设置为1;<br>
|
||||
* 如果需要外部送入音频,设置为-1,通过WriteAudio接口送入音频。
|
||||
*
|
||||
* @return 录音源key
|
||||
@ -479,15 +507,15 @@
|
||||
+(NSString*)ASR_PTT_NODOT;
|
||||
|
||||
/*!
|
||||
* 本地语法名称。
|
||||
* 本地语法名称,对应云端的有CLOUD_GRAMMAR
|
||||
* 本地语法名称。<br>
|
||||
* 本地语法名称,对应云端的有CLOUD_GRAMMAR
|
||||
*
|
||||
* @return 本地语法名称key。
|
||||
*/
|
||||
+(NSString*)LOCAL_GRAMMAR;
|
||||
|
||||
/*!
|
||||
* 云端语法ID。
|
||||
* 云端语法ID。<br>
|
||||
* 云端编译语法返回的表示,早期版本使用GRAMMAR_ID,仍然兼容,但建议使用新的。
|
||||
*
|
||||
* @return 云端语法ID key。
|
||||
@ -530,7 +558,7 @@
|
||||
+(NSString*)GRAMMAR_LIST;
|
||||
|
||||
/*!
|
||||
* 开放语义协议版本号。
|
||||
* 开放语义协议版本号。<br>
|
||||
* 如需使用请在http://osp.voicecloud.cn/上进行业务配置
|
||||
*
|
||||
* @return 开放语义协议版本号key。
|
||||
@ -560,17 +588,24 @@
|
||||
+(NSString*)IVW_ONESHOT;
|
||||
|
||||
/*!
|
||||
* 唤醒工作方式
|
||||
* 1:表示唤醒成功后继续录音,0:表示唤醒成功后停止录音。
|
||||
* 唤醒工作方式<br>
|
||||
* 1:表示唤醒成功后继续录音,0:表示唤醒成功后停止录音。
|
||||
*
|
||||
* @return 唤醒工作方式key
|
||||
*/
|
||||
+(NSString*)KEEP_ALIVE;
|
||||
|
||||
/*!
|
||||
* 唤醒录音保存路径
|
||||
*
|
||||
* @return 唤醒录音保存路径key
|
||||
*/
|
||||
+(NSString*) IVW_AUDIO_PATH;
|
||||
|
||||
#pragma mark - 评测相关设置key
|
||||
/*!
|
||||
* 评测类型<br>
|
||||
* 可选值:read_syllable(英文评测不支持):单字;read_word:词语;read_sentence:句子;read_chapter(待开放):篇章。
|
||||
* 可选值:read_syllable(英文评测不支持):单字;read_word:词语;read_sentence:句子;read_chapter(待开放):篇章。
|
||||
*
|
||||
* @return 评测类型 key
|
||||
*/
|
||||
@ -578,15 +613,15 @@
|
||||
|
||||
/*!
|
||||
* 评测结果等级<br>
|
||||
* 可选值:complete:完整 ;plain:简单
|
||||
* 可选值:complete:完整 ;plain:简单
|
||||
*
|
||||
* @return 评测结果等级 key
|
||||
*/
|
||||
+(NSString*)ISE_RESULT_LEVEL;
|
||||
|
||||
/*!
|
||||
* 评测结果格式
|
||||
* 可选值:xml;plain
|
||||
* 评测结果格式<br>
|
||||
* 可选值:xml;plain
|
||||
*
|
||||
* @return 评测结果格式 key
|
||||
*/
|
||||
@ -602,7 +637,7 @@
|
||||
|
||||
/*!
|
||||
* 朗读跟踪,只对句子和篇章有效<br>
|
||||
* 可选值: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<br>
|
||||
* 用于用户注册和登录、查询、删除等业务时标识用户身份
|
||||
*
|
||||
* @return 用户标识
|
||||
*/
|
||||
+ (NSString*)MFV_AUTH_ID;
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 请求业务类型,可选值:mfv(默认,融合验证),ivp(声纹),ifr(人脸)
|
||||
*
|
||||
* @return 请求业务类型key
|
||||
*/
|
||||
+ (NSString*)MFV_SUB;
|
||||
|
||||
/**
|
||||
* 会话类型,不同sub有不同的sst取值。
|
||||
* ifr:enroll,verify,identify,reenroll,query,delete
|
||||
/*!
|
||||
* 会话类型,不同sub有不同的sst取值。<br>
|
||||
* ifr:enroll,verify,identify,reenroll,query,delete<br>
|
||||
* 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;
|
||||
|
||||
/**
|
||||
* 数据格式
|
||||
/*!
|
||||
* 数据格式<br>
|
||||
* 声纹为音频采样率支持:16000和8000;人脸为图片格式,支持jpg和gif
|
||||
*
|
||||
* @return 数据格式key
|
||||
*/
|
||||
+ (NSString*)MFV_DATA_FORMAT;
|
||||
|
||||
/**
|
||||
* 数据压缩编码
|
||||
/*!
|
||||
* 数据压缩编码<br>
|
||||
* 声纹为;人脸支持raw,不对图片压缩
|
||||
*
|
||||
* @return 数据压缩编码key
|
||||
@ -772,78 +807,95 @@
|
||||
//7. appid 取值:用户申请的appid 用途: 验证用户
|
||||
|
||||
|
||||
/** sub 默认值:wfr
|
||||
/*!
|
||||
* sub 默认值:wfr<br>
|
||||
* 用于区分业务类型,web访问方式中,nginx配置不用使用,但是在结构化日志和染色日志记录中使用。
|
||||
*/
|
||||
+ (NSString*) FACE_SUB;
|
||||
|
||||
/** WFR
|
||||
/*!
|
||||
* WFR<br>
|
||||
* sub参数的默认值
|
||||
*/
|
||||
+ (NSString*) FACE_WFR;
|
||||
|
||||
/** sst
|
||||
/*!
|
||||
* sst<br>
|
||||
* 指定本路会话是属于何种性质
|
||||
*/
|
||||
+ (NSString*) FACE_SST;
|
||||
|
||||
/** REG
|
||||
/*!
|
||||
* REG<br>
|
||||
* 人脸图像注册(reg):上传图像,验证图像的有效性,然后存储起来,作为数据源。
|
||||
*/
|
||||
+ (NSString*) FACE_REG;
|
||||
/** VERIFY
|
||||
|
||||
/*!
|
||||
* VERIFY<br>
|
||||
* 人脸图像验证(verify):通过与指定源图像比较,验证人脸相似性。
|
||||
*/
|
||||
+ (NSString*) FACE_VERIFY;
|
||||
/** DETECT
|
||||
|
||||
/*!
|
||||
* DETECT<br>
|
||||
* 人脸图像检测(detect):能够检测出不同姿态方位的人脸在图中的位置。
|
||||
*/
|
||||
+ (NSString*) FACE_DETECT;
|
||||
/** ALIGN
|
||||
|
||||
/*!
|
||||
* ALIGN<br>
|
||||
* 人脸图像聚焦(align):在给定人脸框下自动标定出两眼、鼻尖、嘴角的坐标。
|
||||
*/
|
||||
+ (NSString*) FACE_ALIGN;
|
||||
|
||||
/** ATTR
|
||||
/*!
|
||||
* ATTR<br>
|
||||
* 面部属性识别(attr):对面部属性进行识别:例如秃顶、刘海、大嘴、模糊、眼镜等。
|
||||
*/
|
||||
+ (NSString*) FACE_ATTR;
|
||||
|
||||
|
||||
/** AUE
|
||||
/*!
|
||||
* AUE<br>
|
||||
* 图像压缩格式,现在引擎不支持图像压缩,aue只能取值raw
|
||||
*/
|
||||
+ (NSString*) FACE_AUE;
|
||||
|
||||
/** RAW
|
||||
/*!
|
||||
* RAW<br>
|
||||
* AUE参数的值
|
||||
*/
|
||||
+ (NSString*) FACE_RAW;
|
||||
|
||||
/** PSET
|
||||
/*!
|
||||
* PSET<br>
|
||||
* 人脸识别验证阈值,取值可以是负数也可以是整数。
|
||||
*/
|
||||
+ (NSString*) FACE_PSET;
|
||||
|
||||
/** SKIP
|
||||
/*!
|
||||
* SKIP<br>
|
||||
* 后台图片处理是否进行过滤。true表示不过滤,false表示过滤,传入字符串@“true”或@“false”
|
||||
*/
|
||||
+ (NSString*) FACE_SKIP;
|
||||
|
||||
/** GID
|
||||
/*!
|
||||
* GID<br>
|
||||
* 图像模型id,如:4a6c124ed6b78436ee5aac4563f13eb5
|
||||
*/
|
||||
+ (NSString*) FACE_GID;
|
||||
|
||||
/**
|
||||
* auth_id
|
||||
/*!
|
||||
* auth_id<br>
|
||||
* 用于用户注册和登录、查询、删除等业务时标识用户身份
|
||||
*
|
||||
* @return 用户标识
|
||||
*/
|
||||
+ (NSString*)FACE_AUTH_ID;
|
||||
|
||||
/** DVC
|
||||
/*!
|
||||
* DVC<br>
|
||||
* 用户设备编号,用于验证用户
|
||||
*/
|
||||
+ (NSString*) FACE_DVC;
|
||||
|
@ -22,7 +22,7 @@
|
||||
@property(nonatomic,assign) int errorCode;
|
||||
|
||||
/*!
|
||||
* 错误码类
|
||||
* 错误码类型
|
||||
*/
|
||||
@property(nonatomic,assign) int errorType;
|
||||
|
||||
@ -55,4 +55,4 @@
|
||||
- (NSString *) errorDesc;
|
||||
|
||||
@end
|
||||
#endif
|
||||
#endif
|
||||
|
@ -10,6 +10,9 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "IFlySpeechEvaluatorDelegate.h"
|
||||
|
||||
#define IFLY_AUDIO_SOURCE_MIC @"1"
|
||||
#define IFLY_AUDIO_SOURCE_STREAM @"-1"
|
||||
|
||||
/*!
|
||||
* 语音评测类
|
||||
*/
|
||||
@ -55,17 +58,18 @@
|
||||
- (NSString*)parameterForKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
* 开始评测
|
||||
* 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错
|
||||
* 开始评测<br>
|
||||
* 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错
|
||||
*
|
||||
* @param data 评测的试题
|
||||
* @param params 评测的参数
|
||||
* @return 成功返回YES,失败返回NO
|
||||
*/
|
||||
- (void)startListening:(NSData *)data params:(NSString *)params;
|
||||
- (BOOL)startListening:(NSData *)data params:(NSString *)params;
|
||||
|
||||
/*!
|
||||
* 停止录音
|
||||
* 调用此函数会停止录音,并开始进行语音识别
|
||||
* 停止录音<br>
|
||||
* 调用此函数会停止录音,并开始进行语音识别
|
||||
*/
|
||||
- (void)stopListening;
|
||||
|
||||
@ -76,3 +80,22 @@
|
||||
|
||||
@end
|
||||
|
||||
/*!
|
||||
* 音频流评测<br>
|
||||
* 音频流评测可以将文件分段写入
|
||||
*/
|
||||
@interface IFlySpeechEvaluator(IFlyStreamISERecognizer)
|
||||
|
||||
/*!
|
||||
* 写入音频流
|
||||
*
|
||||
* @param audioData 音频数据
|
||||
*
|
||||
* @return 写入成功返回YES,写入失败返回NO
|
||||
*/
|
||||
- (BOOL) writeAudio:(NSData *) audioData;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
||||
|
@ -25,15 +25,15 @@
|
||||
- (void)onVolumeChanged:(int)volume buffer:(NSData *)buffer;
|
||||
|
||||
/*!
|
||||
* 开始录音回调
|
||||
* 当调用了`startListening`函数之后,如果没有发生错误则会回调此函数。如果发生错误则回调onError:函数
|
||||
* 开始录音回调<br>
|
||||
* 当调用了`startListening`函数之后,如果没有发生错误则会回调此函数。如果发生错误则回调onCompleted:函数
|
||||
*/
|
||||
- (void)onBeginOfSpeech;
|
||||
|
||||
/*!
|
||||
* 停止录音回调
|
||||
* 当调用了`stopListening`函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。
|
||||
* 如果发生错误则回调onError:函数
|
||||
* 停止录音回调<br>
|
||||
* 当调用了`stopListening`函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。<br>
|
||||
* 如果发生错误则回调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;
|
||||
|
||||
/*!
|
||||
* 评测结果回调
|
||||
* 在评测过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。
|
||||
* 评测结果回调<br>
|
||||
* 在评测过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。
|
||||
*
|
||||
* @param results -[out] 评测结果。
|
||||
* @param isLast -[out] 是否最后一条结果
|
||||
|
@ -13,92 +13,75 @@
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger,IFlySpeechEventType){
|
||||
/*!
|
||||
* 网络状态消息
|
||||
* 网络状态消息<br>
|
||||
* 在消息到达时,可通过onEvent的第2个参数arg1,获取当前网络连接状态值
|
||||
*/
|
||||
IFlySpeechEventTypeNetPref = 10001,
|
||||
/**
|
||||
* 转写音频文件消息
|
||||
* 在录音模式下,成功创建音频文件时返回。可通过onEvent
|
||||
* 第4个参数data 指定Key为[IFlySpeechConstant IST_AUDIO_PATH],获取音频文件绝对路径.
|
||||
* 或通过[IFlySpeechTranscripter getParameter:[IFlySpeechConstant IST_AUDIO_PATH]],
|
||||
* 获取音频文件绝对路径.
|
||||
/*!
|
||||
* 转写音频文件消息<br>
|
||||
* 在录音模式下,成功创建音频文件时返回。可通过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获取。
|
||||
* 此消息可能多次返回.
|
||||
/*!
|
||||
* 转写已上传字节消息<br>
|
||||
* 在消息到达时,通过onEvent的第二个参数arg1,获取已确认上传到服务器的字节数.若当前音频源为非写音频模式,还可通过onEvent
|
||||
* 的第三个参数arg2,获取当前所有音频的字节大小.录音模式时,由于所有音频字节大小会变。当停止音频输入后(等待录音时间超时[IFlySpeechConstant SPEECH_TIMEOUT],或调用[IFlySpeechTranscripter stopTranscripting]),且服务器收到所有音频时,第四个参数data,将包含完成标记的布尔值(true),可通过data调用指定KEY为KCIFlySpeechEventKeyISTUploadComplete获取。此消息可能多次返回.
|
||||
*/
|
||||
IFlySpeechEventTypeISTUploadBytes = 10006,
|
||||
|
||||
/**
|
||||
* 转写缓存剩余
|
||||
* 此消息仅在音频源为-1时需要关注
|
||||
* 在调用[IFlySpeechTranscripter writeAudio]写音频时,应该关注此事件。
|
||||
* 此事件在调用写音频接口、及音频最后被写入底库库时分别回调一次。当事件回调时,通过onEvent
|
||||
* 的第二个参数arg1,获取当前剩余的缓存大小,当缓存小于要写入的音频时,应该先暂停写音频数据,直到下次缓存大小大于要写入的音频时.
|
||||
* 最大缓存为128KByte。
|
||||
/*!
|
||||
* 转写缓存剩余<br>
|
||||
* 此消息仅在音频源为-1时需要关注,在调用[IFlySpeechTranscripter writeAudio]写音频时,应该关注此事件。<br>
|
||||
* 此事件在调用写音频接口、及音频最后被写入底库库时分别回调一次。当事件回调时,通过onEvent的第二个参数arg1,获取当前剩余的缓存大小,当缓存小于要写入的音频时,应该先暂停写音频数据,直到下次缓存大小大于要写入的音频时.最大缓存为128KByte。
|
||||
*/
|
||||
IFlySpeechEventTypeISTCacheLeft = 10007,
|
||||
|
||||
/**
|
||||
* 转写结果等待时间消息
|
||||
* 在消息到达时,通过 onEvent
|
||||
* 的第二个参数arg1,获取当前结果需要的时间.
|
||||
/*!
|
||||
* 转写结果等待时间消息<br>
|
||||
* 在消息到达时,通过 onEvent的第二个参数arg1,获取当前结果需要的时间.<br>
|
||||
* 此消息可能多次返回,返回时间不定,且不一定会返回.
|
||||
*/
|
||||
IFlySpeechEventTypeISTResultTime= 10008,
|
||||
|
||||
/**
|
||||
* 转写转写音频同步ID消息
|
||||
* 在消息到达时,通过 onEvent
|
||||
* 的第二个参数arg1,获取当前写音频同步ID.
|
||||
/*!
|
||||
* 转写转写音频同步ID消息<br>
|
||||
* 在消息到达时,通过 onEvent的第二个参数arg1,获取当前写音频同步ID.<br>
|
||||
* 此消息可能多次返回.
|
||||
*/
|
||||
IFlySpeechEventTypeISTSyncID= 10009,
|
||||
|
||||
/**
|
||||
* 会话开始消息
|
||||
/*!
|
||||
* 会话开始消息<br>
|
||||
* 在会话开始成功后返回
|
||||
*/
|
||||
IFlySpeechEventTypeSessionBegin = 10010,
|
||||
|
||||
/**
|
||||
* 会话结束消息
|
||||
/*!
|
||||
* 会话结束消息<br>
|
||||
* 在会话结束前返回
|
||||
*/
|
||||
IFlySpeechEventTypeSessionEnd = 10011,
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 音量消息,在得到音量时抛出,暂时只有身份验证的声纹业务用到
|
||||
*/
|
||||
IFlySpeechEventTypeVolume = 10012,
|
||||
|
||||
/**
|
||||
/*!
|
||||
* VAD后端点消息,在检测到VAD后端点时抛出,暂时只有身份验证的声纹业务用到
|
||||
*/
|
||||
IFlySpeechEventTypeVadEOS = 10013,
|
||||
|
||||
/*!
|
||||
* 服务端会话id
|
||||
* 在消息到达时,可通过onEvent的第4个参数data(字典类型),
|
||||
* 指定key KCIFlySpeechEventKeySessionID,获取服务端会话id.
|
||||
* 服务端会话id<br>
|
||||
* 在消息到达时,可通过onEvent的第4个参数data(字典类型),指定key KCIFlySpeechEventKeySessionID,获取服务端会话id.
|
||||
*/
|
||||
IFlySpeechEventTypeSessionID = 20001,
|
||||
|
||||
/*!
|
||||
* TTS合成数据消息
|
||||
* -(void)onEvent:(int)eventType arg0:(int)arg0 arg1:(int)arg1 data:(NSData *)eventData
|
||||
* 其中eventData中包含数据
|
||||
* TTS合成数据消息<br>
|
||||
* -(void)onEvent:(int)eventType arg0:(int)arg0 arg1:(int)arg1 data:(NSData *)eventData<br>
|
||||
* 其中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 识别结果<br>
|
||||
* 在消息到达时,第2个参数arg1包含是否为最后一个结果:1为是,0为否;<br>
|
||||
* 第4个参数data中包含数据,通过指定KEY为KCIFlySpeechEventKeyIVWResult获取.
|
||||
*/
|
||||
IFlySpeechEventTypeIVWResult = 22001,
|
||||
|
||||
@ -129,17 +112,14 @@ typedef NS_ENUM(NSUInteger,IFlySpeechEventType){
|
||||
IFlySpeechEventTypeRecordStop= 22003,
|
||||
|
||||
/*!
|
||||
* 服务端音频url
|
||||
* 在消息到达时,
|
||||
* 第4个参数data,包含数据,通过
|
||||
* 指定KEY为KCIFlySpeechEventKeyAudioUrl获取.
|
||||
* 服务端音频url<br>
|
||||
* 在消息到达时,第4个参数data,包含数据,通过指定KEY为KCIFlySpeechEventKeyAudioUrl获取.
|
||||
*/
|
||||
IFlySpeechEventTypeAudioUrl = 23001,
|
||||
|
||||
/*!
|
||||
* 变声数据结果返回
|
||||
*
|
||||
* 设置voice_change参数获取结果.
|
||||
* 变声数据结果返回<br>
|
||||
* 设置voice_change参数获取结果.
|
||||
*/
|
||||
IFlySpeechEventTypeVoiceChangeResult = 24001
|
||||
|
||||
|
@ -14,12 +14,14 @@
|
||||
#define IFLY_AUDIO_SOURCE_STREAM @"-1"
|
||||
|
||||
/*!
|
||||
* 语音识别类
|
||||
* 此类现在设计为单例,你在使用中只需要创建此对象,不能调用release/dealloc函数去释放此对象。所有关于语音识别的操作都在此类中。
|
||||
* 语音识别类<br>
|
||||
* 此类现在设计为单例,你在使用中只需要创建此对象,不能调用release/dealloc函数去释放此对象。所有关于语音识别的操作都在此类中。
|
||||
*/
|
||||
@interface IFlySpeechRecognizer : NSObject<IFlySpeechRecognizerDelegate>
|
||||
|
||||
/** 设置委托对象 */
|
||||
/*!
|
||||
* 设置委托对象
|
||||
*/
|
||||
@property(nonatomic,assign) id<IFlySpeechRecognizerDelegate> delegate ;
|
||||
|
||||
/*!
|
||||
@ -74,24 +76,21 @@
|
||||
|
||||
/*!
|
||||
* 设置识别引擎的参数
|
||||
* 识别的引擎参数(key)取值如下:
|
||||
* <table>
|
||||
* <thead>
|
||||
* <tr><th>*参数</th><th><em>描述</em></th>
|
||||
* </tr>
|
||||
* </thead>
|
||||
* <tbody>
|
||||
* <tr><td>domain</td><td>应用的领域: 取值为:iat、search、video、poi、music、asr;<br/>iat:普通文本听写;<br/>search:热词搜索;<br/>video:视频音乐搜索;<br/>video:视频音乐搜索;<br/>asr:关键词识别;</td></tr>
|
||||
* <tr><td>vad_bos</td><td>前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;<br/>engine指定iat识别默认值为5000;<br/>其他情况默认值为 4000,范围 0-10000。</td></tr>
|
||||
* <tr><td>vad_eos</td><td>后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,<br/>自动停止录音;单位:ms;<br/>sms 识别默认值为 1800;<br/>其他默认值为 700,范围 0-10000。</td></tr>
|
||||
* <tr><td>sample_rate</td><td>采样率:目前支持的采样率设置有 16000 和 8000。</td></tr>
|
||||
* <tr><td>asr_ptt</td><td>标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。</td></tr>
|
||||
* <tr><td>result_type</td><td>返回结果的数据格式: 可设置为json,xml,plain,默认为json。</td></tr>
|
||||
* <tr><td>grammarID</td><td>识别的语法id: 只针对 domain 设置为”asr”的应用。</td></tr>
|
||||
* <tr><td>asr_audio_path</td><td>音频文件名: 设置此参数后,将会自动保存识别的录音文件。<br/> 路径为Documents/(指定值)。<br/>不设置或者设置为nil,则不保存音频。</td></tr>
|
||||
* <tr><td>params</td><td>扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。</td></tr>
|
||||
* </tbody>
|
||||
* </table>
|
||||
*
|
||||
* 识别的引擎参数(key)取值如下:
|
||||
*
|
||||
* | 参数 | 描述 |
|
||||
* |-----------------|-------------------------------------------------------|
|
||||
* | domain | 应用的领域: 取值为:iat、search、video、poi、music、asr;<br>iat:普通文本听写;<br>search:热词搜索;<br>video:视频音乐搜索;<br>asr:关键词识别;|
|
||||
* | vad_bos | 前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;<br>engine指定iat识别默认值为5000;<br>其他情况默认值为 4000,范围 0-10000。|
|
||||
* | vad_eos | 后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,自动停止录音;单位:ms;<br>sms 识别默认值为 1800;<br>其他默认值为 700,范围 0-10000。|
|
||||
* | sample_rate | 采样率:目前支持的采样率设置有 16000 和 8000。|
|
||||
* | asr_ptt | 标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。|
|
||||
* | result_type | 返回结果的数据格式: 可设置为json,xml,plain,默认为json。|
|
||||
* | grammarID | 识别的语法id: 只针对 domain 设置为”asr”的应用。|
|
||||
* | asr_audio_path | 音频文件名: 设置此参数后,将会自动保存识别的录音文件。<br>路径为Documents/(指定值)。<br>不设置或者设置为nil,则不保存音频。|
|
||||
* | params | 扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。|
|
||||
*
|
||||
* @param value 参数对应的取值
|
||||
* @param key 识别引擎参数
|
||||
*
|
||||
@ -110,16 +109,16 @@
|
||||
|
||||
/*!
|
||||
* 开始识别
|
||||
* 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错。若有需要多次回话,
|
||||
* 请在onError回调返回后请求下一路回话。
|
||||
*
|
||||
* 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错。若有需要多次回话,请在onCompleted回调返回后请求下一路回话。
|
||||
*
|
||||
* @return 成功返回YES;失败返回NO
|
||||
*/
|
||||
- (BOOL) startListening;
|
||||
|
||||
/*!
|
||||
* 停止录音
|
||||
* 调用此函数会停止录音,并开始进行语音识别
|
||||
* 停止录音<br>
|
||||
* 调用此函数会停止录音,并开始进行语音识别
|
||||
*/
|
||||
- (void) stopListening;
|
||||
|
||||
@ -141,22 +140,24 @@
|
||||
grammarType:(NSString *)grammarType
|
||||
grammarContent:(NSString *)grammarContent;
|
||||
|
||||
/** 是否正在识别
|
||||
/*!
|
||||
* 是否正在识别
|
||||
*/
|
||||
@property (nonatomic, readonly) BOOL isListening;
|
||||
|
||||
@end
|
||||
|
||||
/*!
|
||||
* 音频流识别
|
||||
* 音频流识别可以将文件分段写入
|
||||
* 音频流识别<br>
|
||||
* 音频流识别可以将文件分段写入
|
||||
*/
|
||||
@interface IFlySpeechRecognizer(IFlyStreamRecognizer)
|
||||
|
||||
/*!
|
||||
* 写入音频流
|
||||
* 此方法的使用示例如下:
|
||||
* <pre><code>[_iFlySpeechRecognizer setParameter:@"audio_source" value:@"-1"];
|
||||
*
|
||||
* 此方法的使用示例如下:
|
||||
* <pre><code>[_iFlySpeechRecognizer setParameter:@"-1" value:@"audio_source"];
|
||||
* [_iFlySpeechRecognizer startListening];
|
||||
* [_iFlySpeechRecognizer writeAudio:audioData1];
|
||||
* [_iFlySpeechRecognizer writeAudio:audioData2];
|
||||
|
@ -20,8 +20,8 @@ typedef void(^IFlyOnBuildFinishCompletionHandler)(NSString* grammarId,IFlySpeech
|
||||
|
||||
|
||||
/*!
|
||||
* 语音识别协议
|
||||
* 在使用语音识别时,需要实现这个协议中的方法.
|
||||
* 语音识别协议<br>
|
||||
* 在使用语音识别时,需要实现这个协议中的方法.
|
||||
*/
|
||||
@protocol IFlySpeechRecognizerDelegate <NSObject>
|
||||
|
||||
@ -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;
|
||||
|
||||
/*!
|
||||
* 识别结果回调
|
||||
* 在识别过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。
|
||||
*
|
||||
* 在识别过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。<br>
|
||||
* 使用results的示例如下:
|
||||
* <pre><code>
|
||||
* - (void) onResults:(NSArray *) results{
|
||||
@ -60,36 +59,36 @@ typedef void(^IFlyOnBuildFinishCompletionHandler)(NSString* grammarId,IFlySpeech
|
||||
@optional
|
||||
|
||||
/*!
|
||||
* 音量变化回调
|
||||
* 在录音过程中,回调音频的音量。
|
||||
* 音量变化回调<br>
|
||||
* 在录音过程中,回调音频的音量。
|
||||
*
|
||||
* @param volume -[out] 音量,范围从0-30
|
||||
*/
|
||||
- (void) onVolumeChanged: (int)volume;
|
||||
|
||||
/*!
|
||||
* 开始录音回调
|
||||
* 当调用了`startListening`函数之后,如果没有发生错误则会回调此函数。
|
||||
* 如果发生错误则回调onError:函数
|
||||
* 开始录音回调<br>
|
||||
* 当调用了`startListening`函数之后,如果没有发生错误则会回调此函数。<br>
|
||||
* 如果发生错误则回调onCompleted:函数
|
||||
*/
|
||||
- (void) onBeginOfSpeech;
|
||||
|
||||
/*!
|
||||
* 停止录音回调
|
||||
* 当调用了`stopListening`函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。
|
||||
* 如果发生错误则回调onError:函数
|
||||
* 停止录音回调<br>
|
||||
* 当调用了`stopListening`函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。<br>
|
||||
* 如果发生错误则回调onCompleted:函数
|
||||
*/
|
||||
- (void) onEndOfSpeech;
|
||||
|
||||
/*!
|
||||
* 取消识别回调
|
||||
* 当调用了`cancel`函数之后,会回调此函数,在调用了cancel函数和回调onError之前会有一个
|
||||
* 取消识别回调<br>
|
||||
* 当调用了`cancel`函数之后,会回调此函数,在调用了cancel函数和回调onCompleted之前会有一个<br>
|
||||
* 短暂时间,您可以在此函数中实现对这段时间的界面显示。
|
||||
*/
|
||||
- (void) onCancel;
|
||||
|
||||
#ifdef _EDUCATION_
|
||||
/**
|
||||
/*!
|
||||
* 返回音频Key
|
||||
*
|
||||
* @param key 音频Key
|
||||
@ -98,8 +97,8 @@ typedef void(^IFlyOnBuildFinishCompletionHandler)(NSString* grammarId,IFlySpeech
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* 扩展事件回调
|
||||
/*!
|
||||
* 扩展事件回调<br>
|
||||
* 根据事件类型返回额外的数据
|
||||
*
|
||||
* @param eventType 事件类型,具体参见IFlySpeechEventType的IFlySpeechEventTypeVoiceChangeResult枚举。
|
||||
|
@ -56,20 +56,15 @@
|
||||
|
||||
/*!
|
||||
* 设置合成参数
|
||||
* <table>
|
||||
* <thead>
|
||||
* <tr><th>参数</th><th><em>描述</em></th>
|
||||
* </tr>
|
||||
* </thead>
|
||||
* <tbody>
|
||||
* <tr><td>speed</td><td>合成语速,取值范围 0~100</td></tr>
|
||||
* <tr><td>volume</td><td>合成的音量,取值范围 0~100</td></tr>
|
||||
* <tr><td>voice_name</td><td>默认为”xiaoyan”;可以设置的参数列表可参考个性化发音人列表</td></tr>
|
||||
* <tr><td>sample_rate</td><td>采样率:目前支持的采样率设置有 16000 和 8000。</td></tr>
|
||||
* <tr><td>tts_audio_path</td><td>音频文件名 设置此参数后,将会自动保存合成的音频文件。<br/>路径为Documents/(指定值)。不设置或者设置为nil,则不保存音频。</td></tr>
|
||||
* <tr><td>params</td><td>扩展参数: 对于一些特殊的参数可在此设置。</td></tr>
|
||||
* </tbody>
|
||||
* </table>
|
||||
*
|
||||
* | 参数 | 描述 |
|
||||
* |-----------------|----------------------------------------------------|
|
||||
* | speed | 合成语速,取值范围 0~100 |
|
||||
* | volume | 合成的音量,取值范围 0~100 |
|
||||
* | voice_name | 默认为”xiaoyan”;可以设置的参数列表可参考个性化发音人列表 |
|
||||
* | sample_rate | 采样率:目前支持的采样率设置有 16000 和 8000。 |
|
||||
* | tts_audio_path | 音频文件名 设置此参数后,将会自动保存合成的音频文件。<br>路径为Documents/(指定值)。不设置或者设置为nil,则不保存音频。|
|
||||
* | params | 扩展参数: 对于一些特殊的参数可在此设置。 |
|
||||
*
|
||||
* @param value 参数取值
|
||||
* @param key 合成参数
|
||||
@ -88,16 +83,16 @@
|
||||
-(NSString*) parameterForKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
* 开始合成(播放)
|
||||
* 调用此函数进行合成,如果发生错误会回调错误`onCompleted`
|
||||
* 开始合成(播放)<br>
|
||||
* 调用此函数进行合成,如果发生错误会回调错误`onCompleted`
|
||||
*
|
||||
* @param text 合成的文本,最大的字节数为1k
|
||||
*/
|
||||
- (void) startSpeaking:(NSString *)text;
|
||||
|
||||
/*!
|
||||
* 开始合成(不播放)
|
||||
* 调用此函数进行合成,如果发生错误会回调错误`onCompleted`
|
||||
* 开始合成(不播放)<br>
|
||||
* 调用此函数进行合成,如果发生错误会回调错误`onCompleted`
|
||||
*
|
||||
* @param text 合成的文本,最大的字节数为1k
|
||||
* @param uri 合成后,保存再本地的音频路径
|
||||
@ -105,8 +100,8 @@
|
||||
-(void)synthesize:(NSString *)text toUri:(NSString*)uri;
|
||||
|
||||
/*!
|
||||
* 暂停播放
|
||||
* 暂停播放之后,合成不会暂停,仍会继续,如果发生错误则会回调错误`onCompleted`
|
||||
* 暂停播放<br>
|
||||
* 暂停播放之后,合成不会暂停,仍会继续,如果发生错误则会回调错误`onCompleted`
|
||||
*/
|
||||
- (void) pauseSpeaking;
|
||||
|
||||
|
@ -11,15 +11,15 @@
|
||||
|
||||
@class IFlySpeechError;
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 语音合成回调
|
||||
*/
|
||||
@protocol IFlySpeechSynthesizerDelegate <NSObject>
|
||||
|
||||
@required
|
||||
|
||||
/**
|
||||
* 结束回调
|
||||
/*!
|
||||
* 结束回调<br>
|
||||
* 当整个合成结束之后会回调此函数
|
||||
*
|
||||
* @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;
|
||||
|
||||
/**
|
||||
* 恢复播放回调
|
||||
/*!
|
||||
* 恢复播放回调<br>
|
||||
* 注意:此回调方法SDK内部不执行,播放恢复全部在onSpeakBegin中执行
|
||||
*/
|
||||
- (void) onSpeakResumed;
|
||||
|
||||
/**
|
||||
* 正在取消回调
|
||||
* 当调用`cancel`之后会回调此函数
|
||||
/*!
|
||||
* 正在取消回调<br>
|
||||
* 注意:此回调方法SDK内部不执行
|
||||
*/
|
||||
- (void) onSpeakCancel;
|
||||
|
||||
/**
|
||||
* 扩展事件回调
|
||||
/*!
|
||||
* 扩展事件回调<br>
|
||||
* 根据事件类型返回额外的数据
|
||||
*
|
||||
* @param eventType 事件类型,具体参见IFlySpeechEventType枚举。目前只支持EVENT_TTS_BUFFER也就是实时返回合成音频。
|
||||
|
@ -1,134 +0,0 @@
|
||||
//
|
||||
// IFlySpeechUnderstander.h
|
||||
// MSC
|
||||
//
|
||||
// Created by iflytek on 2014-03-12.
|
||||
// Copyright (c) 2014年 iflytek. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class IFlySpeechError;
|
||||
@protocol IFlySpeechRecognizerDelegate;
|
||||
|
||||
/*!
|
||||
* 语义理解接口
|
||||
*/
|
||||
@interface IFlySpeechUnderstander : NSObject
|
||||
|
||||
/*!
|
||||
* 是否正在语义理解
|
||||
*/
|
||||
@property (readonly) BOOL isUnderstanding;
|
||||
|
||||
/*!
|
||||
* 设置委托对象
|
||||
*/
|
||||
@property(nonatomic,retain) id<IFlySpeechRecognizerDelegate> 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)取值如下:
|
||||
* <table>
|
||||
* <thead>
|
||||
* <tr><th>*参数</th><th><em>描述</em></th>
|
||||
* </tr>
|
||||
* </thead>
|
||||
* <tbody>
|
||||
* <tr><td>domain</td><td>应用的领域: 取值为:iat、search、video、poi、music、asr;<br/>iat:普通文本听写;<br/>search:热词搜索;<br/>video:视频音乐搜索;<br/>video:视频音乐搜索;<br/>asr:关键词识别;</td></tr>
|
||||
* <tr><td>vad_bos</td><td>前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;<br/>engine指定iat识别默认值为5000;<br/>其他情况默认值为 4000,范围 0-10000。</td></tr>
|
||||
* <tr><td>vad_eos</td><td>后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,<br/>自动停止录音;单位:ms;<br/>sms 识别默认值为 1800;<br/>其他默认值为 700,范围 0-10000。</td></tr>
|
||||
* <tr><td>sample_rate</td><td>采样率:目前支持的采样率设置有 16000 和 8000。</td></tr>
|
||||
* <tr><td>asr_ptt</td><td>标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。</td></tr>
|
||||
* <tr><td>result_type</td><td>返回结果的数据格式: 可设置为json,xml,plain,默认为json。</td></tr>
|
||||
* <tr><td>grammarID</td><td>识别的语法id: 只针对 domain 设置为”asr”的应用。</td></tr>
|
||||
* <tr><td>asr_audio_path</td><td>音频文件名: 设置此参数后,将会自动保存识别的录音文件。<br/> 路径为Documents/(指定值)。<br/>不设置或者设置为nil,则不保存音频。</td></tr>
|
||||
* <tr><td>params</td><td>扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。</td></tr>
|
||||
* </tbody>
|
||||
* </table>
|
||||
* @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
|
@ -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 <NSObject>
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 发生错误
|
||||
*
|
||||
* @param errorCode 错误码
|
||||
*/
|
||||
- (void)onError:(int)errorCode;
|
||||
- (void)onCompleted:(int)errorCode;
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 服务正常结束
|
||||
*/
|
||||
- (void)onCompleted;
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 用户配置
|
||||
*/
|
||||
@interface IFlySpeechUtility : NSObject
|
||||
|
||||
/*!
|
||||
* 创建用户语音配置
|
||||
* 注册应用请前往语音云开发者网站。<br>
|
||||
* 创建用户语音配置<br>
|
||||
* 注册应用请前往语音云开发者网站。<br>
|
||||
* 网站: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<IFlySpeechplusDelegate> delegate;
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 讯飞语记类别
|
||||
*/
|
||||
@interface IFlySpeechUtility (SpeechPlus)
|
||||
|
||||
/**
|
||||
/*!
|
||||
* 检查讯飞语记是否安装
|
||||
*
|
||||
* @return 已安装返回YES,否则返回NO
|
||||
*/
|
||||
+ (BOOL)checkServiceInstalled;
|
||||
|
||||
/**
|
||||
* 获取讯飞语记下载地址进行下载,安装完成后即可使用服务。
|
||||
/*!
|
||||
* 获取讯飞语记下载地址进行下载,安装完成后即可使用服务。<br>
|
||||
* 下载地址需要通过[[UIApplication sharedApplication] openUrl:]打开
|
||||
*
|
||||
* @return 讯飞语记在App Store下载地址
|
||||
@ -153,9 +153,9 @@ typedef NS_ENUM(NSUInteger,IFlySpeechPlusServiceType){
|
||||
+ (NSString *)componentUrl;
|
||||
|
||||
|
||||
/**
|
||||
* 注意:此接口废弃,不再需要使用
|
||||
* 处理语记使用URL启动第三方应用程序时传递的数据
|
||||
/*!
|
||||
* 注意:此接口废弃,不再需要使用<br>
|
||||
* 处理语记使用URL启动第三方应用程序时传递的数据<br>
|
||||
* 需要在 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 服务类型
|
||||
|
@ -1,57 +0,0 @@
|
||||
//
|
||||
// TextUnderstand.h
|
||||
// MSCDemo
|
||||
//
|
||||
// Created by iflytek on 4/24/14.
|
||||
// Copyright (c) 2014 iflytek. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@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
|
@ -16,7 +16,8 @@
|
||||
|
||||
/*!
|
||||
* 初始化对象
|
||||
* 在进行初始化时,需要传入的格式如下:
|
||||
*
|
||||
* 在进行初始化时,需要传入的格式如下:
|
||||
* <pre><code>{\"userword\":[{\"name\":\"iflytek\",\"words\":[\"科大讯飞\",
|
||||
* \"云平台\",\"用户词条\",\"开始上传词条\"]}]}</code></pre>
|
||||
*
|
||||
|
@ -10,170 +10,74 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#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<IFlyVoiceWakeuperDelegate> delegate;
|
||||
|
||||
@property(assign) id<IFlyVoiceWakeuperDelegate> 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;
|
||||
|
||||
/**
|
||||
写入录音数据
|
||||
暂时紧紧支持唤醒的写入,注册服务尚不支持
|
||||
/*!
|
||||
* 设置工作参数<br>
|
||||
* 注意服务正在运行中,不能设置参数
|
||||
*/
|
||||
//-(int) writeAudio:(const void*)buffer offset:(int)offset length:(int)length;
|
||||
|
||||
@property (readonly) BOOL isListening;
|
||||
-(BOOL) setParameter:(NSString *) value forKey:(NSString*)key;
|
||||
|
||||
@end
|
||||
|
||||
/*!
|
||||
* 音频流唤醒<br>
|
||||
* 音频流唤醒可以将文件分段写入
|
||||
*/
|
||||
@interface IFlyVoiceWakeuper(IFlyStreamVoiceWakeuper)
|
||||
|
||||
/*!
|
||||
* 写入音频流
|
||||
*
|
||||
* @param audioData 音频数据
|
||||
*
|
||||
* @return 写入成功返回YES,写入失败返回NO
|
||||
*/
|
||||
- (BOOL) writeAudio:(NSData *) audioData;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
@ -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 <NSObject>
|
||||
|
||||
@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;
|
||||
|
||||
|
||||
/** 扩展事件回调
|
||||
|
||||
根据事件类型返回额外的数据
|
||||
|
||||
/*!
|
||||
* 扩展事件回调<br>
|
||||
* 根据事件类型返回额外的数据
|
||||
*
|
||||
@param eventType 事件类型,具体参见IFlySpeechEvent枚举。
|
||||
|
||||
*/
|
||||
- (void) onEvent:(int)eventType isLast:(BOOL)isLast arg1:(int)arg1 data:(NSMutableDictionary *)eventData;
|
||||
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user