资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

输入参数和输出回调

离线及在线选择

int initTts(TtsMode ttsMode);

初始化tts引擎,可以指定纯在线,离在线混合引擎,纯离线引擎。

  • TtsMode.ONLINE 纯在线。断网即不可使用。
  • TtsMode.MIX 离在线混合。 断网或者网络请求超时使用离线。
  • TtsMode.OFFLINE 纯离线。 任意网络状态都可以使用。

网络状况及离线合成引擎

合成参数

在SpeechSynthesizer类中setParam 方法中使用的参数及值。 填入的值如果不在范围内,相当于没有填写使用默认值。

参数名 类型,值 在线/离线生效 常用程度 解释
PARAM_SPEAKER(基础发音人) 选项 在线 常用 仅在线生效,在线的发音
~ "0"(默认) ~ ~ 度小美(普通女声)
~ "1" ~ ~ 度小宇(成熟男声)
~ "3" ~ ~ 度逍遥(磁性男声)
~ "4" ~ ~ 度丫丫(可爱女童)
PARAM_SPEAKER (精品发音人) "106" ~ ~ 度博文(情感男声)
~ "110" ~ ~ 度小童(情感儿童声)
~ "111" ~ ~ 度小萌(情感女声)
~ "103" ~ ~ 度米朵(情感儿童声)
~ "5" ~ ~ 度小娇(情感女声)
~ "5003" ~ ~ 精品度逍遥(磁性男声)
~ "5118" ~ ~ 度小鹿(甜美女声)
PARAM_VOLUME String, 默认"5" 全部 常用 在线及离线合成的音量 。范围["0" - "15"], 不支持小数。 "0" 最轻,"15" 最响(取值为0时为音量最小值,并非为无声)
PARAM_SPEED String, 默认"5" 全部 常用 在线及离线合成的语速 。范围["0" - "15"], 不支持小数。 "0" 最慢,"15" 最快(如需更高语速可提交需求工单或联系商务同学申请)
PARAM_PITCH String, 默认"5" 全部 常用 在线及离线合成的语调 。范围["0" - "15"], 不支持小数。 "0" 最低沉, "15" 最尖
PARAM_MIX_MODE 选项 全部 常用 控制何种网络状况切换到离线。设置initTts(SpeechSynthesizer.PARAM_MIX_MODE)后,该参数生效。
~ MIXMODE
DEFAULT(默认)
~ ~ WIFI 使用在线合成,非WIFI使用离线合成
~ MIX_MODE_HIGH
_SPEED_NETWORK
~ ~ WIFI,4G,3G 使用在线合成,其他使用离线合成
~ MIXMODE_HIGH
_SPEED

SYNTHESIZE
~ ~ 同MIX_MODE_HIGH_SPEED_NETWORK。但是连接百度服务器超时1.2s后,自动切换离线合成引擎
~ MIXMODE_HIGH
SPEED_SYNTHESIZE
_WIFI
~ ~ 同 MIX_MODE_DEFAULT。 但是连接百度服务器超时1.2s后,自动切换离线合成引擎
PARAM_MIX_MODE_TIMEOUT
(MIX模式下生效)
选项 离在线混合模式 不常用 离在线模式,强制在线优先。在线请求后超时xx秒后,转为离线合成。
~ PARAM_MIX_TIMEOUT_FOUR_SECOND 默认 ~ 默认值,在线请求后超时4秒后,转为离线合成。
~ PARAM_MIX_TIMEOUT_THREE_SECOND 默认值 ~ 默认值,在线请求后超时3秒后,转为离线合成。
~ PARAM_MIX_TIMEOUT_TWO_SECOND 默认值 ~ 默认值,在线请求后超时2秒后,转为离线合成。
PARAM_TTS_TEXT
_MODEL_FILE
String , 文件路径 离线 常用 文本模型文件路径,即bd_etts_text.dat所在的路径。
PARAM_TTS_SPEECH
_MODEL_FILE
String , 文件路径 离线 常用 声学模型文件路径。即"bd_etts_speech_female.dat“所在的路径。需要男声,请使用bd_etts_speech_male.dat。
PARAM_AUDIO
_ENCODE
选项 在线 基本不用 不使用改参数即可。SDK与服务器音频传输格式,与 PARAMAUDIO_RATE参数一起使用。可选值为SpeechSynthesizer.AUDIO_ENCODE*, 其中SpeechSynthesizer.AUDIO_ENCODE_PCM为不压缩
PARAM_AUDIO
_RATE
选项 在线 基本不用 不使用改参数即可。SDK与服务器音频传输格式,与 PARAMAUDIO_ENCODE参数一起使用。可选值为SpeechSynthesizer.AUDIO_BITRATE*, 其中SpeechSynthesizer.AUDIO_BITRATE_PCM 为不压缩传输
PARAMVOCODER
OPTIM_LEVEL
选项, 默认"0" 离线 基本不用 离线合成引擎速度优化等级。取值范围["0", "2"],值越大速度越快,但是效果越差
PARAMTTS
LICENCE_FILE
String , 文件路径 离线 基本不用 临时授权文件。目前SDK会自动下载正式授权文件。正式授权文件有效期3年,并在最后一个月SDK自动更新下载授权文件。

输出回调接口

SpeechSynthesizerListener 中,SDK会根据合成的状态及数据调用这个接口中的不同方法。

SDK使用的是边获取合成结果,边播放的方式。因此合成,播放的回调会交替进行。使用speak方法时,都会产生合成和播放的回调。 如果使用synthesize方法,则只会产生合成的回调,需要用户自行处理onSynthesizeDataArrived中的audioData的音频数据。

其中回调方法中的utteranceId是调用speak或者synthesize合成方法时输入的,默认是"0"。

合成开始

本次合成过程开始时,SDK的回调

void onSynthesizeStart (String utteranceId);

合成过程中的数据回调接口

合成数据过程中的回调接口,返回合成数据和进度,分多次回调。

 void onSynthesizeDataArrived(String utteranceId, byte[] audioData, int progress, int engineType);
  • audioData: 合成的部分数据,可以就这部分数据自行播放或者顺序保存到文件。如果保存到文件的话,是一个pcm可以播放的音频文件。 音频数据是16K采样率,16bits编码,单声道。
  • progress 大致进度。从0 到 “合成文本的字符数”。
  • engineType 1: 当前的audioData数据由离线引擎合成; 0:当前的audioData数据数据由在线引擎(百度服务器)合成。

合成结束

本次合成正常结束状态时,SDK的回调

 void onSynthesizeFinish (String utteranceId);

播放开始

SDK开始控制播放器播放合成的声音。如果使用speak方法会有此回调,使用synthesize没有。

void onSpeechStart (String utteranceId);

播放过程中的回调

播放数据过程中的回调接口,分多次回调。 如果使用speak方法会有此回调,使用synthesize没有。

void onSpeechProgressChanged(String utteranceId, int progress);
  • progress 大致进度。从0 到 “合成文本的字符数”。

播放结束

播放正常结束状态时的回调方法,如果过程中出错,则回调onError,不再回调此接口。

 void onSpeechFinish (String utteranceId);

合成和播放过程中出错时的回调

合成和播放过程中出错时回调此接口

onError(String utteranceId,SpeechError error);

SpeechError 类有2个值:

  • code:int,错误码。 具体错误码见“错误码及解决方法”一节
  • description: String,具体的错误信息。
上一篇
接口及调用过程
下一篇
离线合成 IOS-SDK