Voice Comparison in LiveCode?

Peter Reid preid at reidit.co.uk
Wed Dec 27 07:16:36 EST 2017


i'm developing an app for cheap Android tablets (e.g. Amazon Fire 7in) that allows a user to practice speaking a set of words.  The app plays a sample of a word and the user then tries to say the same word.  So far the app can play sample words and capture the user's attempts for the same words.  The sample words and user attempts are uncompressed WAV files.

I'm trying to find the code to do the comparison of 2 WAV files.  Ideally, the code will be in the following formats (best first):

1. LiveCode
2. Pseudocode
3. Other code (Python, Java, C++ etc.)
4. Academic papers

I'm considering 2 general methods:

a. Compare 2 voice clips directly
b. Convert 2 voice clips to text (using voice-to-text) and then compare the words in text format

Note that Ali Lloyd from the LiveCode team has developed various things to help.  However I've hit problems as follows:

a. Ali has wrapped a standard Android sound library that compares 2 WAV files and gives a percentage match. However the comparison is either far too forgiving or far too strict, i.e. highly unreliable.

b. Ali has wrapped a standard Android voice-to-text library which works well with the devices he's tried it on.  However, the Amazon tablets do not support this Android library!

Given the two developments from Ali both relied on preformed blackbox code (Android Java libraries), i may have to implement a comparison algorithm from scratch. A solution that's completely in LiveCode would have several benefits:

i. it may work!
ii. it may work cross-platform
iii. it may be understandable!

General reading around this subject produces recommendations such as using FFTs (Fast Fourier Transforms), MFCCs (Mel Frequency Cepstral Coefficient), etc. but I can't find anything that gives an end-to-end method, from sound in to comparative score out!

Any help with this would be gratefully received!

Peter
--
Peter Reid
Loughborough, UK





More information about the Use-livecode mailing list