能请求,但是不发音
小李熹熹 发布于2017-08 浏览:1266 回复:1
0
收藏

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

开发平台:Android Studio

SDK版本号:2.3.0

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


private String mSampleDirPath;
private static final String SAMPLE_DIR_NAME = "baiduTTS";
private static final String SPEECH_FEMALE_MODEL_NAME = "bd_etts_speech_female.dat";
private static final String SPEECH_MALE_MODEL_NAME = "bd_etts_speech_male.dat";
private static final String TEXT_MODEL_NAME = "bd_etts_text.dat";
private static final String LICENSE_FILE_NAME = "temp_license";
private static final String ENGLISH_SPEECH_FEMALE_MODEL_NAME = "bd_etts_speech_female_en.dat";
private static final String ENGLISH_SPEECH_MALE_MODEL_NAME = "bd_etts_speech_male_en.dat";
private static final String ENGLISH_TEXT_MODEL_NAME = "bd_etts_text_en.dat";

private SpeechSynthesizer mSpeechSynthesizer;



private void startTTS() {
if (mSampleDirPath == null) {
String sdcardPath = Environment.getExternalStorageDirectory().toString();
       mSampleDirPath = sdcardPath + "/" + SAMPLE_DIR_NAME;
   }
// 获取语音合成对象实例
   mSpeechSynthesizer = SpeechSynthesizer.getInstance();
   // 设置context
   mSpeechSynthesizer.setContext(this);
   // 设置语音合成状态监听器
   mSpeechSynthesizer.setSpeechSynthesizerListener(this);
   // 设置在线语音合成授权,需要填入从百度语音官网申请的api_key和secret_key
   mSpeechSynthesizer.setApiKey("XXX", "XXX");
   // 设置离线语音合成授权,需要填入从百度语音官网申请的app_id
   mSpeechSynthesizer.setAppId("XXX");
   // 设置语音合成文本模型文件
   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);
   // 设置语音合成声音授权文件
   mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_LICENCE_FILE, mSampleDirPath + "/"
           + LICENSE_FILE_NAME);
   // 获取语音合成授权信息
   AuthInfo authInfo = mSpeechSynthesizer.auth(TtsMode.MIX);
   // 判断授权信息是否正确,如果正确则初始化语音合成器并开始语音合成,如果失败则做错误处理
   if (authInfo.isSuccess()) {
mSpeechSynthesizer.initTts(TtsMode.MIX);
       Toast.makeText(getApplicationContext(), "OK啦", Toast.LENGTH_SHORT);
   } else {
Toast.makeText(getApplicationContext(), "出错啦", Toast.LENGTH_SHORT);
   }

}
public void onError(String arg0, SpeechError arg1) {
// 监听到出错,在此添加相关操作
}
public void onSpeechFinish(String arg0) {
// 监听到播放结束,在此添加相关操作
}
public void onSpeechProgressChanged(String arg0, int arg1) {
// 监听到播放进度有变化,在此添加相关操作
}
public void onSpeechStart(String arg0) {
// 监听到合成并播放开始,在此添加相关操作
}
public void onSynthesizeDataArrived(String arg0, byte[] arg1, int arg2) {
// 监听到有合成数据到达,在此添加相关操作
}
public void onSynthesizeFinish(String arg0) {
// 监听到合成结束,在此添加相关操作
}
public void onSynthesizeStart(String arg0) {
// 监听到合成开始,在此添加相关操作
}

按钮按下后定义的是:

mSpeechSynthesizer.speak("Hello");


复现步骤、现象及其他描述:一些AppID和key是我手动打码的,确认过没错,编译和执行都没问题,就是不发音,有没有大佬帮帮忙看看哪儿出了问题。感激不尽!


应用管理可以看到有发音请求,但是两台测试机均无声音输出。


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

小李熹熹:

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

开发平台:Android Studio

SDK版本号:2.3.0

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


private String mSampleDirPath;
private static final String SAMPLE_DIR_NAME = "baiduTTS";
private static final String SPEECH_FEMALE_MODEL_NAME = "bd_etts_speech_female.dat";
private static final String SPEECH_MALE_MODEL_NAME = "bd_etts_speech_male.dat";
private static final String TEXT_MODEL_NAME = "bd_etts_text.dat";
private static final String LICENSE_FILE_NAME = "temp_license";
private static final String ENGLISH_SPEECH_FEMALE_MODEL_NAME = "bd_etts_speech_female_en.dat";
private static final String ENGLISH_SPEECH_MALE_MODEL_NAME = "bd_etts_speech_male_en.dat";
private static final String ENGLISH_TEXT_MODEL_NAME = "bd_etts_text_en.dat";

private SpeechSynthesizer mSpeechSynthesizer;



private void startTTS() {
if (mSampleDirPath == null) {
String sdcardPath = Environment.getExternalStorageDirectory().toString();
       mSampleDirPath = sdcardPath + "/" + SAMPLE_DIR_NAME;
   }
// 获取语音合成对象实例
   mSpeechSynthesizer = SpeechSynthesizer.getInstance();
   // 设置context
   mSpeechSynthesizer.setContext(this);
   // 设置语音合成状态监听器
   mSpeechSynthesizer.setSpeechSynthesizerListener(this);
   // 设置在线语音合成授权,需要填入从百度语音官网申请的api_key和secret_key
   mSpeechSynthesizer.setApiKey("XXX", "XXX");
   // 设置离线语音合成授权,需要填入从百度语音官网申请的app_id
   mSpeechSynthesizer.setAppId("XXX");
   // 设置语音合成文本模型文件
   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);
   // 设置语音合成声音授权文件
   mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_LICENCE_FILE, mSampleDirPath + "/"
           + LICENSE_FILE_NAME);
   // 获取语音合成授权信息
   AuthInfo authInfo = mSpeechSynthesizer.auth(TtsMode.MIX);
   // 判断授权信息是否正确,如果正确则初始化语音合成器并开始语音合成,如果失败则做错误处理
   if (authInfo.isSuccess()) {
mSpeechSynthesizer.initTts(TtsMode.MIX);
       Toast.makeText(getApplicationContext(), "OK啦", Toast.LENGTH_SHORT);
   } else {
Toast.makeText(getApplicationContext(), "出错啦", Toast.LENGTH_SHORT);
   }

}
public void onError(String arg0, SpeechError arg1) {
// 监听到出错,在此添加相关操作
}
public void onSpeechFinish(String arg0) {
// 监听到播放结束,在此添加相关操作
}
public void onSpeechProgressChanged(String arg0, int arg1) {
// 监听到播放进度有变化,在此添加相关操作
}
public void onSpeechStart(String arg0) {
// 监听到合成并播放开始,在此添加相关操作
}
public void onSynthesizeDataArrived(String arg0, byte[] arg1, int arg2) {
// 监听到有合成数据到达,在此添加相关操作
}
public void onSynthesizeFinish(String arg0) {
// 监听到合成结束,在此添加相关操作
}
public void onSynthesizeStart(String arg0) {
// 监听到合成开始,在此添加相关操作
}

按钮按下后定义的是:

mSpeechSynthesizer.speak("Hello");


复现步骤、现象及其他描述:一些AppID和key是我手动打码的,确认过没错,编译和执行都没问题,就是不发音,有没有大佬帮帮忙看看哪儿出了问题。感激不尽!


应用管理可以看到有发音请求,但是两台测试机均无声音输出。


回复小李熹熹:请您测试下我们的官方demo有无此问题

0
TOP
切换版块