Skip to content

Commit af4ef7f

Browse files
committed
fix: don't recv asr event before start_pcm_recognition
1 parent 0d1ab01 commit af4ef7f

1 file changed

Lines changed: 26 additions & 20 deletions

File tree

src/services/ws/stable/asr.rs

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -423,11 +423,16 @@ impl ParaformerASRSession {
423423
let mut recv_audio_bytes = 0;
424424

425425
loop {
426-
let client_fut = session.client_rx.recv();
427-
let asr_fut = self.next_result();
428-
let r = tokio::select! {
429-
asr = asr_fut => SelectResult::AsrResult(asr),
430-
chunk = client_fut => SelectResult::ClientMsg(chunk),
426+
let r = if start_submit {
427+
let client_fut = session.client_rx.recv();
428+
let asr_fut = self.next_result();
429+
tokio::select! {
430+
asr = asr_fut => SelectResult::AsrResult(asr),
431+
chunk = client_fut => SelectResult::ClientMsg(chunk),
432+
}
433+
} else {
434+
let chunk = session.client_rx.recv().await;
435+
SelectResult::ClientMsg(chunk)
431436
};
432437

433438
match r {
@@ -563,26 +568,27 @@ impl ParaformerASRSession {
563568
}
564569
}
565570

566-
let _ = self.finish_task().await.map_err(|e| {
567-
log::warn!("`{}` error finishing paraformer asr task: {e}", session.id);
568-
});
571+
if start_submit {
572+
let _ = self.finish_task().await.map_err(|e| {
573+
log::warn!("`{}` error finishing paraformer asr task: {e}", session.id);
574+
});
569575

570-
loop {
571-
if let Ok(Some(sentence)) = self.next_result().await {
572-
if sentence.sentence_end {
573-
log::info!(
574-
"`{}` paraformer ASR final result after finish: {:?}",
575-
session.id,
576-
sentence.text
577-
);
578-
asr_text += &sentence.text;
576+
loop {
577+
if let Ok(Some(sentence)) = self.next_result().await {
578+
if sentence.sentence_end {
579+
log::info!(
580+
"`{}` paraformer ASR final result after finish: {:?}",
581+
session.id,
582+
sentence.text
583+
);
584+
asr_text += &sentence.text;
585+
break;
586+
}
587+
} else {
579588
break;
580589
}
581-
} else {
582-
break;
583590
}
584591
}
585-
586592
session.send_end_vad()?;
587593
Ok(asr_text)
588594
}

0 commit comments

Comments
 (0)