语音合成无法离线使用.
冰雕猪头 发布于2017-03 浏览:1587 回复:2
0
收藏

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

开发平台和机型:华为荣耀8 Android Studio 系统为Android 7  EMUI 5.0

SDK版本号:25

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

离线状态不能使用语音合成功能,wifi或者移动网络则可以使用.检查发现.bat文件没能复制到手机内存中,手机未装SD卡.


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

文件路径为

String filePath = Environment.getExternalStorageDirectory().getPath();

mDirPath = filePath + "/baiduTTS";//路径

权限都已经添加在AndroidManifest.xml文件中











复制文件:

private void copyFromAssetsToSdcard(boolean isCover, String source, String dest) {
File file = new File(dest);
   if (isCover || (!isCover && !file.exists())) {
InputStream is = null;
       FileOutputStream fos = null;
       try {
is = getResources().getAssets().open(source);
           String path = dest;
           fos = new FileOutputStream(path);
           byte[] buffer = new byte[1024];
           int size = 0;
           while ((size = is.read(buffer, 0, 1024)) >= 0) {
fos.write(buffer, 0, size);
           }
} catch (FileNotFoundException e) {
e.printStackTrace();
       } catch (IOException e) {
e.printStackTrace();
       } finally {
if (fos != null) {
try {
fos.close();
               } catch (IOException e) {
e.printStackTrace();
               }
}
try {
if (is != null) {
is.close();
               }
} catch (IOException e) {
e.printStackTrace();
           }
}
}
}


离线状态不能使用语音合成功能,wifi或者移动网络则可以使用.发现.bat文件没能复制到手机内存中,手机未装SD卡.

一开始的时候文件夹都不能创建,后来使用

ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);

申请了权限,结果创建了文件夹却不能将文件复制过去.

下面是配置:

private void startTTS() {
       mSpeechSynthesizer = SpeechSynthesizer.getInstance();
       mSpeechSynthesizer.setContext(this);
       mSpeechSynthesizer.setSpeechSynthesizerListener(this);
       mSpeechSynthesizer.setApiKey(API_KEY, SECRET_KEY);
       mSpeechSynthesizer.setAppId(APP_ID);
       mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_TEXT_MODEL_FILE, mDirPath + "/"
               + CH_TEXT);
       mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_SPEECH_MODEL_FILE, mDirPath + "/"
               + CH_FEMALE);
       mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_MIX_MODE, SpeechSynthesizer.MIX_MODE_HIGH_SPEED_SYNTHESIZE);
       mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_VOCODER_OPTIM_LEVEL, "2");
       AuthInfo authInfo = mSpeechSynthesizer.auth(TtsMode.MIX);
       if (authInfo.isSuccess()) {
mSpeechSynthesizer.initTts(TtsMode.MIX);
           mSpeechSynthesizer.speak("百度语音合成示例程序正在运行");
       } else {
       }
       mSpeechSynthesizer.initTts(TtsMode.MIX);
       mSpeechSynthesizer.loadEnglishModel(mDirPath + "/" + EN_TEXT, mDirPath
               + "/" + EN_FEMALE);
}



收藏
点赞
0
个赞
共2条回复 最后由用户已被禁言回复于2022-04
#3周俊316回复于2017-04

感谢您使用百度语音

0
#2冰雕猪头回复于2017-03

已经解决

assets目录的位置错了,应该放在main下面.

0
TOP
切换版块