Browse Source

修复三个点

newdev_shunjiawei
fdp 9 months ago
parent
commit
4b2c9c2f3b
  1. 58
      local_plugins/agent_service/android/src/main/kotlin/com/yunqiinnovation/agent_service/AgentService.kt

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

@ -155,6 +155,7 @@ object AgentService : CoroutineScope {
//是否保留最终结果
private var isKeepResult = true;
// 识别结果
private var currentRecognitionResult = ""
private var recognitionResult = ""
private var pendingProcessJob: Job? = null
@ -633,26 +634,7 @@ object AgentService : CoroutineScope {
return false
}
Log.d("TAG", "开始语音识别startRecognition?")
stopRecognition()
// if (isRecognitionActive&&audioSourceType==AzureAsrHelper.AudioSourceType.MICROPHONE){
// Log.d(TAG, "开始语音识别stopRecognition")
// // BleService.closeCodec()
// stopRecognition()
// }
// if((isExternalActive&&audioSourceType==AzureAsrHelper.AudioSourceType.MICROPHONE)||!isRecognitionActive)
// {
// Log.d(TAG, "开始语音识别BleService.openEncoder")
// BleService.openEncoder()
// }
// if(isRecognitionActive)
// {
// Log.d(TAG, "开始语音识别azureAsrHelper?.startContinuousRecognition(audioSourceType)")
// return true
// }
// 检查录音权限
if (!isExternalActive && !checkRecordAudioPermission()) {
Log.e(TAG, "需要录音权限")
@ -712,7 +694,9 @@ object AgentService : CoroutineScope {
if(currsessionAsrId.isEmpty()) {
currsessionAsrId = sessionid
}
var text = recognitionResult + recognizing
currentRecognitionResult = text
sendEvent(
"recognizing", mapOf(
"sessionid" to currsessionAsrId,
@ -755,11 +739,19 @@ object AgentService : CoroutineScope {
if (currsessionAsrId.isEmpty()) {
currsessionAsrId = sessionid
}
var text = result
if(recognitionResult.isEmpty()) {
if(text.isNotEmpty())
{
text = text.replace(Regex("^[,。?、!, . ? !]+"), "")
recognitionResult += text
}
else{
recognitionResult= currentRecognitionResult
currentRecognitionResult= ""
}
recognitionResult += text
if (recognitionResult.isNotEmpty())
{
if (currentRecognitionMode == "push_to_talk") { //按住说话
sendEvent(
"recognizing", mapOf(
@ -779,21 +771,26 @@ object AgentService : CoroutineScope {
)
pendingProcessJob = launch {
delay(1500)
if (recognitionResult.isNotEmpty()) {
sendEvent(
sendEvent(
"recognition_result", mapOf(
"sessionid" to currsessionAsrId,
"text" to recognitionResult,
"language" to detectedLanguage
)
)
processWithChatApi(currsessionAsrId, recognitionResult)
recognitionResult = ""
recognitionResult = ""
currsessionAsrId = ""
}
processWithChatApi(currsessionAsrId, recognitionResult)
}
}
}
else
{
Log.d(TAG, "liwei-------- onResult: $sessionid $result $currentRecognitionMode 空字符串")
}
// }
_hasSpeechDetected.set(false)
restartIdleCheck()
@ -805,6 +802,7 @@ object AgentService : CoroutineScope {
sendEvent("recognition_started", mapOf("sessionid" to sessionid, "status" to "started"))
// 使用模式感知的空闲检测启动方法
recognitionResult = ""
currentRecognitionResult = ""
currsessionAsrId = ""
pendingProcessJob?.cancel()
audioPlayer?.playAudio(R.raw.start)
@ -815,6 +813,7 @@ object AgentService : CoroutineScope {
override fun onSessionStopped(sessionid:String) {
Log.d(TAG, "liwei-------- onSessionStopped: $sessionid $currsessionAsrId $recognitionResult $currentRecognitionMode")
if (currentRecognitionMode == "push_to_talk") { //按住说话
if (recognitionResult.isNotEmpty()){
sendEvent(
"recognition_result", mapOf(
@ -824,6 +823,9 @@ object AgentService : CoroutineScope {
)
processWithChatApi(currsessionAsrId, recognitionResult)
}
else{
Log.d(TAG, "liwei-------- onSessionStopped: $sessionid $currsessionAsrId $recognitionResult $currentRecognitionMode 空字符串")
}
sendEvent("recognition_stopped", mapOf("sessionid" to currsessionAsrId, "status" to "stopped"))
}else{
sendEvent("recognition_stopped", mapOf("sessionid" to sessionid, "status" to "stopped"))
@ -908,7 +910,7 @@ object AgentService : CoroutineScope {
fun interruptCurrentResponse() {
if (isAiStreaming || isTtsSpeaking) {
val startTime = System.currentTimeMillis()
stopRecognition()
// 并行执行停止操作,加快响应速度
stopTts()
stopAiStream()

Loading…
Cancel
Save