Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
1
Debugging, Developing, Distributing
and Demonstrating Complex Signal
Processing Systems with MATLAB
November 3, 2016
Malcolm Slaney
2
Caveat
I’m currently a Research Scientist in Google’s Machine Hearing
Group, but today’s work was done at:• Apple Computer’s Advanced Technology Group
• Interval Research
• IBM’s Almaden Research
• Yahoo! Research
Not• Google
3
Outline
Debugging• CDROM
• Apple ASR via MEX
Developing• Hadoop for Neural Network Grid Search
Documenting and Demonstrating• Auditory Toolbox
• Telluride Decoding Toolbox
• Web API
• Snakes
• Support Vector Classifiers
4
Debugging – AT&T TrueVoice
Unknown (magical) processing
Spectral Estimation in MATLAB
https://www.youtube.com/watch?v=UFqX1Et-dWQ
102
103
Audio Frequency (Hz)
-4
-2
0
2
4
6
8
10
12
Aud
io G
ain
(dB
)
Spectral Analysis of TrueVoice Demo
5
James Kaiser
James: Malcolm, you have to see this
operator
Malcolm: Yea, Jim.
James (next year): Malcolm, you have to
see this operator.
Malcolm: Yea, Jim.
6
Debugging – CDROM Driver
Dropped samples• Software engineers disagreed
Correct
Test Audio
0 100 200 300 400 500 600 700 800-0.02
0
0.02Teager Output
Teager Energy
Operator
7
Debugging – Automatic Speech Recognition
Debugging Acoustic Models• Custom MEX
• Put() and Get() memory
MATLAB used to• Assemble picture of ASR results
• Walk the graph
• (Not possible now due to
memory management.)
8
Developing – Network Grid Search
Subplate Neurons• Structural lattice for developing cortex• Implicated in language learning• Disappear post development
Question• Develop tonotopic distribution?• Frequency map
Hadoop Test• Grid search for parameters• Compiled MATLAB binary• Command line arguments• Distribute MSR everywhere• 8000 CPUs one night
9
Distributing – Auditory Toolbox
Purpose• Common models of auditory perception
• Cochlear models
• Reference implementations
Success• Most popular toolkit for auditory modeling
• One of my highest cited references
• (a Tech Report!!!)
https://engineering.purdue.edu/~malcolm/interval/1998-010/
10
Distributing – Telluride Decoding Toolbox
System ID and Modeling• Audio <-> EEG
• Linear and non-linear models
Reason• Reference implementation
• With data for debugging and
testing
http://www.ine-web.org/software/decoding/
11
Distributing – Web APIs
Want
Solution
HTTP REST
MATLAB Code
MATLAB Code
HTTP
RESTStdio
Glue
12
Distributing - Snakes
http://www.slaney.org/malcolm/pubs.html#snakes
13
Demonstrating – Polynomial Support Vector Machine
http://www.slaney.org/malcolm/pubs.html#svc
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
xx
x
x
xx
x
x
x
x
x
xx x
x xx
x
xx
x
x
o
o
o
oo
o
o
oo
ooo
o
o
o
o
oo
o
o
polynomial
1000
1
1
0.1
C
Radial Basis
Potential Sigma
Neural V
Help
Do It!
Polynomial Dimension
4
Neural C
1
Enter Points Here--left (red) and middle (blue)
mouse)
Clear
Show 2D Results
Show 3D Results
14
Demonstration – SVM Polynomial Distances
http://www.slaney.org/malcolm/pubs.html#svc
15
Demonstration – SVM Polynomial Results
http://www.slaney.org/malcolm/pubs.html#svc
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
16
Demonstrating – Linear Support Vector Machine
Matlab GUI• On top of support vector
classifier
Good• Exploring parameters
• Understanding
performance
http://www.slaney.org/malcolm/pubs.html#svc
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
xx
x
x
xx
x
x
x
x
x
xx x
x xx
x
xx
x
x
o
o
o
oo
o
o
oo
ooo
o
o
o
o
oo
o
o
polynomial
1000
1
1
0.1
C
Radial Basis
Potential Sigma
Neural V
Help
Do It!
Polynomial Dimension
1
Neural C
1
Enter Points Here--left (red) and middle (blue)
mouse)
Clear
Show 2D Results
Show 3D Results
17
Demonstrating – SVM Linear Distance
http://www.slaney.org/malcolm/pubs.html#svc
18
Demonstrating – SVM Linear Results
http://www.slaney.org/malcolm/pubs.html#svc
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
20
Outline
Debugging• CDROM
• Apple ASR via MEX
• Hadoop for NN Grid Search
Developing• Neural network on Hadoop
Documenting and Demonstrating• Auditory Toolbox
• Telluride Decoding Toolbox
• Web API
• Snakes
• Support Vector Classifiers