chore: updated

This commit is contained in:
Neko Ayaka
2026-08-13 19:50:09 +08:00
parent 935347828c
commit 0d2a24aef5
2 changed files with 9 additions and 7 deletions
+6 -1
View File
@@ -57,5 +57,10 @@
"appimage", "appimage",
"localforage" "localforage"
], ],
"vitest.disableWorkspaceWarning": true "vitest.disableWorkspaceWarning": true,
"editor.quickSuggestions": {
"comments": "off",
"strings": "off",
"other": "off"
}
} }
@@ -328,11 +328,10 @@ const { activeTranscriptionModel, activeTranscriptionProvider } = storeToRefs(he
const hearingPipeline = useHearingSpeechInputPipeline() const hearingPipeline = useHearingSpeechInputPipeline()
const { removeStreamingTranscriptionConsumer, transcribeForMediaStream, stopStreamingTranscription } = hearingPipeline const { removeStreamingTranscriptionConsumer, transcribeForMediaStream, stopStreamingTranscription } = hearingPipeline
const { error: transcriptionError, supportsStreamInput } = storeToRefs(hearingPipeline) const { error: transcriptionError, supportsStreamInput } = storeToRefs(hearingPipeline)
const transcriptionConsumerId = 'stage-tamagotchi:voice-input'
const chatStore = useChatStore() const chatStore = useChatStore()
const chatSession = useChatSessionStore() const chatSession = useChatSessionStore()
const streamingTranscriptionUnavailable = ref(false) const streamingTranscriptionUnavailable = ref(false)
/** Identifies this page in the shared streaming transcription session. */
const transcriptionConsumerId = 'stage-tamagotchi:voice-input'
const shouldUseStreamInput = computed(() => supportsStreamInput.value && !!stream.value && !streamingTranscriptionUnavailable.value) const shouldUseStreamInput = computed(() => supportsStreamInput.value && !!stream.value && !streamingTranscriptionUnavailable.value)
const voiceTranscriptBuffer = createTranscriptBuffer({ const voiceTranscriptBuffer = createTranscriptBuffer({
flushDelayMs: 1200, flushDelayMs: 1200,
@@ -575,7 +574,7 @@ function handleStreamingSentenceEnd(delta: string) {
void sendVoiceInputTextToChat(finalText) void sendVoiceInputTextToChat(finalText)
} }
/** Replaces the speaker caption with the provider's current volatile transcript. */ /** Replaces the caption with the provider's current volatile transcript. */
function handleStreamingTranscriptionUpdate(text: string) { function handleStreamingTranscriptionUpdate(text: string) {
if (isVoiceInputSuppressed()) if (isVoiceInputSuppressed())
return return
@@ -648,14 +647,12 @@ async function startAudioInteractionConsumers() {
}) })
if (inspectVoiceInputStreamingRequestGate().skip) { if (inspectVoiceInputStreamingRequestGate().skip) {
removeStreamingTranscriptionConsumer(transcriptionConsumerId)
await stopStreamingTranscription(true) await stopStreamingTranscription(true)
return return
} }
if (transcriptionError.value) { if (transcriptionError.value) {
streamingTranscriptionUnavailable.value = true streamingTranscriptionUnavailable.value = true
removeStreamingTranscriptionConsumer(transcriptionConsumerId)
await stopStreamingTranscription(true) await stopStreamingTranscription(true)
console.warn('[Main Page] Streaming transcription unavailable; using recorder-backed fallback:', transcriptionError.value) console.warn('[Main Page] Streaming transcription unavailable; using recorder-backed fallback:', transcriptionError.value)
} }
@@ -674,7 +671,6 @@ async function stopAudioInteractionConsumers(options: StopAudioInteractionOption
clearAssistantSpeechResumeTimer() clearAssistantSpeechResumeTimer()
clearHearingInput() clearHearingInput()
voiceInputGeneration += 1 voiceInputGeneration += 1
removeStreamingTranscriptionConsumer(transcriptionConsumerId)
await Promise.all([ await Promise.all([
stopStreamingTranscription(true), stopStreamingTranscription(true),
@@ -742,6 +738,7 @@ onMounted(() => {
}) })
onUnmounted(() => { onUnmounted(() => {
removeStreamingTranscriptionConsumer(transcriptionConsumerId)
for (const [timer, sourceId] of hearingInputClearTimers) { for (const [timer, sourceId] of hearingInputClearTimers) {
clearTimeout(timer) clearTimeout(timer)
clearHearingInput(sourceId) clearHearingInput(sourceId)