| name | noise-reduction-integration |
| description | Add or modify noise-reduction providers in assistant-api with denoiser factory wiring, packet safety, and UI option compatibility. |
Noise Reduction Integration Skill
Mission
Integrate denoisers that suppress background noise while preserving speech quality, low latency, and packet ordering.
Inputs expected from user
- Runtime type: native library, SDK, or service API.
- Input audio assumptions: sample rate, channels, encoding.
- Tradeoff target: stronger suppression vs natural voice.
If user does not answer:
- Assume 16kHz LINEAR16 mono internal input.
- Keep current chunk cadence and low-latency defaults.
Hard boundaries
In scope:
api/assistant-api/internal/denoiser/internal/<provider>/...
api/assistant-api/internal/denoiser/denoiser.go
- optional compatibility updates in
api/assistant-api/internal/type/packet.go
ui/src/providers/<provider>/noise.json
Out of scope:
- STT/TTS provider internals
- VAD/EOS internal algorithms
- telephony transport internals
Packet contract
Input:
Required outputs:
DenoisedAudioPacket with stable context and chunk ordering
- preserve downstream cadence expectations for VAD/STT/EOS
- on processing errors, fallback to original audio with
NoiseReduced=false
Optional diagnostics:
ConversationEventPacket{Name:"denoise"} for provider/debug context
Implementation workflow
- Pick baseline (
rn_noise, krisp).
- Implement provider under
internal/<provider>/.
- Register provider in
denoiser.go factory switch.
- Ensure lifecycle safety (
Close, context cancellation, cleanup).
- Wire provider config/metadata and
noise.json where needed.
- Add unit tests for selection/fallback/chunk integrity.
Done criteria
- Provider selectable by
microphone.denoising.provider.
- No edits under VAD/EOS provider internals.
- Denoised packet behavior validated by tests.
Validation commands
go test ./api/assistant-api/internal/denoiser/...
go test -run TestGetDenoiser ./api/assistant-api/internal/denoiser/...
cd ui && yarn test providers
./.claude/skills/noise-reduction-integration/scripts/validate.sh --check-diff --provider <provider>