百度语音离线TTS,有时候播放会出现卡顿现象
zheangrybear 发布于2017-08 浏览:5579 回复:3
0
收藏

我使用的服务是:离线TTS语音合成

调用的接口是:SpeechSynthesizer

参数设置情况:

mSpeechSynthesizer = SpeechSynthesizer.getInstance();

        mSpeechSynthesizer.setContext(WSApplication.getApp());

        mSpeechSynthesizer.setSpeechSynthesizerListener(this);

        // 文本模型文件路径 (离线引擎使用)

        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_TEXT_MODEL_FILE, mSampleDirPath

                + "/" + TEXT_MODEL_NAME);

        // 声学模型文件路径 (离线引擎使用)

        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_SPEECH_MODEL_FILE, mSampleDirPath

                + "/" + SPEECH_FEMALE_MODEL_NAME);

        // 本地授权文件路径,如未设置将使用默认路径

        // 请替换为语音开发者平台上注册应用得到的App ID (离线授权)

        mSpeechSynthesizer.setAppId("xxxxx");

        // 请替换为语音开发者平台注册应用得到的apikey和secretkey (在线授权)

        // mSpeechSynthesizer

        // .setApiKey("xxxxxxxxxxxxxxxx",

        // "xxxxxxxxxxxxxxxxxxxxxx");

        // 发音人(在线引擎),可用参数为0,1,2,3。。。(服务器端会动态增加,各值含义参考文档,以文档说明为准。0--普通女声,1--普通男声,2

        // --特别男声,3--情感男声。。。)

        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEAKER, "0");

        // 音量

        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_VOLUME, "9");

        // 设置播放音量衰减(0-1.0,0为静音)

        mSpeechSynthesizer.setStereoVolume(1.0f, 1.0f);

        // 设置Mix模式的合成策略

        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_MIX_MODE,

                SpeechSynthesizer.MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI);

        //合成速度[0,2]

        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_VOCODER_OPTIM_LEVEL, "2");

        

        // 授权检测接口(只是通过AuthInfo进行检验授权是否成功。)

        // AuthInfo接口用于测试开发者是否成功申请了在线或者离线授权,如果测试授权成功了,可以删除AuthInfo

        // 部分的代码(该接口首次验证时比较耗时),不会影响正常使用(合成使用时SDK内部会自动验证授权)

        AuthInfo authInfo = mSpeechSynthesizer.auth(TtsMode.MIX);


        if (authInfo.isSuccess())

        {// 判断是否完成了认证

            setAuthed(true);

            // 初始化tts

            isAuth = true;

        }

        else

        {

            Logger.e("BaiduTTS_授权失败");

            isAuth = false;

        }


        mSpeechSynthesizer.initTts(TtsMode.MIX);

        // 加载离线英文资源(提供离线英文合成功能)

        int result = mSpeechSynthesizer.loadEnglishModel(mSampleDirPath + "/"

                + ENGLISH_TEXT_MODEL_NAME, mSampleDirPath + "/" + ENGLISH_SPEECH_FEMALE_MODEL_NAME);

开发平台和机型:5.x

SDK版本号:2.3.0

代码或日志截图(上传截图能帮助您更快解决问题):

复现步骤、现象及其他描述:重复播放可能会出现



收藏
点赞
0
个赞
共3条回复 最后由用户已被禁言回复于2022-04
#4用户已被禁言回复于2020-03
#3 chen_chf回复
我遇到,切换发音人失败之后,继续往下批量播放,偶现同一段落下,一会男音,一会女音。你们遇到过吗
展开

可能是网络问题导致在线与离线切换,可以购买离线语音合成版本,不会有切换发音人的问题。

0
#3chen_chf回复于2020-03

我遇到,切换发音人失败之后,继续往下批量播放,偶现同一段落下,一会男音,一会女音。你们遇到过吗

0
#2fujiayi1984回复于2017-08

zheangrybear:

我使用的服务是:离线TTS语音合成

调用的接口是:SpeechSynthesizer

参数设置情况:

mSpeechSynthesizer = SpeechSynthesizer.getInstance();

        mSpeechSynthesizer.setContext(WSApplication.getApp());

        mSpeechSynthesizer.setSpeechSynthesizerListener(this);

        // 文本模型文件路径 (离线引擎使用)

        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_TEXT_MODEL_FILE, mSampleDirPath

                + "/" + TEXT_MODEL_NAME);

        // 声学模型文件路径 (离线引擎使用)

        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_SPEECH_MODEL_FILE, mSampleDirPath

                + "/" + SPEECH_FEMALE_MODEL_NAME);

        // 本地授权文件路径,如未设置将使用默认路径

        // 请替换为语音开发者平台上注册应用得到的App ID (离线授权)

        mSpeechSynthesizer.setAppId("xxxxx");

        // 请替换为语音开发者平台注册应用得到的apikey和secretkey (在线授权)

        // mSpeechSynthesizer

        // .setApiKey("xxxxxxxxxxxxxxxx",

        // "xxxxxxxxxxxxxxxxxxxxxx");

        // 发音人(在线引擎),可用参数为0,1,2,3。。。(服务器端会动态增加,各值含义参考文档,以文档说明为准。0--普通女声,1--普通男声,2

        // --特别男声,3--情感男声。。。)

        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEAKER, "0");

        // 音量

        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_VOLUME, "9");

        // 设置播放音量衰减(0-1.0,0为静音)

        mSpeechSynthesizer.setStereoVolume(1.0f, 1.0f);

        // 设置Mix模式的合成策略

        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_MIX_MODE,

                SpeechSynthesizer.MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI);

        //合成速度[0,2]

        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_VOCODER_OPTIM_LEVEL, "2");

        

        // 授权检测接口(只是通过AuthInfo进行检验授权是否成功。)

        // AuthInfo接口用于测试开发者是否成功申请了在线或者离线授权,如果测试授权成功了,可以删除AuthInfo

        // 部分的代码(该接口首次验证时比较耗时),不会影响正常使用(合成使用时SDK内部会自动验证授权)

        AuthInfo authInfo = mSpeechSynthesizer.auth(TtsMode.MIX);


        if (authInfo.isSuccess())

        {// 判断是否完成了认证

            setAuthed(true);

            // 初始化tts

            isAuth = true;

        }

        else

        {

            Logger.e("BaiduTTS_授权失败");

            isAuth = false;

        }


        mSpeechSynthesizer.initTts(TtsMode.MIX);

        // 加载离线英文资源(提供离线英文合成功能)

        int result = mSpeechSynthesizer.loadEnglishModel(mSampleDirPath + "/"

                + ENGLISH_TEXT_MODEL_NAME, mSampleDirPath + "/" + ENGLISH_SPEECH_FEMALE_MODEL_NAME);

开发平台和机型:5.x

SDK版本号:2.3.0

代码或日志截图(上传截图能帮助您更快解决问题):

复现步骤、现象及其他描述:重复播放可能会出现



回复zheangrybear:请测试下我们的官方demo,写明下何时会发生,如何复现。并提供相关log,可以的话,麻烦录制下视频。可以QQ群中反馈

0
TOP
切换版块