News and Updates

  • 1 April 2018

    The Find-A-Word Android App

    Not an April fool's joke, my first Android app is now available for download from the Play Store.

    Find-A-Word finds English words that match a given letter pattern or anagram. It contains a huge dictionary of over 500,000 word forms packed into a tiny 3MB download. It also searches super-fast thanks to its use of a finite-state automaton.

    Find-A-Word is also a web site of mine:, so I used this as a way to learn how to build apps. Over the years I've tried a number of toolkits designed to make app development "easier", but mostly they are a pain to use. A couple of years ago I experimented with Cordova, a toolkit that allows you to write apps in HTML, CSS and Javascript for multiple mobile platforms. It comes with a library (Phonegap) that allows you to access the phone hardware: GPS, compass, accelerometer, etc. However because it is cross-platform it is also least-common-denominator: you get the most basic access supported by all devices. I found it very unhelpful when trying to build an app that recorded high-quality audio. More recently I looked at a toolkit called Crosswalk, which is a cut-down version of Cordova that bundles a complete web browser with your own code. This means that you can rely on the browser environment where your app is running without having to tailor your code to Android or iOS, etc. This worked OK but (i) the downloads were huge (>20Mb) and (ii) the project stopped being developed in 2017. For the Find-A-Word app, I've switched over to building on top of Android WebView, this is the web browser object found on all Android devices. With help from the many tutorial guides on the web (thank you Stack Overflow!) I was able to take my web site code and package it using Android Studio. I've learned a lot by attempting this. It's not so bad when you dive in.

  • 30 December 2017

    How alert are you?

    Needing a simple psychophysical test to generate reference values of alertness, I looked around for existing tests. The most commonly referenced was the Psychomotor Vigilance Task, which has been used in a number of studies of sleepiness and seems to correlate well with subjective scores of sleepiness as well as with EEG measurements. However it is basically just a reaction time task and it is not clear how best to deal with errors of omission or false alarms. It also seems to me to be the kind of thing that wakes you up - exactly the opposite of what you need when testing alertness!

    Inspired by an earlier vigilance task based on watching a clock which occasionally skips ahead (the Mackworth Clock), I've instead created an alertness test of my own, based on tracking a moving object on a touch screen. In this test, the object appears to follow a sinusoidal path, but in fact speeds up and slows down at random times so that the subject needs to be vigilant to maintain tracking accuracy. The test is easy to perform and deliberately monotonous, which I hope will allow for a good measure of alertness. The test provides simple metrics in the form of mean lag, overall accuracy, accuracy in the non-standard cycles, and maximum tracking error. Early results show encouraging correlation of tracking accuracy with self-reported sleepiness.

    You can try out the alertness test here.

  • 24 November 2017

    Avatar Therapy in the News

    Avatar Therapy is a new approach to the treatment of certain mental health conditions, particularly auditory hallucinations (hearing voices). The therapy was invented by Prof. Julian Leff to improve the lives of schizophrenic patients suffering from persecutory voice hallucinations despite the best available drug treatment.

    We have recently completed a major clinical trial of Avatar Therapy at the Institute of Psychiatry funded by the Wellcome Trust. This trial involved 150 patients with persecutory voices divided between two therapy approaches. The results of this trial has recently been published in the The Lancet Psychiatry. A short video about the Avatar Therapy trial can be seen in this BBC News report.

    To find out more about the current state of Avatar Therapy, go to

  • 13 November 2016

    Ripple tank simulation

    A new animated ripple tank demonstration in Javascript. Demonstrates propagation of wave motion in two-dimensions. Includes slit obstacles and target shapes.

  • 25 September 2016

    Starmino - a new daily logic puzzle

    Following on from Loopy Puzzle is another logic puzzle with a daily challenge. Starmino puzzles are variants of Fillomino puzzles with a new twist and a simple, clean user interface. The challenge is to cover the puzzle board with polyomino tiles labelled with digits:

  • 18 September 2016

    Find-a-Word - find English words for crosswords and other puzzles.

    Fed up with on-line tools for finding words for crosswords, I've built my own system at You select the length of word you are looking for and whatever letters you know already and it reports the words that match from a 500,000 word dictionary. You can specify letters in given positions, in any position or some combination. It's also super-fast - at least 10× faster than other on-line systems.

  • 18 August 2016

    Embedding web tools into presentations

    For a few years now I've been writing my lecture handouts as web pages, but still somehow remained stuck with PowerPoint for lecture slides. Recently I've been exploring how lecture and talk presentations can be created in HTML using reveal.js. A great benefit is the possibility to integrate my web-based speech analysis tools directly into the slides using iframes. Here is a demonstration.

  • 26 June 2016

    Bayesian Statistics in Javascript

    I've become excited about Bayesian methods for statistical analysis of data after reading John Kruschke's book on Bayesian methods. To encourage and enthuse others, I thought I might build some web demonstrations of how Bayesian sampling can be used to estimate the range of credible model parameters that fit some data set. I then came across bayes.js, a Javascript library that allows you to perform Bayesian sampling.

    The Bayesian sampling demonstrations use the bayes.js library to show how a t-distribution can be fitted to a sample of data, to show how to compare the means of two samples, and to show how linear regression can be performed. The demonstrations feature live animations of the sampling process, and you can even cut and paste your own data.

  • 1 May 2016

    Loopy Puzzles - a daily challenge

    Loopy Puzzles are simple pen-and-paper puzzles in which you must connect lines to create a loop within the given grid of cells. The web site now has a different puzzle every day that you can solve using your phone.

  • 1 March 2016

    Audio3D - a virtual audio simulation system

    Audio3D is a free Windows program for simulating 3D audio. Audio3D takes the specification for a room and the position of the listener and some sound sources and generates a binaural audio signal that simulates what the listener would hear in the room. You can then experience the sound by listening over headphones. In addition Audio3D supports the use of ahead tracker, so that the room stays stationary while you move your head.

    I wrote Audio3D as part of our E-Lobes project into advanced hearing aids. We plan to run listening experiments in the virtual room which will simulate the kind of problem listening environments for hearing-impaired listeners. Our goal is to develop "3D-aware" signal processing for hearing aids which will unlock the ability of the brain to deal with audio coming from different directions even when the listener's hearing is impaired.

  • 17 December 2015

    VULCAN and Principia Mission

    The iVOICE and VULCAN projects are mentioned on the Principia Mission web pages that describe the science experiments that will be performed by Tim Peake in his mission to the International Space Station.

    We hope that Tim will contribute to VULCAN by making some test recordings for us to explore the practicalities of obtaining high quality audio recordings in space and to analyze how microgravity affects the voice.

    The excitement over Tim's mission has lead to interest by the media in the voice analysis work. See this article from the Daily Telegraph.

  • 15 December 2015

    VULCAN voice analysis project

    The VULCAN project is a new feasibility study also funded by the European Space Agency under the Artes 20 programme. The project partners are UCL Speech, Hearing and Phonetic Sciences, UCL Mullard Space Sciences Laboratory Centre for Space Medicine and the Institute for Biomedical Problems (IBMP) in Moscow, Russia. It will run from January 2016 to January 2017.

    The VULCAN project is part of a larger endeavour investigating how psychological support may be given to astronauts undertaking a long-term mission, for example a mission to Mars that might take up to two years. VULCAN builds on the outcomes of the iVOICE project that showed how signal analysis and machine learning methods may be applied to the prediction of speaker fatigue and cognitive load from voice recordings. The idea of VULCAN is to develop a technology capable of monitoring the general health and well-being of astronauts on long-term missions from speech recordings.

    At the heart of VULCAN is a new technology for Longitudinal Voice Analysis. This is a combination of innovative signal analysis methods together with statistical modelling of a sequence of recordings to uncover either anomalous recordings or long-term trends in the voice. We will demonstrate the effectiveness of the technique by applying it to several thousand spoken messages recorded as part of the Mars500 simulated mission to Mars experiment conducted by IBMP in 2010/11.

    Read more about our applied voice research projects.

  • 23 July 2015

    ESYSTEM web application

    The web version of ESystem, the signals & systems learning tool, has been updated with the ability to upload signals and implement user-designed systems. You can find it on

  • 11 July 2015

    AmPitch web application

    The combination of more powerful computers and the web audio API means we can do much mroe signal processing within web applications. I'v been meaning to update my RTPItch program for a while, so I've taken the opportunity to re-imagine it as a web application. AmPitch is a real-time scrolling amplitude and pitch display designed for speech. It works best when configured for the speaker's normal speaking pitch range. Try it out here.

  • 26 June 2015

    Seahaven Towers Solitaire

    My favourite solitaire game is Seahaven Towers, so I've written a web version using only HTML, CSS and Javascript. It has some novel features, including a guarantee that all games can be solved. Try it out here. Click on the logo for playing instructions.