我使用的服务是:语音合成
开发平台:Android Studio
SDK版本号:2.3.0
代码或日志截图(上传截图能帮助您更快解决问题):
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
个赞
请登录后评论
TOP
切换版块
小李熹熹:
我使用的服务是:语音合成
开发平台: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。
应用管理可以查看到有发音请求,但是两台测试机均无声音输出。