我使用的服务是: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
个赞
请登录后评论
TOP
切换版块
彼岸等你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为准