安卓部分机子语音合成第一次安装的时候一直授权失败,第二次的时候就正常
彼岸等你nice 发布于2017-08 浏览:2340 回复:1
0
收藏

我使用的服务是:Baidu语音合成

调用的接口是: 

参数设置情况:

this.mSpeechSynthesizer = SpeechSynthesizer.getInstance();
if (this.mSpeechSynthesizer != null) {
this.mSpeechSynthesizer.setContext(mContext);
   this.mSpeechSynthesizer.setSpeechSynthesizerListener(this);
   // 文本模型文件路径 (离线引擎使用)
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_TEXT_MODEL_FILE, mSampleDirPath + "/"
           + TEXT_MODEL_NAME);
   // 声学模型文件路径 (离线引擎使用)
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_SPEECH_MODEL_FILE, mSampleDirPath + "/"
           + SPEECH_FEMALE_MODEL_NAME);
   // 本地授权文件路径,如未设置将使用默认路径.设置临时授权文件路径,LICENCE_FILE_NAME请替换成临时授权文件的实际路径,仅在使用临时license文件时需要进行设置,如果在[应用管理]中开通了正式离线授权,不需要设置该参数,建议将该行代码删除(离线引擎)
   // 如果合成结果出现临时授权文件将要到期的提示,说明使用了临时授权文件,请删除临时授权即可。
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_LICENCE_FILE, mSampleDirPath + "/"
           + LICENSE_FILE_NAME);
   //语速设置(释放资源后部分机型无法自动设置默认语速)
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEED, String.valueOf(currentlevel));
   // 请替换为语音开发者平台上注册应用得到的App ID (离线授权)
   this.mSpeechSynthesizer.setAppId("8868328");
   // 请替换为语音开发者平台注册应用得到的apikey和secretkey (在线授权)
   this.mSpeechSynthesizer.setApiKey("BwMgLAdlVzPOtcGLrhjOiRaw", "172ebba27e11b57423160f1368d928df");
   // 发音人(在线引擎),可用参数为0,1,2,3。。。(服务器端会动态增加,各值含义参考文档,以文档说明为准。0--普通女声,1--普通男声,2--特别男声,3--情感男声。。。)
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEAKER, String.valueOf(currentVoice));
   // 设置Mix模式的合成策略
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_MIX_MODE, SpeechSynthesizer.MIX_MODE_DEFAULT);
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_VOCODER_OPTIM_LEVEL, "2");
   // 授权检测接口(只是通过AuthInfo进行检验授权是否成功。)
   // AuthInfo接口用于测试开发者是否成功申请了在线或者离线授权,如果测试授权成功了,可以删除AuthInfo部分的代码(该接口首次验证时比较耗时),不会影响正常使用(合成使用时SDK内部会自动验证授权)
   AuthInfo authInfo = this.mSpeechSynthesizer.auth(TtsMode.MIX);
   if (authInfo.isSuccess()) {
Log.i(TAG, "auth success");
   } else {
String errorMsg = authInfo.getTtsError().getDetailMessage();
       Log.i(TAG, "auth failed errorMsg=" + errorMsg);
   }
// 初始化tts
   mSpeechSynthesizer.initTts(TtsMode.ONLINE);
   // 加载离线英文资源(提供离线英文合成功能)
   int result = mSpeechSynthesizer.loadEnglishModel(mSampleDirPath + "/" + ENGLISH_TEXT_MODEL_NAME, mSampleDirPath
           + "/" + ENGLISH_SPEECH_FEMALE_MODEL_NAME);

开发平台和机型:Android 

SDK版本号: 2.2.9.20161020_154fa02

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

auth failed errorMsg=(-200)both online and offline engine auth failue

复现步骤、现象及其他描述:

Android 有些机型(小米2A,红米HM 2A)在第一次安装
APP的时候授权一直失败,杀掉进程后第二次获取就都正常

收藏
点赞
0
个赞
共1条回复 最后由用户已被禁言回复于2022-04
#2fujiayi1984回复于2017-08

彼岸等你nice:

我使用的服务是:Baidu语音合成

调用的接口是: 

参数设置情况:

this.mSpeechSynthesizer = SpeechSynthesizer.getInstance();
if (this.mSpeechSynthesizer != null) {
this.mSpeechSynthesizer.setContext(mContext);
   this.mSpeechSynthesizer.setSpeechSynthesizerListener(this);
   // 文本模型文件路径 (离线引擎使用)
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_TEXT_MODEL_FILE, mSampleDirPath + "/"
           + TEXT_MODEL_NAME);
   // 声学模型文件路径 (离线引擎使用)
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_SPEECH_MODEL_FILE, mSampleDirPath + "/"
           + SPEECH_FEMALE_MODEL_NAME);
   // 本地授权文件路径,如未设置将使用默认路径.设置临时授权文件路径,LICENCE_FILE_NAME请替换成临时授权文件的实际路径,仅在使用临时license文件时需要进行设置,如果在[应用管理]中开通了正式离线授权,不需要设置该参数,建议将该行代码删除(离线引擎)
   // 如果合成结果出现临时授权文件将要到期的提示,说明使用了临时授权文件,请删除临时授权即可。
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_LICENCE_FILE, mSampleDirPath + "/"
           + LICENSE_FILE_NAME);
   //语速设置(释放资源后部分机型无法自动设置默认语速)
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEED, String.valueOf(currentlevel));
   // 请替换为语音开发者平台上注册应用得到的App ID (离线授权)
   this.mSpeechSynthesizer.setAppId("8868328");
   // 请替换为语音开发者平台注册应用得到的apikey和secretkey (在线授权)
   this.mSpeechSynthesizer.setApiKey("BwMgLAdlVzPOtcGLrhjOiRaw", "172ebba27e11b57423160f1368d928df");
   // 发音人(在线引擎),可用参数为0,1,2,3。。。(服务器端会动态增加,各值含义参考文档,以文档说明为准。0--普通女声,1--普通男声,2--特别男声,3--情感男声。。。)
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEAKER, String.valueOf(currentVoice));
   // 设置Mix模式的合成策略
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_MIX_MODE, SpeechSynthesizer.MIX_MODE_DEFAULT);
   this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_VOCODER_OPTIM_LEVEL, "2");
   // 授权检测接口(只是通过AuthInfo进行检验授权是否成功。)
   // AuthInfo接口用于测试开发者是否成功申请了在线或者离线授权,如果测试授权成功了,可以删除AuthInfo部分的代码(该接口首次验证时比较耗时),不会影响正常使用(合成使用时SDK内部会自动验证授权)
   AuthInfo authInfo = this.mSpeechSynthesizer.auth(TtsMode.MIX);
   if (authInfo.isSuccess()) {
Log.i(TAG, "auth success");
   } else {
String errorMsg = authInfo.getTtsError().getDetailMessage();
       Log.i(TAG, "auth failed errorMsg=" + errorMsg);
   }
// 初始化tts
   mSpeechSynthesizer.initTts(TtsMode.ONLINE);
   // 加载离线英文资源(提供离线英文合成功能)
   int result = mSpeechSynthesizer.loadEnglishModel(mSampleDirPath + "/" + ENGLISH_TEXT_MODEL_NAME, mSampleDirPath
           + "/" + ENGLISH_SPEECH_FEMALE_MODEL_NAME);

开发平台和机型:Android 

SDK版本号: 2.2.9.20161020_154fa02

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

auth failed errorMsg=(-200)both online and offline engine auth failue

复现步骤、现象及其他描述:

Android 有些机型(小米2A,红米HM 2A)在第一次安装
APP的时候授权一直失败,杀掉进程后第二次获取就都正常

回复彼岸等你nice:“APP的时候授权一直失败,杀掉进程后第二次获取就都正常”,是指第一次启动app失败,第二次再启动就正常了么?

请确保下是否一直联网中。并测试下我们的官网demo。以官方demo为准

0
TOP
切换版块