Mercurial > hg > may
changeset 143:476a03ca013b
Start on feature extractors
author | Chris Cannam |
---|---|
date | Sat, 27 Apr 2013 12:51:12 +0100 |
parents | 9ade635dbad6 |
children | 4065178f776b |
files | yetilab/feature/features.yeti |
diffstat | 1 files changed, 35 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/yetilab/feature/features.yeti Sat Apr 27 12:51:12 2013 +0100 @@ -0,0 +1,35 @@ + +module yetilab.feature.features; + +cplx = load yetilab.block.complex; +fr = load yetilab.stream.framer; + +specdiff frame1 frame2 = + sum (map2 do a b: abs(cplx.magnitude b - cplx.magnitude a) done + frame1 frame2); + +emptyFrameFor frames = + if empty? frames then array [] else cplx.zeros (length (head frames)) fi; + +features featureFunc frames = + (featuresOf prev frames = + case frames of + frame::rest: featureFunc prev frame :. \(featuresOf frame rest); + _: []; + esac; + featuresOf (emptyFrameFor frames) frames); + +featuresOfFile featureFunc file = + case fr.frequencyDomainFramesOfFile { framesize = 1024, hop = 512 } file of + Frames ff: + Features (features featureFunc ff); + Error e: + Error e; + esac; + +{ + specdiff, + features, + featuresOfFile +} +