com.aispeech.dui.dds.agent

## 类 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 class` | `ASREngine.AsrppType`
    `static interface` | `ASREngine.Callback`

  - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `static java.lang.String` | `TAG`
    `static int` | `TIMEOUT_ASR`

  - ### 构造器概要

    构造器
    限定符 | 构造器和说明
    --- | ---
    `protected` | `ASREngine()`
    `protected` | `ASREngine(java.lang.String lBridgeAddr)`

  - ### 方法概要

    所有方法 静态方法 实例方法 具体方法 已过时的方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `cancel()` 取消此次识别 调用后，`ASREngine.Callback`将会被清除，并不再触发任何回调。
    `protected void` | `destroy()`
    `boolean` | `disableVad()` 设置取消VAD检测接口
    `boolean` | `enableVad()` 设置使用VAD检测接口
    `void` | `enableVolume(boolean enable)` 设置时时回传音量大小, 默认为true
    `java.lang.String` | `getAsrModel()` 获取当前使用的云端识别的模型
    `java.lang.String` | `getAsrppWithPcm(byte[] pcm, ASREngine.AsrppType... types)` 获取音频对应的性别/年龄/情绪
    `java.lang.String` | `getGenderWithPcm(byte[] pcm)` 已过时。
    `static ASREngine` | `getInstance()`
    `static ASREngine` | `getInstance(java.lang.String lBridgeAddr)`
    `static ASREngine` | `getInstanceSnapshot()` 获取 ASREngine 实例快照
    `java.lang.String` | `getVadDump()` 获取vad dump info
    `long` | `getVadPauseTime()` 获取VAD后端停顿时间的接口
    `long` | `getVadTimeout()` 获取VAD前端超时时间的接口
    `java.lang.String` | `getVadVersion()` 获取vad版本：lua版本 - c版本 接口
    `void` | `killVadTimeoutInFullDuplex()` 在全双工模式下,跳过Vad的超时检测 全双工模式下, VAD启动后调用此接口会清除VAD的超时机制, 人声检测超时机制交由服务端来判断 此接口只在全双工模式下生效, 并在当前对话时生效, 开启新的对话后此状态会恢复为默认的vad超时检测
    `void` | `setReversedChannel(boolean isReversedChannel)` 动态设置录音通道是否反转
    `boolean` | `setVadPauseTime(long millis)` 设置VAD后端停顿时间的接口 若VAD在用户说话时停顿超过一定的时间，则认为用户已经说完，发出sys.vad.end消息，结束录音。
    `boolean` | `setVadTimeout(long millis)` 设置VAD前端超时时间的接口 若VAD启动,一直未检测到用户说话,超过一定时间，发出sys.vad.timeout消息，结束录音。
    `void` | `startListening(ASREngine.Callback callback)` 主动开始识别 调用后直接进入识别，识别结果通过`ASREngine.Callback`返回。
    `void` | `stopListening()` 主动结束识别 调用后，最终识别结果会通过`ASREngine.Callback.finalResults(String)`回调，然后`ASREngine.Callback`将会被清除。
    `void` | `updateAsrModel(java.lang.String asrModel)` 更新云端识别的模型名字， 在调用完该接口后，下一次对话开始时生效，并一直用该模型，除非客户端再调用该接口设置为其他的模型

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 字段详细资料

    - #### TAG

          public static final java.lang.String TAG

      另请参阅:
        常量字段值

    - #### TIMEOUT_ASR

          public static final int TIMEOUT_ASR

      另请参阅:
        常量字段值

  - ### 构造器详细资料

    - #### ASREngine

          protected ASREngine()

    - #### ASREngine

          protected ASREngine(java.lang.String lBridgeAddr)

  - ### 方法详细资料

    - #### getInstance

          public static ASREngine getInstance()

    - #### getInstance

          public static ASREngine getInstance(java.lang.String lBridgeAddr)

    - #### getInstanceSnapshot

          public static ASREngine getInstanceSnapshot()

      获取 ASREngine 实例快照
      返回:
        ASREngine

    - #### startListening

          public void startListening(ASREngine.Callback callback)
                              throws DDSNotInitCompleteException

      主动开始识别

      调用后直接进入识别，识别结果通过`ASREngine.Callback`返回。 若当前正在对话中，会先结束当前对话，再开启识别。 若产品开启VAD，用户结束说话之后会自动结束识别，无须调用`stopListening()`

      参数:
        `callback` - 识别结果通的回调接口。识别结束或取消后，将被清除。
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### setVadTimeout

          public boolean setVadTimeout(long millis)
                                throws DDSNotInitCompleteException

      设置VAD前端超时时间的接口

      若VAD启动,一直未检测到用户说话,超过一定时间，发出sys.vad.timeout消息，结束录音。 设置成功后,vad再次启动生效

      参数:
        `millis` - 前端超时时间，单位为毫秒。默认值为8000毫秒。
      返回:
        true-设置成功；false-设置失败
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### killVadTimeoutInFullDuplex

          public void killVadTimeoutInFullDuplex()
                                          throws DDSNotInitCompleteException

      在全双工模式下,跳过Vad的超时检测

      全双工模式下, VAD启动后调用此接口会清除VAD的超时机制, 人声检测超时机制交由服务端来判断 此接口只在全双工模式下生效, 并在当前对话时生效, 开启新的对话后此状态会恢复为默认的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

    - #### 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

    - #### setReversedChannel

          public void setReversedChannel(boolean isReversedChannel)
                                  throws DDSNotInitCompleteException

      动态设置录音通道是否反转
      参数:
        `isReversedChannel` - true or false
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### destroy

          protected void destroy()