feat: Add RNNoise denoising + transient suppressor + VAD improvements

- Add RNNoise neural network audio denoising (16kHz↔48kHz resampling)
- Add transient suppressor to filter claps/clicks/pops before RNNoise
- VAD now works on FILTERED audio (not raw) to avoid false triggers
- Real-time denoised audio level display in UI
- Save denoised audio previews in Opus format (.ogg)
- Add extensive Whisper hallucination filter (Tingting, music, etc.)
- Add "Clear" button to reset accumulated translations
- Double VAD thresholds (0.02/0.08) for less sensitivity
- Update Claude prompt to handle offensive content gracefully

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Trouve Alexis 2025-11-23 16:46:38 +08:00 committed by StillHammer
parent 741ca09663
commit 4e9b7f9e95

View File

@ -41,13 +41,12 @@ int main() {
} }
std::cout << " ✓ Configuration loaded" << std::endl; std::cout << " ✓ Configuration loaded" << std::endl;
// Initialize audio // Initialize audio with VAD-based segmentation
std::cout << "[2/4] Initializing audio capture..." << std::endl; std::cout << "[2/4] Initializing audio capture..." << std::endl;
auto& audio_cfg = config.getAudioConfig(); auto& audio_cfg = config.getAudioConfig();
secondvoice::AudioCapture audio( secondvoice::AudioCapture audio(
audio_cfg.sample_rate, audio_cfg.sample_rate,
audio_cfg.channels, audio_cfg.channels
audio_cfg.chunk_duration_seconds
); );
if (!audio.initialize()) { if (!audio.initialize()) {