Browse Source

识别结果添加延迟处理任务

newdev_shunjiawei
tanlongsheng 10 months ago
parent
commit
dfcbb07cd6
  1. 33
      local_plugins/agent_service/android/src/main/kotlin/com/yunqiinnovation/agent_service/AgentService.kt

33
local_plugins/agent_service/android/src/main/kotlin/com/yunqiinnovation/agent_service/AgentService.kt

@ -151,6 +151,7 @@ object AgentService : CoroutineScope {
private var isKeepResult = true;
// 识别结果
private var recognitionResult = ""
private var pendingProcessJob: Job? = null
// 打断防抖相关
private var lastInterruptTime = 0L
@ -669,6 +670,7 @@ object AgentService : CoroutineScope {
AzureAsrHelper.ContinuousRecognizeCallback {
override fun onRecognizing(sessionid:String, recognizing: String, detectedLanguage: String) {
Log.d(TAG, "liwei-------- onRecognizing: $sessionid")
pendingProcessJob?.cancel()
if (recognizing.isNotEmpty()&&isKeepResult==true) {
// 检测到语音,更新状态
_hasSpeechDetected.set(true)
@ -685,10 +687,13 @@ object AgentService : CoroutineScope {
)
)
}else{
text = recognizing
text = recognitionResult + recognizing
if(recognitionResult.isEmpty()){
currsessionId = sessionid
}
sendEvent(
"recognizing", mapOf(
"sessionid" to sessionid,
"sessionid" to currsessionId,
"text" to text,
"language" to detectedLanguage
)
@ -730,14 +735,22 @@ object AgentService : CoroutineScope {
if (currentRecognitionMode == "push_to_talk") { //按住说话
recognitionResult += result
}else{
sendEvent(
"recognition_result", mapOf(
"sessionid" to sessionid,
"text" to result,
"language" to detectedLanguage
)
)
processWithChatApi(sessionid,result)
recognitionResult += result
pendingProcessJob?.cancel()
pendingProcessJob = launch {
delay(1000)
if (recognitionResult.isNotEmpty()) {
sendEvent(
"recognition_result", mapOf(
"sessionid" to currsessionId,
"text" to recognitionResult,
"language" to detectedLanguage
)
)
processWithChatApi(currsessionId, recognitionResult)
recognitionResult = ""
}
}
}
}

Loading…
Cancel
Save