ASCIIMath creating images

Thursday, May 29, 2014

Hello Lisbon! EUSIPCO 2014, here I come!

Downtown Lisbon, picture by
Keiran Thomas via Wikimedia Commons
As hinted in a previous post, together with Menno Müller I had a paper submitted to EUSIPCO 2014, and yesterday we finally got the review results.  It got accepted by all reviewers, and several of those six (SIX!?!!) really liked the paper, so naturally I'm pleased as punch about it.  And of course I'm already looking into how to get to Lisbon and what else to go see when I'm there.  So while I can't publish the paper on my own homepage until after the conference is over (and besides, the reviewers did ask for some minor corrections that I still have to put in), I can now refer to: J. Thiemann, M. Müller, and S. van de Par, "A Binaural Hearing Aid Speech Enhancement Method Maintaining Spatial Awareness for the User", to be presented at EUSIPCO 2014.

A Sudoku solver in Python

I'm not that great at Python yet.  But practice makes perfect, so just to see if I can do it, I wrote this Sudoku solver in Python (needs v3).  The algorithm is my own though I don't think it is very (or at all) novel, just actually looking for other solvers would spoil the fun!

The implementation is also probably overly byzantine, mostly due to the way the state is stored.  This is done as follows: at the bottom is a list of states for each symbol in a given cell, the states are one of "this symbol is possible here", "this symbol is impossible here", "this symbol is here (set by specification)", and "this symbol is here (set by the solver)".  The last two are really the same for the algorithm but eased my own understanding and debugging - but this adds lines to the code since both states need to be checked in some cases.

The set of states for each cell are then bunched into a list for each row, and then all rows are bunched into a list.  So, to find out if the "4" is possible in column 3, row 7, check if state[3][7][4] is set to 0.

The solver algorithm can now be simply described by three steps: 
  1. After setting a cell to some symbol, mark the same symbol as being impossible in cells in the same groups (row, column box). 
  2. For all cells, check if there is the case where a single symbol is not impossible.  If so, set the cell to that symbol.
  3. For all groups, check where within a group a given symbol is possible in only one cell.  If so, assign that symbol to the open cell.
If in either of step 2 or 3 a cell was set to some symbol, restart from one.  Repeat this until neither of the two last steps sets a new cell to a symbol, at which point the puzzle is solved, it's not completely specified, or there is an ambiguity that I don't handle in this code (I think it is possible for some sort of circular ambiguity to exist).

Monday, May 5, 2014

Spatial properties of DEMAND

One of the nice plots from the presentation,
which didn't make it into the paper for space
reasons. The plots show the fit of the measured
coherence to the theoretical prediction.
Here is my primary DAGA 2014 paper, where I examine some of the intermicrophone coherence of the DEMAND recordings.  Also, I experiment a little with calibration, using multidimensional scaling.  Not much one can squeeze into two pages.

The presentation was a bit of a bust - they put me in a session more about policy and noise pollution etc. ("Psychoakustik - Lärmschutzpolitik"), so there was not much useful interaction.  Oh well, it happens.

The paper is here, and the presentation slides here.  This might be quite useful if you're using DEMAND.  The question if anyone is actually using DEMAND (other than me) is still open - I would love to hear from anyone who is.

A bit more interesting is a paper written by a M.Sc. student in our lab, on the test results of a hearing aid algorithm we've been working on. The paper is "Erhaltung der räumlichen Wahrnehmung bei Störgeräuschreduktion in Hörgeräten", by Menno Müller, Joachim Thiemann, Daniel Marquardt, Simon Doclo and Steven van de Par, and the method we use to do binaural noise reduction with preservation of spatial awareness is outlined.  A more detailed paper has been submitted to EUSIPCO 2014, and in about 2 or 3 weeks I should find out if that has been accepted.


Tuesday, March 11, 2014

DAGA 2014

Attending DAGA 2014 - doesn't require much travelling since it's right here in Oldenburg. I just have just one small presentation (some more DEMAND stuff).  Pretty much all the senior profs of the Hearing4All cluster are somehow involved in the organisation of this event, so for all of us peons it is pretty much de rigeur to attend.  It's a pretty fun conference (so far) - and tonight the big social event is The Barber of Seville at the Oldenburg Staatstheater.

Tuesday, August 13, 2013

EUSIPCO2013 and MLSP2013 papers

The Museum of Marrakech, a CC-licensed picture by
Donar Reiskoffer, from Wikimedia Commons here.
September will be a busy time for me, since I will be going to two conferences - on one of which my family will be accompanying me - including the in-laws!  The first one (with entourage) will be in Marrakesh, Morocco: EUSIPCO 2013. This will be my first time visiting Africa, and I'm really looking forward to it. (After that, I'll need to find an excuse to visit Australia and Antarctica!)

The other conference I'm going to is MLSP 2013, in Southampton, UK, and it should be ... nice.  For some reason, Madeline declined to accompany me on that trip.

The papers I will be presenting are some results from my time at IRISA as part of METISS - now called PANAMA.  At EUSIPCO, I will be presenting "A fast EM algorithm for Gaussian model-based source separation", on the BAEM algorithm, while at MLSP I'll be presenting "An experimental comparison of source separation and beamforming techniques for microphone array signal enhancement", some observations of the Generalized EM algorithm implemented in FASST when applied to multichannel signals.

Hope to see you there!

Friday, July 5, 2013

Multilevel Non-negative Matrix Factorisation à la FASST

The main graphical description of the FASST
NMF procedure from Alexei's paper [1] 

A particularly useful technique I got acquainted with at my old PostDoc position is the use of Non-negative Matrix Factorisation (NMF), in particular how it is being used in the FASST toolbox. While the FASST toolbox is a great comprehensive framework for source separation, its inner workings are a bit obtuse.  At my new group here in Oldenburg, my colleagues are interested in NMF - but rather than ripping it out of FASST, I decided to simply reimplement the key algorithm used (it's not very hard). The final MATLAB code can be found here, with a quick test script here (oh, and you'll need this function for testing as well). Read on for full explanation...

Wednesday, June 5, 2013

Post-Docs and Conferences

A poster session at ICA 2013
It's a bit odd.  I'm at ICA 2013 in Montreal right now, and as a Post-Doc, I kind of feel I should be here mostly to be angling for future employment.  In a sort-of kinda way I am, but long-term...

This time around, I tell people I'm "in between Post-Docs" - and it's not an euphemism for being out of a job.  I am here, visiting my old (adopted) hometown, having literally left Rennes and heading to Oldenburg in a few days.  My soon-to-be supervisor and several of my future colleagues are also attending, and it's nice being able to show them a bit of my former haunts before I go to my new home.  Meanwhile all my furniture (a family of 3 has a lot of that, BTW) is currently in some storage space in Rennes or possibly Paris, and the moving truck is supposed to arrive in Oldenburg the same day we all get there - so never mind jet-lag, there are boxes to be moved! (And a washer, fridge, bed, ...)  Good times.