类 ASREngine
- java.lang.Object
-
- com.aispeech.dui.dds.agent.ASREngine
-
public class ASREngine extends java.lang.Object
Created by Jinrui on 2017/11/8.
-
-
嵌套类概要
嵌套类 修饰符和类型 类 说明 static classASREngine.AsrPlusRequestBeanstatic classASREngine.AsrppTypestatic interfaceASREngine.Callbackstatic interfaceASREngine.DDSAsrCallbackstatic classASREngine.ListeningParams
-
字段概要
字段 修饰符和类型 字段 说明 static java.lang.StringTAG
-
构造器概要
构造器 限定符 构造器 说明 protectedASREngine()
-
方法概要
所有方法 静态方法 实例方法 具体方法 已过时的方法 修饰符和类型 方法 说明 voidcancel()取消此次识别protected voiddestroy()voiddisableCensor()打开识别敏感词voiddisablePunctuation()关闭识别支持标点符号的特性booleandisableVad()设置取消VAD检测接口voidenableCensor()打开识别敏感词voidenablePunctuation()打开识别支持标点符号的特性booleanenableVad()设置使用VAD检测接口voidenableVolume(boolean enable)设置时时回传音量大小, 默认为truevoidenableVolume(boolean enable, int frequency)设置时时回传音量大小, 默认为truejava.lang.StringgetAsrModel()获取当前使用的云端识别的模型java.lang.StringgetAsrppWithPcm(byte[] pcm, ASREngine.AsrppType... types)获取音频对应的性别/年龄/情绪java.lang.StringgetGenderWithPcm(byte[] pcm)已过时。static ASREnginegetInstance()static ASREnginegetInstanceSnapshot()获取 ASREngine 实例快照java.lang.StringgetVadDump()获取vad dump infolonggetVadPauseTime()获取VAD后端停顿时间的接口longgetVadTimeout()获取VAD前端超时时间的接口java.lang.StringgetVadVersion()获取vad版本:lua版本 - c版本 接口voidkillVadTimeoutInFullDuplex()在全双工模式下,跳过Vad的超时检测voidsetAbLmId(org.json.JSONArray abLmId)设置二路模型标识voidsetAsrPlus(ASREngine.AsrPlusRequestBean asrPlus)设置识别声纹参数voidsetCLmId(org.json.JSONArray cLmId)设置三路模型标识voidsetDDSAsrListener(ASREngine.DDSAsrCallback listener)设置全链路相关事件的监听voidsetEnableAlignment(boolean enableAlignment)是否开启enableAlignmentvoidsetEnableCloudAsrPP(boolean enable)动态设置Asrpp是否打开,下一轮对话生效voidsetEnableNluRec(boolean enableNluRec)是否开启nlu_recvoidsetReversedChannel(boolean isReversedChannel)动态设置录音通道是否反转booleansetVadPauseTime(long millis)设置VAD后端停顿时间的接口booleansetVadTimeout(long mills)设置VAD前端超时时间的接口voidstartListening(ASREngine.Callback callback)主动开始识别voidstartListening(ASREngine.ListeningParams params, ASREngine.Callback callback)主动开始识别voidstartVadTimeoutInFullDuplex()在全双工模式下,实时开启Vad的超时检测 在调用killVadTimeoutInFullDuplex之后,如果想在本轮对话中再次开启Vad的超时检测机制,则调用此接口voidstopListening()主动结束识别voidupdateAsrModel(java.lang.String asrModel)更新云端识别的模型名字, 在调用完该接口后,下一次对话开始时生效,并一直用该模型,除非客户端再调用该接口设置为其他的模型
-
-
-
构造器详细资料
-
ASREngine
protected ASREngine()
-
-
方法详细资料
-
getInstance
public static ASREngine getInstance()
-
getInstanceSnapshot
public static ASREngine getInstanceSnapshot()
获取 ASREngine 实例快照- 返回:
- ASREngine
-
startListening
public void startListening(ASREngine.Callback callback) throws DDSNotInitCompleteException
主动开始识别调用后直接进入识别,识别结果通过
ASREngine.Callback返回。 若当前正在对话中,会先结束当前对话,再开启识别。 若开启VAD,用户结束说话之后会自动结束识别,无须调用stopListening()- 参数:
callback- 识别结果通的回调接口。识别结束或取消后,将被清除。- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
startListening
public void startListening(ASREngine.ListeningParams params, ASREngine.Callback callback) throws DDSNotInitCompleteException
主动开始识别调用后直接进入识别,识别结果通过
ASREngine.Callback返回。 若开启VAD,用户结束说话之后会自动结束识别,无须调用stopListening()- 参数:
callback- 识别结果通的回调接口。识别结束或取消后,将被清除。- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
setVadTimeout
public boolean setVadTimeout(long mills) throws DDSNotInitCompleteException
设置VAD前端超时时间的接口若VAD启动,一直未检测到用户说话,超过一定时间,发出sys.vad.timeout消息,结束录音。 设置成功后,vad再次启动生效
- 参数:
mills- 前端超时时间,单位为毫秒。默认值为8000毫秒。- 返回:
- true-设置成功;false-设置失败
- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
killVadTimeoutInFullDuplex
public void killVadTimeoutInFullDuplex() throws DDSNotInitCompleteException
在全双工模式下,跳过Vad的超时检测全双工模式下, VAD启动后调用此接口会清除VAD的超时机制, 人声检测超时机制交由服务端来判断 此接口只在全双工模式下生效, 并在当前对话时生效, 开启新的对话后此状态会恢复为默认的vad超时检测
- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
startVadTimeoutInFullDuplex
public void startVadTimeoutInFullDuplex() throws DDSNotInitCompleteException
在全双工模式下,实时开启Vad的超时检测 在调用killVadTimeoutInFullDuplex之后,如果想在本轮对话中再次开启Vad的超时检测机制,则调用此接口- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
getVadTimeout
public long getVadTimeout() throws DDSNotInitCompleteException
获取VAD前端超时时间的接口- 返回:
- millis 前端超时时间,单位为毫秒。
- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
setVadPauseTime
public boolean setVadPauseTime(long millis) throws DDSNotInitCompleteException
设置VAD后端停顿时间的接口若VAD在用户说话时停顿超过一定的时间,则认为用户已经说完,发出sys.vad.end消息,结束录音。
- 参数:
millis- 后端停顿时间,单位为毫秒。默认值为500毫秒。- 返回:
- true-设置成功;false-设置失败
- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
getVadPauseTime
public long getVadPauseTime() throws DDSNotInitCompleteException
获取VAD后端停顿时间的接口- 返回:
- millis 后端停顿时间,单位为毫秒。
- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
getVadVersion
public java.lang.String getVadVersion() throws DDSNotInitCompleteException
获取vad版本:lua版本 - c版本 接口- 返回:
- vadVersion vad版本信息
- 抛出:
DDSNotInitCompleteException
-
getVadDump
public java.lang.String getVadDump() throws DDSNotInitCompleteException
获取vad dump info- 返回:
- vadDump vad dmp info
- 抛出:
DDSNotInitCompleteException
-
enableVad
public boolean enableVad() throws DDSNotInitCompleteException
设置使用VAD检测接口- 返回:
- true-设置成功;false-设置失败
- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
disableVad
public boolean disableVad() throws DDSNotInitCompleteException
设置取消VAD检测接口- 返回:
- true-设置成功;false-设置失败
- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
stopListening
public void stopListening() throws DDSNotInitCompleteException
主动结束识别调用后,最终识别结果会通过
ASREngine.Callback.finalResults(String)回调,然后ASREngine.Callback将会被清除。- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
cancel
public void cancel() throws DDSNotInitCompleteException
取消此次识别调用后,
ASREngine.Callback将会被清除,并不再触发任何回调。- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
enablePunctuation
public void enablePunctuation() throws DDSNotInitCompleteException
打开识别支持标点符号的特性- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
disablePunctuation
public void disablePunctuation() throws DDSNotInitCompleteException
关闭识别支持标点符号的特性- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
enableCensor
public void enableCensor() throws DDSNotInitCompleteException
打开识别敏感词- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
disableCensor
public void disableCensor() throws DDSNotInitCompleteException
打开识别敏感词- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
updateAsrModel
public void updateAsrModel(java.lang.String asrModel) throws DDSNotInitCompleteException
更新云端识别的模型名字, 在调用完该接口后,下一次对话开始时生效,并一直用该模型,除非客户端再调用该接口设置为其他的模型- 参数:
asrModel- 云端识别的模型名字,有aihome, airobot等, 默认为dui控制台配置的模型资源, 如果填null,则表示清除之前本地配置的模型名,之后会使用dui控制台配置的模型资源- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
getAsrModel
public java.lang.String getAsrModel() throws DDSNotInitCompleteException
获取当前使用的云端识别的模型- 返回:
- asrModel 当前使用的云端识别的模型, 如果失败会返回null,或者抛出DDSNotInitCompleteException
- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
getGenderWithPcm
@Deprecated public java.lang.String getGenderWithPcm(byte[] pcm) throws DDSNotInitCompleteException
已过时。获取音频对应的性别/年龄/情绪- 参数:
pcm- 一次性输入识别的单路音频(建议输入1.2~1.5秒的有效音频,有效音频不得少于0.6秒)- 返回:
- 返回音频识别结果: 性别/年龄/情绪字段
- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
getAsrppWithPcm
public java.lang.String getAsrppWithPcm(byte[] pcm, ASREngine.AsrppType... types) throws DDSNotInitCompleteException
获取音频对应的性别/年龄/情绪- 参数:
pcm- 一次性输入识别的单路音频(建议输入1.2~1.5秒的有效音频,有效音频不得少于0.6秒)- 返回:
- 返回音频识别结果: 性别/年龄/情绪字段
- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
enableVolume
public void enableVolume(boolean enable) throws DDSNotInitCompleteException
设置时时回传音量大小, 默认为true- 参数:
enable- true/false true:支持时时回传音量 false:关闭时时回传音量- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
enableVolume
public void enableVolume(boolean enable, int frequency) throws DDSNotInitCompleteException
设置时时回传音量大小, 默认为true- 参数:
enable- true/false true:支持时时回传音量 false:关闭时时回传音量frequency- 每几次计算一次音量, 默认 1- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
setReversedChannel
public void setReversedChannel(boolean isReversedChannel) throws DDSNotInitCompleteException
动态设置录音通道是否反转- 参数:
isReversedChannel- true or false- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
setCLmId
public void setCLmId(org.json.JSONArray cLmId) throws DDSNotInitCompleteException
设置三路模型标识- 参数:
cLmId- 模型id new JSONArray().put("123").put("234");- 抛出:
DDSNotInitCompleteException
-
setAsrPlus
public void setAsrPlus(ASREngine.AsrPlusRequestBean asrPlus) throws DDSNotInitCompleteException
设置识别声纹参数- 参数:
asrPlus-- 抛出:
DDSNotInitCompleteException
-
setAbLmId
public void setAbLmId(org.json.JSONArray abLmId) throws DDSNotInitCompleteException
设置二路模型标识- 参数:
abLmId- 模型id new JSONArray().put("123").put("234");- 抛出:
DDSNotInitCompleteException
-
setEnableNluRec
public void setEnableNluRec(boolean enableNluRec) throws DDSNotInitCompleteException
是否开启nlu_rec- 参数:
enableNluRec- 取值 true or false- 抛出:
DDSNotInitCompleteException
-
setEnableAlignment
public void setEnableAlignment(boolean enableAlignment) throws DDSNotInitCompleteException
是否开启enableAlignment- 参数:
enableAlignment- 取值 true or false- 抛出:
DDSNotInitCompleteException
-
setEnableCloudAsrPP
public void setEnableCloudAsrPP(boolean enable) throws DDSNotInitCompleteException
动态设置Asrpp是否打开,下一轮对话生效- 参数:
enable- 默认是false,如果用户配置,取用户配置的值- 抛出:
DDSNotInitCompleteException
-
destroy
protected void destroy()
-
setDDSAsrListener
public void setDDSAsrListener(ASREngine.DDSAsrCallback listener) throws DDSNotInitCompleteException
设置全链路相关事件的监听- 参数:
listener- 回调各事件- 抛出:
DDSNotInitCompleteException- 如果DDS没有初始化完成,会抛出exception
-
-