com.aispeech.dui.dds.agent.tts

## 类 TTSEngine

- java.lang.Object
- - com.aispeech.dui.dds.agent.tts.TTSEngine

-     public class TTSEngine
      extends java.lang.Object

  Created by nemo on 17-12-13.

- - ### 嵌套类概要

    嵌套类
    限定符和类型 | 类和说明
    --- | ---
    `static interface` | `TTSEngine.Callback`
    `static class` | `TTSEngine.CallbackOptimize`

  - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `static int` | `CLOUD`
    `static int` | `LOCAL`
    `static java.lang.String` | `SSML`
    `static java.lang.String` | `TEXT`

  - ### 构造器概要

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

  - ### 方法概要

    所有方法 静态方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `destroy()`
    `void` | `enableFocus(boolean enable)` 设备抢焦点,默认为抢焦点
    `java.util.List<CustomAudioBean>` | `getCustomAudio()` 获取自定义TTS播报录音的接口
    `static TTSEngine` | `getInstance()` 获取TTSEngine
    `static TTSEngine` | `getInstance(java.lang.String lBridgeAddr)` 获取TTSEngine
    `static TTSEngine` | `getInstanceSnapshot()` 获取 TTSEngine 实例快照
    `java.lang.String` | `getSpeaker()` 获取当前使用的合成音类型
    `float` | `getSpeed()` 获取当前使用的合成音语速
    `java.lang.String` | `getStyle()` 获取当前TTS人设
    `java.lang.String` | `getTtsAIConf()` 获取dui平台的tts配置
    `int` | `getVolume()` 获取当前使用的合成音音量
    `void` | `removeStyle()` 清除TTS人设 相对的api `setStyle(String)`
    `void` | `setCustomAudio(java.util.List<CustomAudioBean> customAudioList)` 设置自定义TTS播报录音的接口 调用此接口则表态配置的播报录音失效,以动态设置的为准
    `void` | `setListener(TTSEngine.Callback listener)` 设置TTS相关事件的监听
    `void` | `setListener(TTSEngine.CallbackOptimize listener)` 设置TTS相关事件的监听, 精减音频的回调
    `void` | `setMode(int mode)` 设置合成音为本地合成或者云端合成
    `void` | `setPlayAfterTime(int afterTime)` 设置TTS结束后延迟时间,单位ms
    `void` | `setSpeaker(java.lang.String speaker)` 设置TTS播报类型的接口 调用此接口则云端配置的合成音类型失效，此后的合成音类型都将由此接口来托管
    `void` | `setSpeaker(java.lang.String speaker, java.lang.String resPath)` 设置TTS播报类型的接口 调用此接口则云端配置的合成音类型失效，此后的合成音类型都将由此接口来托管
    `void` | `setSpeed(float speed)` 设置TTS播报语速的接口 调用此接口则云端配置的合成音语速失效，此后的合成音语速都将由此接口来托管
    `void` | `setStreamType(int streamType)` 设置TTS播报的通道
    `void` | `setStyle(java.lang.String style)` 设置TTS人设 相对的api `removeStyle()`
    `void` | `setUsage(int usage, int contentType)` 设置TTS播报的通道
    `void` | `setVolume(int volume)` 设置TTS播报音量的接口 调用此接口则云端配置的合成音音量失效，此后的合成音音量都将由此接口来托管
    `void` | `shutup(java.lang.String ttsId)` 停止播报接口 当DDSConfig.K_TTS_MODE设置为"external"时，该接口无效，请直接调用外部TTS引擎的对应接口。
    `void` | `speak(java.lang.String text, int priority)` 播报文本，支持SSML 当DDSConfig.K_TTS_MODE设置为"external"时，该接口无效，请直接调用外部TTS引擎的对应接口。
    `void` | `speak(java.lang.String text, int priority, java.lang.String type)` 播报文本，支持SSML 当DDSConfig.K_TTS_MODE设置为"external"时，该接口无效，请直接调用外部TTS引擎的对应接口。
    `void` | `speak(java.lang.String text, int priority, java.lang.String ttsId, int audioFocus)` 播报文本，支持SSML 当DDSConfig.K_TTS_MODE设置为"external"时，该接口无效，请直接调用外部TTS引擎的对应接口。
    `void` | `speak(java.lang.String text, int priority, java.lang.String ttsId, int audioFocus, java.lang.String type)` 播报文本，支持SSML 当DDSConfig.K_TTS_MODE设置为"external"时，该接口无效，请直接调用外部TTS引擎的对应接口。

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

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

- - ### 字段详细资料

    - #### LOCAL

          public static final int LOCAL

      另请参阅:
        常量字段值

    - #### CLOUD

          public static final int CLOUD

      另请参阅:
        常量字段值

    - #### TEXT

          public static final java.lang.String TEXT

      另请参阅:
        常量字段值

    - #### SSML

          public static final java.lang.String SSML

      另请参阅:
        常量字段值

  - ### 构造器详细资料

    - #### TTSEngine

          protected TTSEngine(java.lang.String lBridgeAddr)

  - ### 方法详细资料

    - #### getInstance

          public static TTSEngine getInstance()

      获取TTSEngine
      返回:
        TTSEngine实例

    - #### getInstance

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

      获取TTSEngine
      参数:
        `lBridgeAddr` - 指定busserver地址
      返回:
        TTSEngine实例

    - #### getInstanceSnapshot

          public static TTSEngine getInstanceSnapshot()

      获取 TTSEngine 实例快照
      返回:
        TTSEngine

    - #### setListener

          public void setListener(TTSEngine.Callback listener)
                           throws DDSNotInitCompleteException

      设置TTS相关事件的监听
      参数:
        `listener` - 回调各事件
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### setListener

          public void setListener(TTSEngine.CallbackOptimize listener)
                           throws DDSNotInitCompleteException

      设置TTS相关事件的监听, 精减音频的回调
      参数:
        `listener` - 回调各事件
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### speak

          public void speak(java.lang.String text,
                            int priority)
                     throws DDSNotInitCompleteException

      播报文本，支持SSML

      当DDSConfig.K_TTS_MODE设置为"external"时，该接口无效，请直接调用外部TTS引擎的对应接口。

      参数:
        `text` - 播报文本
        `priority` - 优先级
        - 优先级0-保留，与aios语音交互同级，仅限内部使用
        - 优先级1-正常，默认选项，同级按序播放
        - 优先级2-重要，可以插话优先级1，同级按序播放，播报完毕后继续播报刚才被插话的优先级1
        - 优先级3-紧急，可以打断优先级1或优先级2，同级按序播放，播报完毕后播报下一句优先级2
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### speak

          public void speak(java.lang.String text,
                            int priority,
                            java.lang.String type)
                     throws DDSNotInitCompleteException

      播报文本，支持SSML

      当DDSConfig.K_TTS_MODE设置为"external"时，该接口无效，请直接调用外部TTS引擎的对应接口。

      参数:
        `text` - 播报文本
        `priority` - 优先级
        `type` - 文本的类型，`TEXT` or `SSML`
        - 优先级0-保留，与aios语音交互同级，仅限内部使用
        - 优先级1-正常，默认选项，同级按序播放
        - 优先级2-重要，可以插话优先级1，同级按序播放，播报完毕后继续播报刚才被插话的优先级1
        - 优先级3-紧急，可以打断优先级1或优先级2，同级按序播放，播报完毕后播报下一句优先级2
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### speak

          public void speak(java.lang.String text,
                            int priority,
                            java.lang.String ttsId,
                            int audioFocus)
                     throws DDSNotInitCompleteException

      播报文本，支持SSML

      当DDSConfig.K_TTS_MODE设置为"external"时，该接口无效，请直接调用外部TTS引擎的对应接口。

      参数:
        `text` - 播报文本
        `priority` - 优先级
        - 优先级0-保留，与aios语音交互同级，仅限内部使用；
        - 优先级1-正常，默认选项，同级按序播放；
        - 优先级2-重要，可以插话优先级1，同级按序播放，播报完毕后继续播报刚才被插话的优先级1
        - 优先级3-紧急，可以打断优先级1或优先级2，同级按序播放，播报完毕后播报下一句优先级2
        `ttsId` - 用于追踪该次播报的id，建议使用UUID.
        `audioFocus` - 该次播报的音频焦
        - priority == 0 `AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE`
        - priority != 0 `AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK`
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### speak

          public void speak(java.lang.String text,
                            int priority,
                            java.lang.String ttsId,
                            int audioFocus,
                            java.lang.String type)
                     throws DDSNotInitCompleteException

      播报文本，支持SSML

      当DDSConfig.K_TTS_MODE设置为"external"时，该接口无效，请直接调用外部TTS引擎的对应接口。

      参数:
        `text` - 播报文本
        `priority` - 优先级
        - 优先级0-保留，与aios语音交互同级，仅限内部使用；
        - 优先级1-正常，默认选项，同级按序播放；
        - 优先级2-重要，可以插话优先级1，同级按序播放，播报完毕后继续播报刚才被插话的优先级1
        - 优先级3-紧急，可以打断优先级1或优先级2，同级按序播放，播报完毕后播报下一句优先级2
        `ttsId` - 用于追踪该次播报的id，建议使用UUID.
        `audioFocus` - 该次播报的音频焦
        `type` - 文本的类型，`TEXT` or `SSML`
        - priority == 0 `AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE`
        - priority != 0 `AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK`
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### shutup

          public void shutup(java.lang.String ttsId)
                      throws DDSNotInitCompleteException

      停止播报接口

      当DDSConfig.K_TTS_MODE设置为"external"时，该接口无效，请直接调用外部TTS引擎的对应接口。

      参数:
        `ttsId` - 和 `speak(String, int, String, int)` ttsId.一致 ttsId与speak接口的ttsId一致，则停止或者移除该播报; ttsId为空， 停止所有播报; ttsId为"0"，停止当前播报.
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### setSpeaker

          public void setSpeaker(java.lang.String speaker)
                          throws DDSNotInitCompleteException

      设置TTS播报类型的接口

      调用此接口则云端配置的合成音类型失效，此后的合成音类型都将由此接口来托管

      参数:
        `speaker` - 取值如：zhilingf, gdgm等，若取为null，则表示随机改为一个不同的类型
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### setSpeaker

          public void setSpeaker(java.lang.String speaker,
                                 java.lang.String resPath)
                          throws DDSNotInitCompleteException

      设置TTS播报类型的接口

      调用此接口则云端配置的合成音类型失效，此后的合成音类型都将由此接口来托管

      参数:
        `speaker` - 取值如：zhilingf, gdgm等，若取为null，则表示随机改为一个不同的类型
        `resPath` - 合成资源的全路径: sdcard/aispeech/gdgm.bin
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### setStyle

          public void setStyle(java.lang.String style)
                        throws DDSNotInitCompleteException

      设置TTS人设 相对的api `removeStyle()`
      参数:
        `style` - 风格，humor:幽默;calm:沉稳;common:普通;简短:short;
      抛出:
        `DDSNotInitCompleteException`

    - #### removeStyle

          public void removeStyle()
                           throws DDSNotInitCompleteException

      清除TTS人设 相对的api `setStyle(String)`
      抛出:
        `DDSNotInitCompleteException`

    - #### setCustomAudio

          public void setCustomAudio(java.util.List<CustomAudioBean> customAudioList)
                              throws DDSNotInitCompleteException

      设置自定义TTS播报录音的接口

      调用此接口则表态配置的播报录音失效,以动态设置的为准

      参数:
        `customAudioList` - 取值如：自定义播报音频列表
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### getCustomAudio

          public java.util.List<CustomAudioBean> getCustomAudio()
                                                         throws DDSNotInitCompleteException

      获取自定义TTS播报录音的接口

      返回:
        自定义TTS播报录音
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### setVolume

          public void setVolume(int volume)
                         throws DDSNotInitCompleteException

      设置TTS播报音量的接口

      调用此接口则云端配置的合成音音量失效，此后的合成音音量都将由此接口来托管

      参数:
        `volume` - 音量大小，取值1-100
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### getTtsAIConf

          public java.lang.String getTtsAIConf()

      获取dui平台的tts配置
      返回:
        {"speaker":"zhilingf","volume":50,"type":"mode","speed":0.85}

    - #### setSpeed

          public void setSpeed(float speed)
                        throws DDSNotInitCompleteException

      设置TTS播报语速的接口

      调用此接口则云端配置的合成音语速失效，此后的合成音语速都将由此接口来托管

      参数:
        `speed` - 语速，取值0.5-2.0，0.5语速最快，2.0语速最慢
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### getStyle

          public java.lang.String getStyle()
                                    throws DDSNotInitCompleteException

      获取当前TTS人设
      返回:
        String 当前 TTS 人设的类型
      抛出:
        `DDSNotInitCompleteException`

    - #### getSpeaker

          public java.lang.String getSpeaker()
                                      throws DDSNotInitCompleteException

      获取当前使用的合成音类型

      返回:
        String 当前使用的合成音类型,如："zhilingf",获取失败返回null
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### getSpeed

          public float getSpeed()
                         throws DDSNotInitCompleteException

      获取当前使用的合成音语速

      返回:
        float 当前合成音语速，返回值0.5-2.0，0.5语速最快，2.0语速最慢，获取失败返回 0
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### getVolume

          public int getVolume()
                        throws DDSNotInitCompleteException

      获取当前使用的合成音音量

      返回:
        int 当前合成音音量,返回值1-100,获取失败返回 0
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### setMode

          public void setMode(int mode)
                       throws DDSNotInitCompleteException

      设置合成音为本地合成或者云端合成
      参数:
        `mode` - 取值 TTSEngine.LOCAL(本地合成) TTSEngine.CLOUD(云端合成)
      抛出:
        `DDSNotInitCompleteException` - 如果DDS没有初始化完成，会抛出exception

    - #### enableFocus

          public void enableFocus(boolean enable)
                           throws DDSNotInitCompleteException

      设备抢焦点,默认为抢焦点
      参数:
        `enable` - true/false true: 抢焦点 false: 不抢焦点
      抛出:
        `DDSNotInitCompleteException`

    - #### setPlayAfterTime

          public void setPlayAfterTime(int afterTime)
                                throws DDSNotInitCompleteException

      设置TTS结束后延迟时间,单位ms
      参数:
        `afterTime` -
      抛出:
        `DDSNotInitCompleteException`

    - #### setStreamType

          public void setStreamType(int streamType)
                             throws DDSNotInitCompleteException

      设置TTS播报的通道
      参数:
        `streamType` -
      抛出:
        `DDSNotInitCompleteException`

    - #### setUsage

          public void setUsage(int usage,
                               int contentType)
                        throws DDSNotInitCompleteException

      设置TTS播报的通道
      参数:
        `usage` - 取值: AudioAttributes.USAGE_*
        `contentType` - 取值: AudioAttributes.CONTENT_TYPE_*
      抛出:
        `DDSNotInitCompleteException`

    - #### destroy

          public void destroy()