[Update]离线TTS支持语音播报完成的回调和停止语音播报

This commit is contained in:
chenfufeng
2022-03-04 16:05:10 +08:00
parent b382c54612
commit 02bdba7832
4 changed files with 51 additions and 16 deletions

View File

@@ -328,16 +328,26 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
* @param text
*/
public void speakTTSVoice(String text, IMogoTTSCallback callBack) {
speakTTSVoice(text);
// try {
// initFlushStatus();
// if ( mHasFlush ) {
// mSpeakVoiceMap.put( text, callBack );
// mVoiceClient.speakDefault( text );
// }
// } catch ( Exception e ) {
// e.printStackTrace();
// }
if (mEngine != null && mHasAuth) {
mSpeakVoiceMap.put(text, callBack);
// 合成并播放
mEngine.speak(text, text, mAILocalTTSIntent);
}
}
public void stopSpeakTts(String text) {
if (mEngine != null && mHasAuth) {
if (mSpeakVoiceMap.containsKey(text)) {
mSpeakVoiceMap.remove(text);
}
mEngine.stop();
}
}
public void stopTts() {
if (mEngine != null && mHasAuth) {
mEngine.stop();
}
}
/**
@@ -349,9 +359,7 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
Logger.d(TAG, "speakTTSVoice");
if (mEngine != null && mHasAuth) {
// 合成并播放
mEngine.speak(text, "1024", mAILocalTTSIntent);
// 合成音频不播放同时输出实时pcm音频,音频回调在onSynthesizeDataArrived接口
// mEngine.synthesize(mAILocalTTSIntent, text, "1024");
mEngine.speak(text, text, mAILocalTTSIntent);
}
}
@@ -642,7 +650,7 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
context.sendBroadcast(intent);
}
private static class AILocalTTSListenerImpl implements AITTSListener {
private class AILocalTTSListenerImpl implements AITTSListener {
@Override
public void onInit(int status) {
@@ -655,8 +663,12 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
}
@Override
public void onError(String s, AIError aiError) {
public void onError(String utteranceId, AIError aiError) {
Logger.d(TAG, "检测到错误:" + aiError.toString());
IMogoTTSCallback callBack = PadTTS.this.mSpeakVoiceMap.remove(utteranceId);
if (callBack != null) {
callBack.onSpeakError(utteranceId, aiError.getError());
}
}
@Override
@@ -665,8 +677,12 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
}
@Override
public void onCompletion(String s) {
public void onCompletion(String utteranceId) {
Logger.d(TAG, "播放完成");
IMogoTTSCallback callBack = PadTTS.this.mSpeakVoiceMap.remove(utteranceId);
if (callBack != null) {
callBack.onSpeakEnd(utteranceId);
}
}
@Override