Files
codex 740f93f185
PR and Push Build/Test / build-and-test (push) Successful in 11m22s
Improve meeting audio mixing pipeline
2026-05-29 13:47:21 +02:00

1.6 KiB

Add Local Echo Cancellation and MAS Assets

Why

The current mono meeting mix adds microphone and system samples directly, which can clip when both streams are loud. Speaker identity samples are extracted from this stream, so clipping and loopback bleed reduce sample quality.

Azure Speech SDK's Microsoft Audio Stack can perform local acoustic echo cancellation when the Azure backend is used, but it does not expose reusable cleaned PCM chunks back to Meeting Assistant. Meeting Assistant should keep the MAS package/assets available for experiments while using an owned local echo cleanup stage that produces normal 16 kHz mono PCM chunks for storage and every ASR provider.

What Changes

  • Capture microphone and system loopback as separate PCM streams inside the composite audio source.
  • Clean the microphone stream with a local adaptive echo canceller that uses system loopback as the far-end reference.
  • Mix the cleaned microphone and system streams by addition, with configurable gains still available.
  • Write only the mixed temporary WAV used by transcription/finalization; separate channel files are not kept outside diagnostics.
  • Keep Microsoft MAS package/assets in the publish output without exposing an Azure AEC runtime feature flag.

Impact

  • Current mixed WAV output should contain less loopback bleed on the microphone side while preserving remote/system audio.
  • Azure, FunASR, Whisper, pyannote, and speaker samples continue consuming 16 kHz mono PCM chunks.
  • Sidecar temporary WAV files are diagnostic artifacts and are deleted with the main temporary recording.