com.iflytek.cloud
java.lang.Object
com.iflytek.cloud.msc.module.SpeechInterface
com.iflytek.cloud.SpeechRecognizer
public final class SpeechRecognizer
extends com.iflytek.cloud.msc.module.SpeechInterfaceupdateLexicon(String, String, LexiconListener)。buildGrammar(String, String, GrammarListener)。 关于语法文件的编写,请参考 语法编写指南 。 关于语法ID设置,请参考setParameter(String, String)和 SpeechConstant.CLOUD_GRAMMAR 、 SpeechConstant.LOCAL_GRAMMAR 。createRecognizer(android.content.Context, com.iflytek.cloud.InitListener)创建 一次对象后,便可一直使用该对象,直到通过调用destroy()进行单例对象销毁。调 用者可通过getRecognizer()获取当前已经创建的单例。在销毁本类的单例对象后, 需要先通过createRecognizer(android.content.Context, com.iflytek.cloud.InitListener)再次创建单例对象,方可再使用。SpeechUtility.createUtility(android.content.Context, java.lang.String) 进行SDK初始化。com.iflytek.cloud.msc.module.SpeechInterface.ENGINE_MODE| 限定符和类型 | 方法和说明 |
|---|---|
int | buildGrammar(java.lang.String grammarType, java.lang.String grammarContent,GrammarListener grammarListener) 构建语法文件 在使用语法识别时,需要先构建语法。 |
void | cancel() 取消会话 通过此函数取消当前的会话。 |
static SpeechRecognizer | createRecognizer(android.content.Context context, InitListener listener) 创建单例对象 使用此函数创建一个本类单例对象。 |
boolean | destroy() 销毁单例对象 通过本函数,销毁由createRecognizer(android.content.Context, com.iflytek.cloud.InitListener)创建的单例对象。 |
java.lang.String | getParameter(java.lang.String key) 获取参数 获取指定的参数的当前值。 |
static SpeechRecognizer | getRecognizer() 获取单例对象 通过函数获取已创建的单例对象。 |
boolean | isListening() 是否在会话中 通过此函数,获取当前SDK是否正在进行会话。 |
boolean | setParameter(java.lang.String key, java.lang.String value) 参数设置 |
int | startListening(RecognizerListener listener) 开始录音 调用此函数,开始听写或语法识别。 |
void | stopListening() 停止录音 调用本函数告知SDK,当前会话音频已全部录入。 |
int | updateLexicon(java.lang.String lexiconName, java.lang.String lexiconContent, LexiconListener lexiconListener) 更新词典 更新应用个性化的词典,如联系人列表等。 |
int | writeAudio(byte[] buffer, int offset, int length) 写入录音数据 通过调用此函数,把音频数据传给SDK。 |
setParameterequals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitpublic static SpeechRecognizer createRecognizer(android.content.Context context,
InitListener listener)destroy()销毁已创建的单例对象为止。若在当前应用生命周期内调用 destroy()前再次调用本函数,则直接返回已创建的单例对象。可通过 getRecognizer()获取已创建的单例对象。public static SpeechRecognizer getRecognizer()createRecognizer(android.content.Context, com.iflytek.cloud.InitListener)创建单例对象。public int buildGrammar(java.lang.String grammarType,
java.lang.String grammarContent,
GrammarListener grammarListener)grammarType - 语法类型,支持:abnf,bnfgrammarContent - 语法内容grammarListener - 语法构建回调,语法ID将通过 GrammarListener.onBuildFinish(String, SpeechError)回调返回,以用于 识别开始前设置SpeechConstant.CLOUD_GRAMMAR 或 SpeechConstant.LOCAL_GRAMMAR 参数,使用该语法。public int updateLexicon(java.lang.String lexiconName,
java.lang.String lexiconContent,
LexiconListener lexiconListener)lexiconName - 词典名称,{ "userword", "contact" }。lexiconContent - 词典内容,联系人列表:以换行符"\n"分隔的词语字符串,如"张三,李四,王五"; 用户热词:满足一定格式的json字符串,格式如下:{
"userword": [
{
"name": "default",
"words": [
"默认词条1",
"默认词条2"
]
},
{
"name": "词表名称1",
"words": [
"词条1的第一个词",
"词条1的第二个词"
]
},
{
"name": "词表名称2",
"words": [
"词条2的第一个词",
"词条2的第二个词"
]
}
]
}UserWords 类。lexiconListener - 词典更新回调接口public int startListening(RecognizerListener listener)setParameter(String, String)设置相 应的参数。SpeechConstant.AUDIO_SOURCE 值>=0时),或由应用层调用 writeAudio(byte[\], int, int)写入音频流,获取用于识别的音频。在完成音频 录入(包括麦克风或写音频流方式)后,通过调用stopListening()告知SDK已完 成音频录入,或由SDK自带的VAD(Voice Activity Detection,静音抑制)自动结束音频录 入,见RecognizerListener.onEndOfSpeech()。(关于写入音流方式的SDK自动结束 录入应注意的地方,请参考writeAudio(byte[\], int, int);VAD端点长度设置,请 参考setParameter(String, String)cancel()取消当前的会话。public int writeAudio(byte[] buffer,
int offset,
int length)SpeechConstant.AUDIO_SOURCE 值为-1时,需要通过调用本函数,把 音频数据传给SDK。在写入音频数据前,应先通过startListening(RecognizerListener) 开启会话。在结束录音数据写入后,调用stopListening()告知应用层,当前会话 音频数据已全部写入。RecognizerListener.onEndOfSpeech()时,说明SDK已经通过VAD检测 到了静音末端点,应该立即停止写入音频数据。当SDK回调 RecognizerListener.onResult(com.iflytek.cloud.RecognizerResult, boolean)返回完结果,或回调 RecognizerListener.onError(SpeechError)返回错误时,也应该停止当次会话的音频写 入。setParameter(String, String)的参数说明。buffer - 要写入的录音数据缓存offset - 实际音频在传入缓存的起始点length - 音频数据长度ErrorCode.SUCCESS 表示成功,其他值表示有错误, 具体错误码,请参考ErrorCode 。public void stopListening()cancel()函数。RecognizerListener.onEndOfSpeech()。相反的,当SDK回调 RecognizerListener.onEndOfSpeech()时,应用层可不必再调用本函数通知SDK停止 录音。public boolean isListening()stopListening()停止录音后,如果会话未出现错误或返回最后的结果, 当前状态依然处于会话中,即本函数会返回true。如果调用cancel()取消了会话, 则当前状态处于不在会话中。public void cancel()public boolean setParameter(java.lang.String key,
java.lang.String value)SpeechConstant.NET_TIMEOUT : 网络连接超时时间SpeechConstant.KEY_SPEECH_TIMEOUT :语音输入超时时间SpeechConstant.LANGUAGE :语言SpeechConstant.ACCENT :语言区域SpeechConstant.DOMAIN :应用领域SpeechConstant.LOCAL_GRAMMAR :本地语法IDSpeechConstant.AUDIO_SOURCE :音频源SpeechConstant.BLUETOOTH : 蓝牙录音SpeechConstant.VAD_BOS :前端点超时SpeechConstant.VAD_EOS :后端点超时SpeechConstant.VAD_ENABLE :启用VADSpeechConstant.SAMPLE_RATE :识别采样率SpeechConstant.ASR_NBEST :句子级多候选SpeechConstant.ASR_WBEST :词级多候选SpeechConstant.ASR_PTT :设置是否有标点符号SpeechConstant.RESULT_TYPE :识别结果类型SpeechConstant.ASR_AUDIO_PATH :识别录音保存路径SpeechConstant.ENGINE_TYPE :引擎类型;ResourceUtil.ASR_RES_PATH :离线资源路径;ResourceUtil.ENGINE_START :启动离线引擎;ResourceUtil.GRM_BUILD_PATH :离线语法路径;SpeechConstant.DVC_INFO : 设备信息SpeechConstant.AUDIO_FORMAT_AUE :音频流编解码格式,非音频流操作并不支持此参数设置,如命令词识别setParameter 在类中 com.iflytek.cloud.msc.module.SpeechInterfacekey - 参数名称value - 参数值public java.lang.String getParameter(java.lang.String key)SpeechConstant.SAMPLE_RATE ,在应用层未 调用setParameter(String, String)来设置参数值前,可能获取到的是null值, 但在实际会话会始时,SDK会使用默认值传给服务器。getParameter 在类中 com.iflytek.cloud.msc.module.SpeechInterfacekey - 参数名称,所有支持参数,参考setParameter(String, String)SpeechConstant 对各参数的说明。public boolean destroy()createRecognizer(android.content.Context, com.iflytek.cloud.InitListener)创建的单例对象。isListening()。若销毁失败,请在取消当前会话后,再次调用本函数重试。createRecognizer(android.content.Context, com.iflytek.cloud.InitListener)创建一个新的单例 对象。destroy 在类中 com.iflytek.cloud.msc.module.SpeechInterfacecom.iflytek.cloud.ui
java.lang.Object
android.app.Dialog
com.iflytek.cloud.ui.control.MscDialog
com.iflytek.cloud.ui.RecognizerDialogSpeechRecognizer。show()显示对话框后,自动开始录音(当设置 音频源 为麦克风时), 即相当于调用了SpeechRecognizer.startListening(com.iflytek.cloud.RecognizerListener)。 在录音过程中点击对话框内任意地方停止录音并等待结果返回,即相当于调用了 SpeechRecognizer.stopListening()。点击对话框外的 任意地方取消识别,对话框自动消失,即相当于调用了 SpeechRecognizer.cancel()。 可以调用Dialog.setOnDismissListener(android.content.DialogInterface.OnDismissListener)来设置对话框消失时的监听器。SpeechRecognizer的单例 进行识别会话(在首次通过构造函数创建实例时,自动创建 SpeechRecognizer的单例),所以应用不能在识别对话框还在进 行会话(对话框在显示)时,调用 SpeechRecognizer.startListening(com.iflytek.cloud.RecognizerListener) 开启新的会话。com.iflytek.cloud.ui.control.MscDialog.DismissCallBackandroid.content.DialogInterface.OnCancelListener, android.content.DialogInterface.OnClickListener, android.content.DialogInterface.OnDismissListener, android.content.DialogInterface.OnKeyListener, android.content.DialogInterface.OnMultiChoiceClickListener, android.content.DialogInterface.OnShowListenerBUTTON_NEGATIVE, BUTTON_NEUTRAL, BUTTON_POSITIVE, BUTTON1, BUTTON2, BUTTON3| 构造器和说明 |
|---|
| RecognizerDialog(android.content.Context context, InitListener listener)构造函数 初始化一个识别对话框。 |
| 限定符和类型 | 方法和说明 |
|---|---|
void | dismiss()消失 使弹出框消失,同时取消当前会话,即相当于点击了对话框外的其他地方, 或相当于调用了SpeechRecognizer.cancel()。 |
void | setListener(RecognizerDialogListener listener)设置识别对话框监听器 通过监听器,获 取识别状态和结果。 |
void | setParameter(java.lang.String key, java.lang.String value)设置参数 请参考SpeechRecognizer.setParameter(String, String)说明。 |
void | setUILanguage(java.util.Locale lan)设置对话框语言 目前支持以下语言: 简体中文:Locale.CHINA; 繁体中文:Locale.TRADITIONAL_CHINESE; 美式英语:Locale.US; |
void | show()显示 显示对话框,并开始识别,即相当于调用了SpeechRecognizer.startListening(com.iflytek.cloud.RecognizerListener)。 |
public RecognizerDialog(android.content.Context context,
InitListener listener)SpeechRecognizer.createRecognizer(android.content.Context, com.iflytek.cloud.InitListener)