开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
图像技术
文字识别
人脸与人体识别
视频技术
AR与VR
自然语言处理
知识图谱
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
智能农业
信息服务
智能园区
智能硬件
语音技术

    输入参数和输出回调

    离线及在线选择

    int initTts(TtsMode ttsMode);

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

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

    网络状况及离线合成引擎:

    合成参数

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

    参数名 类型,值 在线/离线生效 常用程度 解释
    PARAM_SPEAKER 选项 在线 常用 仅在线生效,在线的发音
    ~ "0"(默认) ~ ~ 普通女声
    ~ "1" ~ ~ 普通男声
    ~ "3" ~ ~ 情感男声<度逍遥>
    ~ "4" ~ ~ 情感儿童声<度丫丫>
    ~ "106" ~ ~ 度博文(情感男声)
    ~ "110" ~ ~ 度小童(情感儿童声)
    ~ "111" ~ ~ 度小萌(情感女声)
    ~ "103" ~ ~ 度米朵(情感儿童声)
    ~ "5" ~ ~ 度小娇(情感女声)
    ~ "5118" ~ ~ 度小鹿
    ~ "5003" ~ ~ 度逍遥(精品)
    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 默认值 ~ 默认值,在线请求后超时4秒后,转为离线合成。
    ~ PARAM_MIX_TIMEOUT_TWO_SECOND 默认值 ~ 默认值,在线请求后超时4秒后,转为离线合成。
    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, 具体的错误信息。
    上一篇
    接口及调用过程
    下一篇
    错误码