下沉 tts 功能,分别实现"小智语音"和"小迪语音"

This commit is contained in:
wangcongtao
2020-10-12 20:21:15 +08:00
parent f628198de9
commit 0b7468a8a8
42 changed files with 1363 additions and 572 deletions

View File

@@ -4,7 +4,6 @@ import android.text.TextUtils;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import java.util.LinkedList;
@@ -16,7 +15,7 @@ import java.util.LinkedList;
* <p>
* 策略:队列缓存预播报的 tts然后上一句播完后
*/
public class TTSSpeaker implements IMogoVoiceCmdCallBack {
public class TTSSpeaker {
private static volatile TTSSpeaker sInstance;
@@ -48,7 +47,6 @@ public class TTSSpeaker implements IMogoVoiceCmdCallBack {
return;
}
mWaiting.add( tts );
peekAndSpeak();
}
public synchronized void shutUp() {
@@ -60,61 +58,5 @@ public class TTSSpeaker implements IMogoVoiceCmdCallBack {
}
}
@Override
public void onCmdSelected( String cmd ) {
}
@Override
public void onCmdAction( String speakText ) {
}
@Override
public void onCmdCancel( String speakText ) {
}
@Override
public void onSpeakEnd( String speakText ) {
}
@Override
public void onSpeakSelectTimeOut( String speakText ) {
}
@Override
public void onTTSStart( String ttsId, String tts ) {
if ( TextUtils.equals( mLastTts, tts ) ) {
mLastTtsId = ttsId;
}
}
@Override
public void onTTSEnd( String ttsId, String tts ) {
mLastTtsId = null;
peekAndSpeak();
}
@Override
public void onTTSError( String ttsId, String tts ) {
mLastTtsId = null;
peekAndSpeak();
}
private synchronized void peekAndSpeak() {
if ( mWaiting.isEmpty() ) {
mLastTts = null;
mLastTtsId = null;
return;
}
if ( mLastTtsId != null ) {
// 上一句还没有播完
return;
}
mLastTts = mWaiting.pop();
AIAssist.getInstance( AbsMogoApplication.getApp() ).speakTTSAndDuck( mLastTts, this );
}
}