Improve transcription accuracy with overlapping audio chunks
Changes: 1. Changed UI text from "Recording" to "Transcribing" for clarity 2. Implemented overlapping audio chunks to prevent word cutoff Audio Overlap Feature: - Added overlap_duration parameter (default: 0.5 seconds) - Audio chunks now overlap by 0.5s to capture words at boundaries - Prevents missed words when chunks are processed separately - Configurable via audio.overlap_duration in config.yaml How it works: - Each 3-second chunk includes 0.5s from the previous chunk - Buffer advances by (chunk_size - overlap_size) instead of full chunk - Ensures words at chunk boundaries are captured in at least one chunk - No duplicate transcription due to Whisper's context handling Example with 3s chunks and 0.5s overlap: Chunk 1: [0.0s - 3.0s] Chunk 2: [2.5s - 5.5s] <- 0.5s overlap Chunk 3: [5.0s - 8.0s] <- 0.5s overlap Files modified: - client/audio_capture.py: Implemented overlapping buffer logic - config/default_config.yaml: Added overlap_duration setting - gui/main_window_qt.py: Updated UI text, passed overlap param - main_cli.py: Passed overlap param 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -278,6 +278,7 @@ class MainWindow(QMainWindow):
|
||||
self.audio_capture = AudioCapture(
|
||||
sample_rate=self.config.get('audio.sample_rate', 16000),
|
||||
chunk_duration=self.config.get('audio.chunk_duration', 3.0),
|
||||
overlap_duration=self.config.get('audio.overlap_duration', 0.5),
|
||||
device=audio_device
|
||||
)
|
||||
|
||||
@@ -296,7 +297,7 @@ class MainWindow(QMainWindow):
|
||||
self.is_transcribing = True
|
||||
self.start_button.setText("⏸ Stop Transcription")
|
||||
self.start_button.setStyleSheet("background-color: #e74c3c; color: white;")
|
||||
self.status_label.setText("🔴 Recording...")
|
||||
self.status_label.setText("🔴 Transcribing...")
|
||||
|
||||
except Exception as e:
|
||||
QMessageBox.critical(self, "Error", f"Failed to start transcription:\n{e}")
|
||||
|
||||
Reference in New Issue
Block a user