public class TextUnderstander
extends com.iflytek.cloud.msc.module.SpeechInterface
通过此类,把自然语言的文本字符串,转换成以一定数据结构的文本数据,应用 通过结构中的数据,获取用户的意图,进行下一步处理。
关于语义理解的介绍,请参考语音语义类SpeechUnderstander
。
本类使用单例,调用者使用本类的对象,只需要通过createTextUnderstander(Context, com.iflytek.cloud.InitListener)
创建一次对象后,便可一直使用该对象,直到通过调用destroy()
进行单例对象销毁。
调用者可通过getTextUnderstander()
获取当前已经创建的单例。在销毁本类的单例
对象后,需要先通过createTextUnderstander(Context, com.iflytek.cloud.InitListener)
再次创建单例对象,方可再使用。
在当前应用生命周期第一次使用本类的任何函数前,须先调用
SpeechUtility.createUtility(Context, java.lang.String)
进行SDK初始化。
SpeechUtility.createUtility(Context, java.lang.String)
,
SpeechUnderstander
限定符和类型 | 方法和说明 |
---|---|
void |
cancel()
取消会话
通过此函数取消当前的会话。
|
static TextUnderstander |
createTextUnderstander(Context context,
InitListener listener)
创建单例对象
使用此函数创建一个本类单例对象。
|
boolean |
destroy()
销毁单例对象
通过本函数,销毁由
createTextUnderstander(Context, com.iflytek.cloud.InitListener) 创建的单例对象。 |
java.lang.String |
getParameter(java.lang.String key)
获取参数
获取指定的参数的当前值。
|
static TextUnderstander |
getTextUnderstander()
获取单例对象
通过函数获取已创建的单例对象。
|
boolean |
isUnderstanding()
是否在会话中
通过此函数,获取当前SDK是否正在进行会话。
|
boolean |
setParameter(java.lang.String key,
java.lang.String value)
参数设置
可设置的参数有:
SpeechConstant.NET_TIMEOUT : 网络连接超时时间SpeechConstant.LANGUAGE :语言SpeechConstant.ACCENT :语言区域SpeechConstant.DOMAIN :应用领域SpeechConstant.RESULT_TYPE :识别结果类型
SpeechConstant.ENGINE_TYPE :引擎类型(目前语义仅支持在线模式);
|
int |
understandText(java.lang.String text,
TextUnderstanderListener listener)
理解文本
调用此函数,传入自然语言的文本内容,获取语义理解的结果。
|
public static TextUnderstander createTextUnderstander(Context context, InitListener listener)
使用此函数创建一个本类单例对象。当成功创建一次单例对象后,可一直使用此对象,
直到调用destroy()
销毁已创建的单例对象为止。若在当前应用生命周期内调用
destroy()
前再次调用本函数,则直接返回已创建的单例对象。可通过
getTextUnderstander()
获取已创建的单例对象。
destroy()
,
getTextUnderstander()
public static TextUnderstander getTextUnderstander()
通过函数获取已创建的单例对象。当单例对象未创建时,将返回null,此时应先通过
createTextUnderstander(Context, com.iflytek.cloud.InitListener)
创建单例对象。
createTextUnderstander(Context, com.iflytek.cloud.InitListener)
,
destroy()
public int understandText(java.lang.String text, TextUnderstanderListener listener)
调用此函数,传入自然语言的文本内容,获取语义理解的结果。
目前SDK不支持多线程,所以在调用本函数开始一次会话后,直到结束前(结果返回 完毕,或出现错误),不能再调用本函数开始新的会话。一次会话,即从会话开始,到结 束为止。
在调用本函数开始会话前,通过setParameter(String, String)
设置相
应的参数。通过cancel()
取消本次会话。
text
- 需要理解的文本listener
- 监听器setParameter(String, String)
,
cancel()
,
getTextUnderstander()
,
TextUnderstanderListener
public boolean isUnderstanding()
通过此函数,获取当前SDK是否正在进行会话。应用层可通过此函数,查询能否 开始一路新的会话等。
understandText(String, TextUnderstanderListener)
,
cancel()
public void cancel()
通过此函数取消当前的会话。
在会话被取消后,当前会话结束,未返回的结果将不再返回。
public boolean setParameter(java.lang.String key, java.lang.String value)
可设置的参数有:
SpeechConstant.NET_TIMEOUT
: 网络连接超时时间
SpeechConstant.LANGUAGE
:语言
SpeechConstant.ACCENT
:语言区域
SpeechConstant.DOMAIN
:应用领域
SpeechConstant.RESULT_TYPE
:识别结果类型
SpeechConstant.ENGINE_TYPE
:引擎类型(目前语义仅支持在线模式);
setParameter
在类中 com.iflytek.cloud.msc.module.SpeechInterface
key
- 参数名称value
- 参数值getParameter(String)
,
understandText(String, TextUnderstanderListener)
public java.lang.String getParameter(java.lang.String key)
获取指定的参数的当前值。
某些有默认的值的参数,如SpeechConstant.NET_TIMEOUT
,在应用层未
调用setParameter(String, String)
来设置参数值前,可能获取到的是null值,
但在实际会话会始时,SDK会使用默认值传给服务器。
getParameter
在类中 com.iflytek.cloud.msc.module.SpeechInterface
key
- 参数名称,所有支持参数,参考setParameter(String, String)
SpeechConstant
对各参数的说明。setParameter(String, String)
public boolean destroy()
通过本函数,销毁由createTextUnderstander(Context, com.iflytek.cloud.InitListener)
创建的单例对象。
在调用本函数进行销毁前,应先保证当前不在会话中,否则,本函数将尝试取消当前
会话,并返回false,此时销毁失败。关于当前是否在会话中,请参考函数
isUnderstanding()
。若销毁失败,请在取消当前会话后,再次调用本函数重试。
当本函数返回true时,销毁成功。此时,之前创建的单例对象已不能再使用,否则,
将会报错。此时需要再使用,应先通过createTextUnderstander(Context, com.iflytek.cloud.InitListener)
创建一个新
的单例对象。
createTextUnderstander(Context, com.iflytek.cloud.InitListener)
,
cancel()