输入参数和输出回调
更新时间:2023-01-10
在线选择
int initTts(TtsMode ttsMode);
初始化tts引擎,指定纯在线引擎。
- TtsMode.ONLINE 纯在线。断网即不可使用。
网络状况及在线合成引擎:
合成参数
在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" 最响。 |
PARAM_SPEED | String, 默认"5" | 全部 | 常用 | 在线合成的语速 。范围["0" - "15"], 不支持小数。 "0" 最慢,"15" 最快 |
PARAM_PITCH | String, 默认"5" | 全部 | 常用 | 在线合成的语调 。范围["0" - "15"], 不支持小数。 "0" 最低沉, "15" 最尖 |
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 为不压缩传输 |
输出回调接口
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 ; 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, 具体的错误信息。