Voice Input for Chatbot: Noise Handling & Custom Vocabulary

Resolved 💬 2 comments Opened Jan 21, 2026 by Aabharan Closed Jan 21, 2026

Feature Request: Voice Input for Chatbot

Overview

Add voice input capability to the chatbot that can handle industrial/factory environments with noise and recognize domain-specific vocabulary.

Requirements

1. Noise Robustness
  • Handle background noise common in factory environments (machinery, alarms, ventilation)
  • Support voice activity detection (VAD) to distinguish speech from ambient noise
  • Consider noise suppression/cancellation preprocessing
2. Custom Vocabulary Support
  • Recognize domain-specific terms: equipment names, part numbers, procedure names
  • Examples from XFab context:
  • Equipment: "Novellus SPEED", "Sequel", "Altus", "ESC", "loadlock"
  • Parts: "shower", "dome", "slit", "gas ring", "heater bloc"
  • Procedures: "handoff", "recovery", "crushball test"
  • Support for French technical terms (multilingual factory environment)

Technical Considerations

Speech-to-Text Options

| Option | Pros | Cons |
|--------|------|------|
| Google Cloud Speech-to-Text | Custom vocabulary, noise robustness, phrase hints | Cost per minute |
| Whisper (OpenAI) | High accuracy, multilingual | No custom vocabulary boosting |
| Deepgram | Real-time, custom vocabulary, noise handling | Third-party dependency |
| AssemblyAI | Good noise handling, custom spelling | Cost |

Recommended Approach
  1. Primary: Google Cloud Speech-to-Text with phrase hints for custom vocabulary
  2. Preprocessing: WebRTC-based noise suppression in browser before sending audio
  3. Fallback: Allow text input when voice fails

Implementation Notes

  • Frontend: Web Audio API for capture + noise suppression
  • Consider push-to-talk vs continuous listening modes
  • Cache custom vocabulary per company (equipment names from knowledge graph)

Acceptance Criteria

  • [ ] Voice input button in chat interface
  • [ ] Handles 70+ dB ambient noise environments
  • [ ] 90%+ accuracy on domain-specific terms
  • [ ] Works in Chrome, Safari, Firefox
  • [ ] Graceful fallback when microphone unavailable

Related

  • Chat module: apps/api/app/services/chat_module/
  • Frontend chat: apps/web/src/components/chat/

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗