DeepVQE: from research to every Teams call
Evgenii Indenbom, IC3 AI, Microsoft
DeepVQE: from research to every Teams call
1
Evgenii Indenbom, Microsoft
IC AI Europe
DeepVQE: from research to every Teams call
2
Evgenii Indenbom, Microsoft
About us
DeepVQE: from research to every Teams call
3
Evgenii Indenbom, Microsoft
What is VQE?
DeepVQE: from research to every Teams call
4
Evgenii Indenbom, Microsoft
Acoustic echo
DeepVQE: from research to every Teams call
5
Evgenii Indenbom, Microsoft
network
Audio call
DeepVQE: from research to every Teams call
6
Evgenii Indenbom, Microsoft
Room impulse response (RIR)
Room
(Lossy) network
(Lossy) network
Far-end
Near-end
Noise
Mic-in signal
Mic-out signal
Far-end signal
Quality degradation sources
DeepVQE: from research to every Teams call
7
Evgenii Indenbom, Microsoft
DeepVQE
DeepVQE: from research to every Teams call
8
Evgenii Indenbom, Microsoft
Demo: Noise suppression
DeepVQE: from research to every Teams call
9
Evgenii Indenbom, Microsoft
Microphone
DSP-based noise suppression
AI Model
Demo: AEC – doubletalk scenario
DeepVQE: from research to every Teams call
10
Evgenii Indenbom, Microsoft
Far end
Microphone
AI Model
Demo: Dereverberation
DeepVQE: from research to every Teams call
11
Evgenii Indenbom, Microsoft
Model
Microphone
DeepVQE: constraints and challenges
DeepVQE: from research to every Teams call
12
Evgenii Indenbom, Microsoft
Prior art (2020)
DeepVQE: from research to every Teams call
13
Evgenii Indenbom, Microsoft
Step 1: build the model
DeepVQE: from research to every Teams call
14
Evgenii Indenbom, Microsoft
Real-world data
DeepVQE: from research to every Teams call
15
Evgenii Indenbom, Microsoft
Testing audio quality
DeepVQE: from research to every Teams call
16
Evgenii Indenbom, Microsoft
DNSMOS835 and AECMOS
DeepVQE: from research to every Teams call
17
Evgenii Indenbom, Microsoft
Training data
DeepVQE: from research to every Teams call
18
Evgenii Indenbom, Microsoft
Synthesizer
DeepVQE: from research to every Teams call
19
Evgenii Indenbom, Microsoft
Noise
User speech
Farend
Echo
Microphone
Clean/target
neural network
What’s inside the synthesizer?
DeepVQE: from research to every Teams call
20
Evgenii Indenbom, Microsoft
Towards model: AEC challenges
DeepVQE: from research to every Teams call
21
Evgenii Indenbom, Microsoft
Time vs frequency domain
DeepVQE: from research to every Teams call
22
Evgenii Indenbom, Microsoft
STFT
Short-time Fourier transform
But it’s non-trivial to model phase:
CRUSE�Convolutional Recurrent U-net for Speech Enhancement
DeepVQE: from research to every Teams call
23
Evgenii Indenbom, Microsoft
Loss function
DeepVQE: from research to every Teams call
24
Evgenii Indenbom, Microsoft
Step 2: deploying the model
DeepVQE: from research to every Teams call
25
Evgenii Indenbom, Microsoft
ONNX Runtime (ORT)
DeepVQE: from research to every Teams call
26
Evgenii Indenbom, Microsoft
Why numbers are so different?
DeepVQE: from research to every Teams call
27
Evgenii Indenbom, Microsoft
Other hardware related factors
DeepVQE: from research to every Teams call
28
Evgenii Indenbom, Microsoft
What slows ORT down?
DeepVQE: from research to every Teams call
29
Evgenii Indenbom, Microsoft
memory allocations
state transfer
Conv2d �state transfer
DeepVQE: from research to every Teams call
30
Evgenii Indenbom, Microsoft
Can ORT be faster?
DeepVQE: from research to every Teams call
31
Evgenii Indenbom, Microsoft
Version | Frame Time |
1.7 | 0.53ms |
1.9 | 0.46ms |
1.11 | 0.37ms |
Frame Processing Inference Engine (FPIE)
DeepVQE: from research to every Teams call
32
Evgenii Indenbom, Microsoft
Making FPIE run … faster
DeepVQE: from research to every Teams call
33
Evgenii Indenbom, Microsoft
Optimizing matrix multiplication
Optimization strategies:
DeepVQE: from research to every Teams call
34
Evgenii Indenbom, Microsoft
Block Size | Batch Size | Frame Time |
8 | 1 | 0.299ms |
8 | 2 | 0.206ms |
16 | 1 | 0.211ms |
8 | 4 | 0.179ms |
16 | 2 | 0.167ms |
16 | 4 | 0.148ms |
ORT-1.11 | | 1.28ms |
FPIE and multithreading
DeepVQE: from research to every Teams call
35
Evgenii Indenbom, Microsoft
Modeling challenges and edge cases
DSP-based algorithm poorly handles:
Model adapts slowly during:
DeepVQE: from research to every Teams call
36
Evgenii Indenbom, Microsoft
Alignment block
DeepVQE: from research to every Teams call
37
Evgenii Indenbom, Microsoft
Alignment block V2
DeepVQE: from research to every Teams call
38
Evgenii Indenbom, Microsoft
Complex convolving mask
DeepVQE: from research to every Teams call
39
Evgenii Indenbom, Microsoft
mask
microphone spectrum
enhanced spectrum
DeepVQE architecture
Additional improvements
DeepVQE: from research to every Teams call
40
Evgenii Indenbom, Microsoft
Training pipeline optimizations
DeepVQE: from research to every Teams call
41
Evgenii Indenbom, Microsoft
ICASSP 2023 challenge results
DeepVQE: from research to every Teams call
42
Evgenii Indenbom, Microsoft
ICASSP 2023 Noise Suppression Grand Challenge
ICASSP 2023 Echo Cancellation Grand Challenge
DeepVQE: production model
DeepVQE: from research to every Teams call
43
Evgenii Indenbom, Microsoft
Training pipeline
DeepVQE: from research to every Teams call
44
Evgenii Indenbom, Microsoft
Android
DeepVQE: from research to every Teams call
45
Evgenii Indenbom, Microsoft
FP16
DeepVQE: from research to every Teams call
46
Evgenii Indenbom, Microsoft
Android: no real-time scheduler
DeepVQE: from research to every Teams call
47
Evgenii Indenbom, Microsoft
VQE processing time (20ms frame)�from real call
iOS
DeepVQE: from research to every Teams call
48
Evgenii Indenbom, Microsoft
What’s more?
DeepVQE: from research to every Teams call
49
Evgenii Indenbom, Microsoft
DeepVQE: from research to every Teams call�Evgenii Indenbom, IC3 AI, Microsoft
DeepVQE: from research to every Teams call
50
Evgenii Indenbom, Microsoft
Questions?