下沉 tts 功能,分别实现"小智语音"和"小迪语音"
This commit is contained in:
153
tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTS.java
Normal file
153
tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTS.java
Normal file
@@ -0,0 +1,153 @@
|
||||
package com.mogo.tts.base;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.alibaba.android.arouter.facade.template.IProvider;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/10/12
|
||||
*
|
||||
* 语音抽象
|
||||
*/
|
||||
interface IMogoTTS extends IProvider {
|
||||
|
||||
/**
|
||||
* 释放资源
|
||||
*/
|
||||
void release();
|
||||
|
||||
/**
|
||||
* 缓存的语音指令注册状态
|
||||
*
|
||||
* @return true - 已注册、false - 未注册
|
||||
*/
|
||||
default boolean hasFlush() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将缓存的免唤醒指令全部注册一遍
|
||||
*/
|
||||
void flush();
|
||||
|
||||
/**
|
||||
* 播报 tts 语音
|
||||
*
|
||||
* @param tts 语音内容
|
||||
*/
|
||||
void speakTTSVoice( String tts );
|
||||
|
||||
/**
|
||||
* 播放 tts 语音
|
||||
*
|
||||
* @param tts 语音内容
|
||||
* @param callback 回调
|
||||
* {@link IMogoTTSCallback#onSpeakEnd(String)}
|
||||
*/
|
||||
void speakTTSVoice( String tts, IMogoTTSCallback callback );
|
||||
|
||||
/**
|
||||
* 播放 tts,并设置播报类型
|
||||
*
|
||||
* @param tts 语音内容
|
||||
* @param type 播报类型 {@link PreemptType}
|
||||
* @param callback 回调
|
||||
* {@link IMogoTTSCallback#onSpeakEnd(String)}
|
||||
*/
|
||||
void speakTTSVoice( String tts, PreemptType type, IMogoTTSCallback callback );
|
||||
|
||||
/**
|
||||
* 注册问答指令,默认恢复:确认、取消
|
||||
*
|
||||
* @param tts 播报内容
|
||||
* @param callback 回调
|
||||
* {@link IMogoTTSCallback#onCmdAction(String)}
|
||||
* {@link IMogoTTSCallback#onCmdCancel(String)} (String)}
|
||||
* {@link IMogoTTSCallback#onSpeakSelectTimeOut(String)} (String)}
|
||||
*/
|
||||
void speakQAndACmd( String tts, IMogoTTSCallback callback );
|
||||
|
||||
|
||||
/**
|
||||
* 注册问答指令,默认恢复:确认、取消
|
||||
*
|
||||
* @param tts 播报内容
|
||||
* @param okWords 确认指令唤醒词
|
||||
* @param cancelWords 取消指令唤醒词
|
||||
* @param callback 回调
|
||||
* {@link IMogoTTSCallback#onCmdAction(String)}
|
||||
* {@link IMogoTTSCallback#onCmdCancel(String)} (String)}
|
||||
* {@link IMogoTTSCallback#onSpeakSelectTimeOut(String)} (String)}
|
||||
*/
|
||||
void speakQAndACmd( String tts, String[] okWords, String[] cancelWords, IMogoTTSCallback callback );
|
||||
|
||||
|
||||
/**
|
||||
* 注册免唤醒指令
|
||||
*
|
||||
* @param cmd 免唤醒指令
|
||||
* @param cmdWords 免唤醒词组
|
||||
* @param callback 回调
|
||||
* {@link IMogoTTSCallback#onCmdSelected(String)}
|
||||
*/
|
||||
void registerUnWakeupCommand( String cmd, String[] cmdWords, IMogoTTSCallback callback );
|
||||
|
||||
/**
|
||||
* 注销免唤醒指令
|
||||
*
|
||||
* @param cmd 指令
|
||||
*/
|
||||
void unregisterUnWakeupCommand( String cmd );
|
||||
|
||||
/**
|
||||
* 注销免唤醒指令
|
||||
*
|
||||
* @param cmd 指令
|
||||
* @param callback 具体注销的回调对象(部分指令复用的情况)
|
||||
*/
|
||||
void unregisterUnWakeupCommand( String cmd, IMogoTTSCallback callback );
|
||||
|
||||
/**
|
||||
* 启动语音
|
||||
*
|
||||
* @param context
|
||||
*/
|
||||
void startAIAssist( Context context );
|
||||
|
||||
/**
|
||||
* 启动语音
|
||||
*
|
||||
* @param context
|
||||
* @param status window_start_cancel
|
||||
* 0 - 结束
|
||||
* 1 - 显示
|
||||
* 2 - 未激活调试进入
|
||||
*/
|
||||
|
||||
void startAIAssist( Context context, int status );
|
||||
|
||||
/**
|
||||
* 中断正在播报的语音内容
|
||||
*/
|
||||
void breakOffSpeak();
|
||||
|
||||
// Deprecated api, but should keep...
|
||||
|
||||
@Deprecated
|
||||
default void speakTTSAndDuck( String tts ) {
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
default void speakTTSAndDuck( String tts, IMogoTTSCallback callback ) {
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
default void shutUp( String ttsId, String text ) {
|
||||
|
||||
}
|
||||
|
||||
default void clearTTSCallback( String tts ) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.mogo.tts.base;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/10/12
|
||||
*
|
||||
* 描述
|
||||
*/
|
||||
interface IMogoTTSCallback {
|
||||
|
||||
/**
|
||||
* 新SDK接口
|
||||
*
|
||||
* @param ttsId
|
||||
* @param tts
|
||||
*/
|
||||
@Deprecated
|
||||
default void onTTSStart( String ttsId, String tts ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 新SDK接口
|
||||
*
|
||||
* @param ttsId
|
||||
* @param tts
|
||||
*/
|
||||
@Deprecated
|
||||
default void onTTSEnd( String ttsId, String tts ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 新SDK接口
|
||||
*
|
||||
* @param ttsId
|
||||
* @param tts
|
||||
*/
|
||||
@Deprecated
|
||||
default void onTTSError( String ttsId, String tts ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 免唤醒命令响应回调
|
||||
*
|
||||
* @param cmd
|
||||
*/
|
||||
default void onCmdSelected( String cmd ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 语音播报临时免唤醒“确定”命令
|
||||
*
|
||||
* @param speakText 播报内容
|
||||
*/
|
||||
default void onCmdAction( String speakText ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 语音播报临时免唤醒“取消”命令
|
||||
*
|
||||
* @param speakText 播报内容
|
||||
*/
|
||||
default void onCmdCancel( String speakText ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 语音播报完毕
|
||||
*
|
||||
* @param speakText 播报内容
|
||||
*/
|
||||
default void onSpeakEnd( String speakText ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 语音播报完临时命令选择超时
|
||||
*
|
||||
* @param speakText 播报内容
|
||||
*/
|
||||
default void onSpeakSelectTimeOut( String speakText ) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.mogo.tts.base;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/10/12
|
||||
* <p>
|
||||
* 描述
|
||||
*/
|
||||
interface MogoTTSConstants {
|
||||
|
||||
String API_PATH = "/tts/api";
|
||||
|
||||
String API_NAME = "TTS";
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.mogo.tts.base;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/10/12
|
||||
*
|
||||
* 语音打算类型
|
||||
*/
|
||||
enum PreemptType {
|
||||
|
||||
/**
|
||||
* 不打断
|
||||
*/
|
||||
PREEMPT_TYPE_NONE,
|
||||
/**
|
||||
* 立即打断,取消当前的tts插队播放
|
||||
*/
|
||||
PREEMPT_TYPE_IMMEDIATELY,
|
||||
/**
|
||||
* 下一个插入,不取消当前的tts,插队下一个播放
|
||||
*/
|
||||
PREEMPT_TYPE_NEXT,
|
||||
/**
|
||||
* 清空队列
|
||||
*/
|
||||
PREEMPT_TYPE_FLUSH,
|
||||
/**
|
||||
* 立即打断,不取消当前tts
|
||||
*/
|
||||
PREEMPT_TYPE_IMMEDIATELY_WITHOUT_CANCEL
|
||||
}
|
||||
Reference in New Issue
Block a user