com.baidu.tts.client
Class SpeechSynthesizer

java.lang.Object
  extended by com.baidu.tts.client.SpeechSynthesizer

public class SpeechSynthesizer
extends java.lang.Object

Author:
liweigao 2015年7月30日

Field Summary
static java.lang.String AUDIO_BITRATE_AMR_12K65
          amr 12.65k比特率
static java.lang.String AUDIO_BITRATE_AMR_14K25
          amr 14.25k比特率
static java.lang.String AUDIO_BITRATE_AMR_15K85
          amr 15.85k比特率
static java.lang.String AUDIO_BITRATE_AMR_18K25
          amr 18.25k比特率
static java.lang.String AUDIO_BITRATE_AMR_19K85
          amr 19.85k比特率
static java.lang.String AUDIO_BITRATE_AMR_23K05
          amr 23.05k比特率
static java.lang.String AUDIO_BITRATE_AMR_23K85
          amr 23.85k比特率
static java.lang.String AUDIO_BITRATE_AMR_6K6
          amr 6.6k比特率
static java.lang.String AUDIO_BITRATE_AMR_8K85
          amr 8.85k比特率
static java.lang.String AUDIO_BITRATE_BV_16K
          bv 16k比特率
static java.lang.String AUDIO_BITRATE_OPUS_16K
          opus 16k比特率
static java.lang.String AUDIO_BITRATE_OPUS_18K
          opus 18k比特率
static java.lang.String AUDIO_BITRATE_OPUS_20K
          opus 20k比特率
static java.lang.String AUDIO_BITRATE_OPUS_24K
          opus 24k比特率
static java.lang.String AUDIO_BITRATE_OPUS_32K
          opus 32k比特率
static java.lang.String AUDIO_BITRATE_OPUS_8K
          opus 8k比特率
static java.lang.String AUDIO_ENCODE_AMR
          amr压缩
static java.lang.String AUDIO_ENCODE_BV
          bv压缩
static java.lang.String AUDIO_ENCODE_OPUS
          opus压缩
static int ERROR_APP_ID_IS_INVALID
          错误码:appId是无效的,应该为整数
static int ERROR_LIST_IS_TOO_LONG
          错误码:list的长度过长,list的size小于MAX_LIST_SIZE时才有效
static int ERROR_QUEUE_IS_FULL
          错误码:合成缓存队列已满,队列长度小于MAX_QUEUE_SIZE时才能加入合成队列
static int ERROR_TEXT_ENCODE_IS_WRONG
          错误码: 文本编码错误
static int ERROR_TEXT_IS_EMPTY
          错误码:文本参数为空
static int ERROR_TEXT_IS_TOO_LONG
          错误码: 文本长度过长
static java.lang.String LANGUAGE_ZH
          中文普通话
static int MAX_LIST_SIZE
          batchSpeak的list参数的最大长度
static int MAX_QUEUE_SIZE
          合成队列最大长度
static java.lang.String MIX_MODE_DEFAULT
          mix模式下,wifi使用在线合成,非wifi使用离线合成
static java.lang.String MIX_MODE_HIGH_SPEED_NETWORK
          mix模式下,wifi,4G,3G使用在线合成,其他使用离线合成
static java.lang.String MIX_MODE_HIGH_SPEED_SYNTHESIZE
          mix模式下,wifi,4G,3G使用在线合成情况下,返回速度如果慢(超时,一般为1.2秒)直接切换离线,适用于网络环境较差的情况
static java.lang.String MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI
           
static java.lang.String PARAM_AUDIO_ENCODE
          音频格式,支持bv,amr,opus,可用参数:AUDIO_ENCODE_BVAUDIO_ENCODE_AMRAUDIO_ENCODE_OPUS (在线引擎)
static java.lang.String PARAM_AUDIO_RATE
          音频比特率,不同的音频格式支持的比特率不同 (在线引擎) AUDIO_ENCODE_BV可用比特率 :AUDIO_BITRATE_BV_16K.
static java.lang.String PARAM_CUSTOM_SYNTH
          是否使用自定义的语料,使用传入参数值"1",不使用传入参数值"0" 自定义语料需要通过loadCustomResource(String) 方法加载(离线引擎)
static java.lang.String PARAM_LANGUAGE
          语言类型,当前支持ZH(中文)和EN(英文),(在线引擎)
static java.lang.String PARAM_MIX_MODE
          混合策略,可用参数MIX_MODE_DEFAULT,MIX_MODE_HIGH_SPEED_NETWORK
static java.lang.String PARAM_OPEN_XML
          是否对文本进行xml解析(离线引擎)
static java.lang.String PARAM_PITCH
          音调,取值范围0-9
static java.lang.String PARAM_PRODUCT_ID
          认证参数,产品id,与apiKey和secretKey二选一,PID优先(在线引擎)
static java.lang.String PARAM_SPEAKER
          发音人(在线引擎),可用参数为0,1,2,3。。。(服务器端会动态增加,各值含义参考文档,以文档说明为准。0--普通女声,1--普通男声,2--特别男声,3--情感男声。。。)
static java.lang.String PARAM_SPEED
          朗读语速,取值范围0-9
static java.lang.String PARAM_TEXT_ENCODE
          文本编码格式,可用参数:TEXT_ENCODE_BIG5,TEXT_ENCODE_GBK,TEXT_ENCODE_UTF8
static java.lang.String PARAM_TTS_LICENCE_FILE
          本地授权文件路径(离线引擎)
static java.lang.String PARAM_TTS_SPEECH_MODEL_FILE
          声学模型文件路径
static java.lang.String PARAM_TTS_TEXT_MODEL_FILE
          文本模型文件路径
static java.lang.String PARAM_VOCODER_OPTIM_LEVEL
          合成引擎速度优化等级,取值范围[0, 2],值越大速度越快(离线引擎)
static java.lang.String PARAM_VOLUME
          音量,取值范围0-9
static java.lang.String TEXT_ENCODE_BIG5
          BIG5编码
static java.lang.String TEXT_ENCODE_GBK
          GBK编码
static java.lang.String TEXT_ENCODE_UTF8
          UTF8编码
 
Method Summary
 AuthInfo auth(TtsMode ttsMode)
          授权验证接口,可以根据AuthInfo得到验证结果,mix引擎只要离线或者在线任何一个验证成功都算成功
 int batchSpeak(java.util.List<SpeechSynthesizeBag> speechSynthesizeBags)
          批量speak功能,一次可传入一个list,该list将会按顺序合成播放,如果未设置utteranceId,则默认使用list的index作为utteranceId
 int freeCustomResource()
          释放离线自定义模型文件资源(仅离线引擎可用)
static SpeechSynthesizer getInstance()
          获取引擎实例
 int initTts(TtsMode ttsMode)
          初始化tts引擎,可以指定使用online在线,或者mix离在线混合引擎.
 java.lang.String libVersion()
          获取版本信息(包括jar包版本和离线引擎版本)
 int loadCustomResource(java.lang.String customModelPath)
          加载离线自定义模型文件(仅离线引擎可用)
 int loadEnglishModel(java.lang.String englishTextModelPath, java.lang.String englishSpeechModelPath)
          加载英文模型文件(必须在tts初始化后才能调用,仅离线引擎可用)
 int loadModel(java.lang.String speechModelPath, java.lang.String textModelPath)
          加载离线模型文件(前端和后端模型,仅离线引擎可用)
 int pause()
          暂停tts当前的任务,可以用resume来恢复
 int release()
          释放tts资源,如果有未完成的任务,会先停止所有的任务,后释放资源
 int resume()
          恢复暂停时tts的任务,如果未暂停,此操作无任何影响
 int setApiKey(java.lang.String apiKey, java.lang.String secretKey)
          设置在线授权所需要的apiKey和secretKey,关系到在线合成是否可以正常使用
 int setAppId(java.lang.String appId)
          设置离线授权所需要的appId,关系到离线合成是否可以正常使用
 int setAudioStreamType(int streamType)
          设置播放器的音频流类型
 void setContext(Context context)
          设置context
 int setParam(java.lang.String key, java.lang.String value)
          设置tts的参数
 void setSpeechSynthesizerListener(SpeechSynthesizerListener speechSynthesizerListener)
          设置tts监听器,回调合成和播放进度以及错误信息
 int setStereoVolume(float leftVolume, float rightVolume)
          设置播放器的音量衰减,范围【0.0f-1.0f】,0.0f时为静音
 int speak(SpeechSynthesizeBag speechSynthesizeBag)
          可排队的speak功能,utteranceId如果未设置则使用默认值
 int speak(java.lang.String text)
          可排队的speak功能,utteranceId使用默认值
 int speak(java.lang.String text, java.lang.String utteranceId)
          可排队的speak功能,utteranceId为该次表达的标识
 int speak(java.lang.String text, java.lang.String utteranceId, Bundle params)
          可排队的speak功能,utteranceId为该次表达的标识,params为扩展参数(暂时没有作用)
 int stop()
          停止tts的所有任务,也会清空所有的排队任务
 int synthesize(SpeechSynthesizeBag speechSynthesizeBag)
          可排队的synthesize功能,utteranceId如果未设置则使用默认值
 int synthesize(java.lang.String text)
          可排队的synthesize功能,utteranceId使用默认值
 int synthesize(java.lang.String text, java.lang.String utteranceId)
          可排队的synthesize功能,utteranceId为该次表达的标识
 int synthesize(java.lang.String text, java.lang.String utteranceId, Bundle params)
          可排队的synthesize功能,utteranceId为该次表达的标识,params为扩展参数(暂时没有作用)
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ERROR_QUEUE_IS_FULL

public static final int ERROR_QUEUE_IS_FULL
错误码:合成缓存队列已满,队列长度小于MAX_QUEUE_SIZE时才能加入合成队列


ERROR_LIST_IS_TOO_LONG

public static final int ERROR_LIST_IS_TOO_LONG
错误码:list的长度过长,list的size小于MAX_LIST_SIZE时才有效


ERROR_TEXT_IS_EMPTY

public static final int ERROR_TEXT_IS_EMPTY
错误码:文本参数为空


ERROR_TEXT_IS_TOO_LONG

public static final int ERROR_TEXT_IS_TOO_LONG
错误码: 文本长度过长


ERROR_TEXT_ENCODE_IS_WRONG

public static final int ERROR_TEXT_ENCODE_IS_WRONG
错误码: 文本编码错误


ERROR_APP_ID_IS_INVALID

public static final int ERROR_APP_ID_IS_INVALID
错误码:appId是无效的,应该为整数


MAX_QUEUE_SIZE

public static final int MAX_QUEUE_SIZE
合成队列最大长度

See Also:
Constant Field Values

MAX_LIST_SIZE

public static final int MAX_LIST_SIZE
batchSpeak的list参数的最大长度

See Also:
Constant Field Values

PARAM_SPEED

public static final java.lang.String PARAM_SPEED
朗读语速,取值范围0-9


PARAM_PITCH

public static final java.lang.String PARAM_PITCH
音调,取值范围0-9


PARAM_VOLUME

public static final java.lang.String PARAM_VOLUME
音量,取值范围0-9


PARAM_TTS_TEXT_MODEL_FILE

public static final java.lang.String PARAM_TTS_TEXT_MODEL_FILE
文本模型文件路径


PARAM_TTS_SPEECH_MODEL_FILE

public static final java.lang.String PARAM_TTS_SPEECH_MODEL_FILE
声学模型文件路径


PARAM_TTS_LICENCE_FILE

public static final java.lang.String PARAM_TTS_LICENCE_FILE
本地授权文件路径(离线引擎)


PARAM_VOCODER_OPTIM_LEVEL

public static final java.lang.String PARAM_VOCODER_OPTIM_LEVEL
合成引擎速度优化等级,取值范围[0, 2],值越大速度越快(离线引擎)


PARAM_CUSTOM_SYNTH

public static final java.lang.String PARAM_CUSTOM_SYNTH
是否使用自定义的语料,使用传入参数值"1",不使用传入参数值"0" 自定义语料需要通过loadCustomResource(String) 方法加载(离线引擎)


PARAM_OPEN_XML

public static final java.lang.String PARAM_OPEN_XML
是否对文本进行xml解析(离线引擎)


PARAM_PRODUCT_ID

public static final java.lang.String PARAM_PRODUCT_ID
认证参数,产品id,与apiKey和secretKey二选一,PID优先(在线引擎)


PARAM_LANGUAGE

public static final java.lang.String PARAM_LANGUAGE
语言类型,当前支持ZH(中文)和EN(英文),(在线引擎)


PARAM_TEXT_ENCODE

public static final java.lang.String PARAM_TEXT_ENCODE
文本编码格式,可用参数:TEXT_ENCODE_BIG5,TEXT_ENCODE_GBK,TEXT_ENCODE_UTF8


PARAM_AUDIO_ENCODE

public static final java.lang.String PARAM_AUDIO_ENCODE
音频格式,支持bv,amr,opus,可用参数:AUDIO_ENCODE_BVAUDIO_ENCODE_AMRAUDIO_ENCODE_OPUS (在线引擎)


PARAM_AUDIO_RATE

public static final java.lang.String PARAM_AUDIO_RATE
音频比特率,不同的音频格式支持的比特率不同 (在线引擎) AUDIO_ENCODE_BV可用比特率 :AUDIO_BITRATE_BV_16K. AUDIO_ENCODE_AMR可用比特率: AUDIO_BITRATE_AMR_6K6,AUDIO_BITRATE_AMR_8K85, AUDIO_BITRATE_AMR_12K65,AUDIO_BITRATE_AMR_14K25,AUDIO_BITRATE_AMR_15K85, AUDIO_BITRATE_AMR_18K25,AUDIO_BITRATE_AMR_19K85,AUDIO_BITRATE_AMR_23K05, AUDIO_BITRATE_AMR_23K85. AUDIO_ENCODE_OPUS可用比特率 :AUDIO_BITRATE_OPUS_8K, AUDIO_BITRATE_OPUS_16K,AUDIO_BITRATE_OPUS_18K,AUDIO_BITRATE_OPUS_20K, AUDIO_BITRATE_OPUS_24K,AUDIO_BITRATE_OPUS_32K.


PARAM_SPEAKER

public static final java.lang.String PARAM_SPEAKER
发音人(在线引擎),可用参数为0,1,2,3。。。(服务器端会动态增加,各值含义参考文档,以文档说明为准。0--普通女声,1--普通男声,2--特别男声,3--情感男声。。。)


PARAM_MIX_MODE

public static final java.lang.String PARAM_MIX_MODE
混合策略,可用参数MIX_MODE_DEFAULT,MIX_MODE_HIGH_SPEED_NETWORK


MIX_MODE_DEFAULT

public static final java.lang.String MIX_MODE_DEFAULT
mix模式下,wifi使用在线合成,非wifi使用离线合成


MIX_MODE_HIGH_SPEED_NETWORK

public static final java.lang.String MIX_MODE_HIGH_SPEED_NETWORK
mix模式下,wifi,4G,3G使用在线合成,其他使用离线合成


MIX_MODE_HIGH_SPEED_SYNTHESIZE

public static final java.lang.String MIX_MODE_HIGH_SPEED_SYNTHESIZE
mix模式下,wifi,4G,3G使用在线合成情况下,返回速度如果慢(超时,一般为1.2秒)直接切换离线,适用于网络环境较差的情况


MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI

public static final java.lang.String MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI

LANGUAGE_ZH

public static final java.lang.String LANGUAGE_ZH
中文普通话


TEXT_ENCODE_GBK

public static final java.lang.String TEXT_ENCODE_GBK
GBK编码


TEXT_ENCODE_BIG5

public static final java.lang.String TEXT_ENCODE_BIG5
BIG5编码


TEXT_ENCODE_UTF8

public static final java.lang.String TEXT_ENCODE_UTF8
UTF8编码


AUDIO_ENCODE_BV

public static final java.lang.String AUDIO_ENCODE_BV
bv压缩


AUDIO_ENCODE_AMR

public static final java.lang.String AUDIO_ENCODE_AMR
amr压缩


AUDIO_ENCODE_OPUS

public static final java.lang.String AUDIO_ENCODE_OPUS
opus压缩


AUDIO_BITRATE_BV_16K

public static final java.lang.String AUDIO_BITRATE_BV_16K
bv 16k比特率


AUDIO_BITRATE_AMR_6K6

public static final java.lang.String AUDIO_BITRATE_AMR_6K6
amr 6.6k比特率


AUDIO_BITRATE_AMR_8K85

public static final java.lang.String AUDIO_BITRATE_AMR_8K85
amr 8.85k比特率


AUDIO_BITRATE_AMR_12K65

public static final java.lang.String AUDIO_BITRATE_AMR_12K65
amr 12.65k比特率


AUDIO_BITRATE_AMR_14K25

public static final java.lang.String AUDIO_BITRATE_AMR_14K25
amr 14.25k比特率


AUDIO_BITRATE_AMR_15K85

public static final java.lang.String AUDIO_BITRATE_AMR_15K85
amr 15.85k比特率


AUDIO_BITRATE_AMR_18K25

public static final java.lang.String AUDIO_BITRATE_AMR_18K25
amr 18.25k比特率


AUDIO_BITRATE_AMR_19K85

public static final java.lang.String AUDIO_BITRATE_AMR_19K85
amr 19.85k比特率


AUDIO_BITRATE_AMR_23K05

public static final java.lang.String AUDIO_BITRATE_AMR_23K05
amr 23.05k比特率


AUDIO_BITRATE_AMR_23K85

public static final java.lang.String AUDIO_BITRATE_AMR_23K85
amr 23.85k比特率


AUDIO_BITRATE_OPUS_8K

public static final java.lang.String AUDIO_BITRATE_OPUS_8K
opus 8k比特率


AUDIO_BITRATE_OPUS_16K

public static final java.lang.String AUDIO_BITRATE_OPUS_16K
opus 16k比特率


AUDIO_BITRATE_OPUS_18K

public static final java.lang.String AUDIO_BITRATE_OPUS_18K
opus 18k比特率


AUDIO_BITRATE_OPUS_20K

public static final java.lang.String AUDIO_BITRATE_OPUS_20K
opus 20k比特率


AUDIO_BITRATE_OPUS_24K

public static final java.lang.String AUDIO_BITRATE_OPUS_24K
opus 24k比特率


AUDIO_BITRATE_OPUS_32K

public static final java.lang.String AUDIO_BITRATE_OPUS_32K
opus 32k比特率

Method Detail

getInstance

public static SpeechSynthesizer getInstance()
获取引擎实例

Returns:
引擎实例

setSpeechSynthesizerListener

public void setSpeechSynthesizerListener(SpeechSynthesizerListener speechSynthesizerListener)
设置tts监听器,回调合成和播放进度以及错误信息

Parameters:
speechSynthesizerListener - the speechSynthesizerListener to set

setContext

public void setContext(Context context)
设置context

Parameters:
context -

initTts

public int initTts(TtsMode ttsMode)
初始化tts引擎,可以指定使用online在线,或者mix离在线混合引擎. mix混合引擎会在online在线不能用的情况下自动使用offline离线引擎

Parameters:
ttsMode - 可以指定为online,mix
Returns:

libVersion

public java.lang.String libVersion()
获取版本信息(包括jar包版本和离线引擎版本)

Returns:
版本信息

setApiKey

public int setApiKey(java.lang.String apiKey,
                     java.lang.String secretKey)
设置在线授权所需要的apiKey和secretKey,关系到在线合成是否可以正常使用

Parameters:
apiKey - 开放平台注册app的apiKey
secretKey - 开放平台注册app的secretKey
Returns:

setAppId

public int setAppId(java.lang.String appId)
设置离线授权所需要的appId,关系到离线合成是否可以正常使用

Parameters:
appId - 开放平台注册app的appId
Returns:

setParam

public int setParam(java.lang.String key,
                    java.lang.String value)
设置tts的参数

Parameters:
key -
value -
Returns:

setAudioStreamType

public int setAudioStreamType(int streamType)
设置播放器的音频流类型

Parameters:
streamType -
Returns:

pause

public int pause()
暂停tts当前的任务,可以用resume来恢复

Returns:

resume

public int resume()
恢复暂停时tts的任务,如果未暂停,此操作无任何影响

Returns:

stop

public int stop()
停止tts的所有任务,也会清空所有的排队任务

Returns:

release

public int release()
释放tts资源,如果有未完成的任务,会先停止所有的任务,后释放资源

Returns:

loadCustomResource

public int loadCustomResource(java.lang.String customModelPath)
加载离线自定义模型文件(仅离线引擎可用)

Parameters:
customModelPath -
Returns:

freeCustomResource

public int freeCustomResource()
释放离线自定义模型文件资源(仅离线引擎可用)

Returns:

loadModel

public int loadModel(java.lang.String speechModelPath,
                     java.lang.String textModelPath)
加载离线模型文件(前端和后端模型,仅离线引擎可用)

Parameters:
speechModelPath -
textModelPath -
Returns:

loadEnglishModel

public int loadEnglishModel(java.lang.String englishTextModelPath,
                            java.lang.String englishSpeechModelPath)
加载英文模型文件(必须在tts初始化后才能调用,仅离线引擎可用)

Parameters:
englishTextModelPath -
englishSpeechModelPath -
Returns:

speak

public int speak(java.lang.String text)
可排队的speak功能,utteranceId使用默认值

Parameters:
text -
Returns:

speak

public int speak(SpeechSynthesizeBag speechSynthesizeBag)
可排队的speak功能,utteranceId如果未设置则使用默认值

Parameters:
speechSynthesizeBag -
Returns:

speak

public int speak(java.lang.String text,
                 java.lang.String utteranceId)
可排队的speak功能,utteranceId为该次表达的标识

Parameters:
text -
utteranceId -
Returns:

speak

public int speak(java.lang.String text,
                 java.lang.String utteranceId,
                 Bundle params)
可排队的speak功能,utteranceId为该次表达的标识,params为扩展参数(暂时没有作用)

Parameters:
text -
utteranceId -
params -
Returns:

synthesize

public int synthesize(java.lang.String text)
可排队的synthesize功能,utteranceId使用默认值

Parameters:
text -
Returns:

synthesize

public int synthesize(SpeechSynthesizeBag speechSynthesizeBag)
可排队的synthesize功能,utteranceId如果未设置则使用默认值

Parameters:
speechSynthesizeBag -
Returns:

synthesize

public int synthesize(java.lang.String text,
                      java.lang.String utteranceId)
可排队的synthesize功能,utteranceId为该次表达的标识

Parameters:
text -
utteranceId -
Returns:

synthesize

public int synthesize(java.lang.String text,
                      java.lang.String utteranceId,
                      Bundle params)
可排队的synthesize功能,utteranceId为该次表达的标识,params为扩展参数(暂时没有作用)

Parameters:
text -
utteranceId -
params -
Returns:

batchSpeak

public int batchSpeak(java.util.List<SpeechSynthesizeBag> speechSynthesizeBags)
批量speak功能,一次可传入一个list,该list将会按顺序合成播放,如果未设置utteranceId,则默认使用list的index作为utteranceId

Parameters:
texts -

auth

public AuthInfo auth(TtsMode ttsMode)
授权验证接口,可以根据AuthInfo得到验证结果,mix引擎只要离线或者在线任何一个验证成功都算成功

Parameters:
ttsMode, - 可以指定为online或者mix

setStereoVolume

public int setStereoVolume(float leftVolume,
                           float rightVolume)
设置播放器的音量衰减,范围【0.0f-1.0f】,0.0f时为静音

Parameters:
leftVolume -
rightVolume -
Returns: