Message when launching transcription and no audio is detected
This commit is contained in:
parent
34e8fe260e
commit
f7644268c1
2 changed files with 28 additions and 14 deletions
|
|
@ -453,31 +453,38 @@ class AudioProcessor:
|
||||||
await self.update_diarization(end_attributed_speaker, combined)
|
await self.update_diarization(end_attributed_speaker, combined)
|
||||||
buffer_diarization = combined
|
buffer_diarization = combined
|
||||||
|
|
||||||
# Create response object
|
response_status = "active_transcription"
|
||||||
if not lines:
|
final_lines_for_response = lines.copy()
|
||||||
lines = [{
|
|
||||||
|
if not tokens and not buffer_transcription and not buffer_diarization:
|
||||||
|
response_status = "no_audio_detected"
|
||||||
|
final_lines_for_response = []
|
||||||
|
elif response_status == "active_transcription" and not final_lines_for_response:
|
||||||
|
final_lines_for_response = [{
|
||||||
"speaker": 1,
|
"speaker": 1,
|
||||||
"text": "",
|
"text": "",
|
||||||
"beg": format_time(0),
|
"beg": format_time(state.get("end_buffer", 0)),
|
||||||
"end": format_time(tokens[-1].end if tokens else 0),
|
"end": format_time(state.get("end_buffer", 0)),
|
||||||
"diff": 0
|
"diff": 0
|
||||||
}]
|
}]
|
||||||
|
|
||||||
response = {
|
response = {
|
||||||
"lines": lines,
|
"status": response_status,
|
||||||
|
"lines": final_lines_for_response,
|
||||||
"buffer_transcription": buffer_transcription,
|
"buffer_transcription": buffer_transcription,
|
||||||
"buffer_diarization": buffer_diarization,
|
"buffer_diarization": buffer_diarization,
|
||||||
"remaining_time_transcription": state["remaining_time_transcription"],
|
"remaining_time_transcription": state["remaining_time_transcription"],
|
||||||
"remaining_time_diarization": state["remaining_time_diarization"]
|
"remaining_time_diarization": state["remaining_time_diarization"]
|
||||||
}
|
}
|
||||||
|
|
||||||
# Only yield if content has changed
|
current_response_signature = f"{response_status} | " + \
|
||||||
response_content = ' '.join([f"{line['speaker']} {line['text']}" for line in lines]) + \
|
' '.join([f"{line['speaker']} {line['text']}" for line in final_lines_for_response]) + \
|
||||||
f" | {buffer_transcription} | {buffer_diarization}"
|
f" | {buffer_transcription} | {buffer_diarization}"
|
||||||
|
|
||||||
if response_content != self.last_response_content and (lines or buffer_transcription or buffer_diarization):
|
if current_response_signature != self.last_response_content and \
|
||||||
|
(final_lines_for_response or buffer_transcription or buffer_diarization or response_status == "no_audio_detected"):
|
||||||
yield response
|
yield response
|
||||||
self.last_response_content = response_content
|
self.last_response_content = current_response_signature
|
||||||
|
|
||||||
# Check for termination condition
|
# Check for termination condition
|
||||||
if self.is_stopping:
|
if self.is_stopping:
|
||||||
|
|
|
||||||
|
|
@ -427,7 +427,8 @@
|
||||||
buffer_transcription = "",
|
buffer_transcription = "",
|
||||||
buffer_diarization = "",
|
buffer_diarization = "",
|
||||||
remaining_time_transcription = 0,
|
remaining_time_transcription = 0,
|
||||||
remaining_time_diarization = 0
|
remaining_time_diarization = 0,
|
||||||
|
status = "active_transcription"
|
||||||
} = data;
|
} = data;
|
||||||
|
|
||||||
renderLinesWithBuffer(
|
renderLinesWithBuffer(
|
||||||
|
|
@ -436,13 +437,19 @@
|
||||||
buffer_transcription,
|
buffer_transcription,
|
||||||
remaining_time_diarization,
|
remaining_time_diarization,
|
||||||
remaining_time_transcription,
|
remaining_time_transcription,
|
||||||
false // isFinalizing = false for normal updates
|
false,
|
||||||
|
status
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderLinesWithBuffer(lines, buffer_diarization, buffer_transcription, remaining_time_diarization, remaining_time_transcription, isFinalizing = false) {
|
function renderLinesWithBuffer(lines, buffer_diarization, buffer_transcription, remaining_time_diarization, remaining_time_transcription, isFinalizing = false, current_status = "active_transcription") {
|
||||||
|
if (current_status === "no_audio_detected") {
|
||||||
|
linesTranscriptDiv.innerHTML = "<p style='text-align: center; color: #666; margin-top: 20px;'><em>No audio detected...</em></p>";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const linesHtml = lines.map((item, idx) => {
|
const linesHtml = lines.map((item, idx) => {
|
||||||
let timeInfo = "";
|
let timeInfo = "";
|
||||||
if (item.beg !== undefined && item.end !== undefined) {
|
if (item.beg !== undefined && item.end !== undefined) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue