类 TTSEngine


  • public class TTSEngine
    extends java.lang.Object
    Created by nemo on 17-12-13.
    • 字段概要

      字段 
      修饰符和类型 字段 说明
      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 mutePlayer()
      播放器静音
      void removeStyle()
      清除TTS人设 相对的api setStyle(String)
      void setCustomAudio​(java.util.List<CustomAudioBean> customAudioList)
      设置自定义TTS播报录音的接口
      void setGainType​(int gainType)  
      void setListener​(TTSEngine.Callback listener)
      设置TTS相关事件的监听
      void setListener​(TTSEngine.CallbackOptimize listener)
      设置TTS相关事件的监听, 精减音频的回调
      void setListenerByProcess​(TTSEngine.CallbackOptimize listener)
      设置TTS相关事件的监听, 精减音频的回调
      void setMode​(int mode)
      设置合成音为本地合成或者云端合成
      void setPhoneReturn​(boolean phoneReturn)
      设置TTS是否返回音素信息,因为历史遗留音素,会存在下列问题 部分音色会忽略音素设置,设置为true依旧不会返回信息,并抛出错误码72205, 如anonyg hbrinf hyanif lunaif_ctn lzyinf swkm zxcm zzxiangm等 部分音素支持返回音素, 如cyangfp dyb gdfanfp gqlanfp hthy jjingfp jlshim lanyuf lchuam lili1f_yubo lucyfa lzliafp madoufp_wenrou madoufp_yubo xbekef xijunma xjingfp xyb xynmamp ychanmp yhchu zhilingfp zhilingfp_huankuai zsmeif dksjif ybyuaf sqksaf zxiyum aningfp lmyanm wqingf_csn ppangf_csn hchunf_ctn mamif xmguof等 其余的音色不支持音素,不会返回音素信息,但是也不会抛出错误码
      void setPlayAfterTime​(int afterTime)
      设置TTS结束后延迟时间,单位ms
      void setSpeaker​(TTSEngine.TtsSpeakerRequestBean requestBean)
      设置TTS播报类型的接口
      void setSpeaker​(java.lang.String speaker)
      设置TTS播报类型的接口
      void setSpeaker​(java.lang.String speaker, java.lang.String resPath)
      设置TTS播报类型的接口
      void setSpeakerAndUserId​(java.lang.String speaker, java.lang.String userId)
      动态设置人声复刻的server地址和userId
      void setSpeakerSampleRate​(int sampleSize)
      设置TTS播报采样率,适配云端24K,默认云端不返回采样率
      void setSpeakerSampleRate​(int sampleSize, boolean syncCloud)
      设置TTS播报采样率,适配云端24K,默认云端不返回采样率
      void setSpeed​(float speed)
      设置TTS播报语速的接口
      void setStreamType​(int streamType)
      设置TTS播报的通道
      void setStyle​(java.lang.String style)
      设置TTS人设 相对的api removeStyle()
      void setTtsServer​(java.lang.String tts_server)
      动态设置 云端tts 合成地址
      void setUsage​(int usage, int contentType)
      设置TTS播报的通道
      void setVolume​(int volume)
      设置TTS播报音量的接口
      void shutup​(java.lang.String ttsId)
      停止播报接口
      void speak​(java.lang.String text, int priority)
      播报文本,支持SSML
      void speak​(java.lang.String text, int priority, java.lang.String type)
      播报文本,支持SSML
      void speak​(java.lang.String text, int priority, java.lang.String ttsId, int audioFocus)
      播报文本,支持SSML
      void speak​(java.lang.String text, int priority, java.lang.String ttsId, int audioFocus, java.lang.String type)
      播报文本,支持SSML
      void unmutePlayer()
      播放器恢复声音播放
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 构造器详细资料

      • TTSEngine

        protected TTSEngine​(java.lang.String lBridgeAddr)
    • 方法详细资料

      • getInstance

        public static TTSEngine getInstance​(java.lang.String lBridgeAddr)
        获取TTSEngine
        参数:
        lBridgeAddr - 指定busserver地址
        返回:
        TTSEngine实例
      • 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/zhilingf.bin
        抛出:
        DDSNotInitCompleteException - 如果DDS没有初始化完成,会抛出exception
      • setPhoneReturn

        public void setPhoneReturn​(boolean phoneReturn)
                            throws DDSNotInitCompleteException
        设置TTS是否返回音素信息,因为历史遗留音素,会存在下列问题 部分音色会忽略音素设置,设置为true依旧不会返回信息,并抛出错误码72205, 如anonyg hbrinf hyanif lunaif_ctn lzyinf swkm zxcm zzxiangm等 部分音素支持返回音素, 如cyangfp dyb gdfanfp gqlanfp hthy jjingfp jlshim lanyuf lchuam lili1f_yubo lucyfa lzliafp madoufp_wenrou madoufp_yubo xbekef xijunma xjingfp xyb xynmamp ychanmp yhchu zhilingfp zhilingfp_huankuai zsmeif dksjif ybyuaf sqksaf zxiyum aningfp lmyanm wqingf_csn ppangf_csn hchunf_ctn mamif xmguof等 其余的音色不支持音素,不会返回音素信息,但是也不会抛出错误码
        参数:
        phoneReturn - 音素开关;
        抛出:
        DDSNotInitCompleteException
      • setVolume

        public void setVolume​(int volume)
                       throws DDSNotInitCompleteException
        设置TTS播报音量的接口

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

        参数:
        volume - 音量大小,取值1-500
        抛出:
        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
      • getSpeed

        public float getSpeed()
                       throws DDSNotInitCompleteException
        获取当前使用的合成音语速

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