From 2b787e8e6411a0b92c8d18f49ed7b7f6e3fa66fe Mon Sep 17 00:00:00 2001 From: Beingpax Date: Tue, 16 Sep 2025 17:30:46 +0545 Subject: [PATCH] Centralize hallucination filter --- VoiceInk/Services/AudioFileTranscriptionService.swift | 1 + VoiceInk/Services/ParakeetTranscriptionService.swift | 3 --- VoiceInk/Whisper/LibWhisper.swift | 3 +-- VoiceInk/Whisper/WhisperState.swift | 1 + 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/VoiceInk/Services/AudioFileTranscriptionService.swift b/VoiceInk/Services/AudioFileTranscriptionService.swift index c811496..6fdb07a 100644 --- a/VoiceInk/Services/AudioFileTranscriptionService.swift +++ b/VoiceInk/Services/AudioFileTranscriptionService.swift @@ -60,6 +60,7 @@ class AudioTranscriptionService: ObservableObject { } let transcriptionDuration = Date().timeIntervalSince(transcriptionStart) + text = WhisperHallucinationFilter.filter(text) text = text.trimmingCharacters(in: .whitespacesAndNewlines) // Apply word replacements if enabled diff --git a/VoiceInk/Services/ParakeetTranscriptionService.swift b/VoiceInk/Services/ParakeetTranscriptionService.swift index cd0d315..5649e06 100644 --- a/VoiceInk/Services/ParakeetTranscriptionService.swift +++ b/VoiceInk/Services/ParakeetTranscriptionService.swift @@ -144,9 +144,6 @@ class ParakeetTranscriptionService: TranscriptionService { text = WhisperTextFormatter.format(text) } - // Apply hallucination and filler word filtering - text = WhisperHallucinationFilter.filter(text) - return text } diff --git a/VoiceInk/Whisper/LibWhisper.swift b/VoiceInk/Whisper/LibWhisper.swift index 07132ea..a5c8527 100644 --- a/VoiceInk/Whisper/LibWhisper.swift +++ b/VoiceInk/Whisper/LibWhisper.swift @@ -107,8 +107,7 @@ actor WhisperContext { for i in 0.. WhisperContext { diff --git a/VoiceInk/Whisper/WhisperState.swift b/VoiceInk/Whisper/WhisperState.swift index acc3b1e..9c9e11f 100644 --- a/VoiceInk/Whisper/WhisperState.swift +++ b/VoiceInk/Whisper/WhisperState.swift @@ -268,6 +268,7 @@ class WhisperState: NSObject, ObservableObject { let transcriptionStart = Date() var text = try await transcriptionService.transcribe(audioURL: url, model: model) + text = WhisperHallucinationFilter.filter(text) let transcriptionDuration = Date().timeIntervalSince(transcriptionStart) if await checkCancellationAndCleanup() { return }