#4 CMU Sphinx

Hello guys!

We are getting close to the end of the summer, and I am almost done with my work for CMU Sphinx.


Since I last wrote here my main activity implied:

- memory optimizations;

- testing the code;

- preparing the code for integration;


My code has already been integrated and now I am working on the finishing touches.


Thank you for a great summer!

Bogdan Constantin Petcu

#3 CMU Sphinx

Hello all!

Time is passing and we are closer and closer to the end of the “Summer of code”.

Here is my progress since I previously posted:

- I implemented a module the clusters the gaussians from a mean file into a given number of classes. The clustering is made considering the euclidean distance between them. The purpose of clustering is to optimize adaptation process.

- I also implemented a module that adapts the acoustic model using the clustering tool that I’ve just described. The main idea of this type of adapting is the following: for each class(cluster) we collect counts separately and generate a separate transform. This way a more particular transform is estimated for each gaussian.

You can see my work at:

- https://github.com/bogdanpetcu/sphinx4/tree/master/sphinx4-core/src/main/java/edu/cmu/sphinx/decoder/adaptation        - adaptation package that I implemented from scratch.

- https://github.com/bogdanpetcu/sphinx4/tree/master/sphinx4-core/src/main/java/edu/cmu/sphinx/decoder/adaptation/clustered        - clustered adaptation package that I implemented from scratch.

- https://github.com/bogdanpetcu/sphinx4/commits/master        - here you can see all of my commits


Enjoy the rest of your summer!

Bogdan Constantin Petcu


#2 CMU Sphinx

Hello again!

It’s been another two weeks of “coding for decoding” for me.

What did I manage to do since my last post?

Things look really good by now, I’m making constant progress. A very important thing I managed to implement is collecting adaptation data from a Result object. I also implemented the part that uses this data for creating the adaptation file.

I must say that after seeing in the first weeks that the algorithm which estimated the transform was working well, but reading counts from a file generated with sphinxtrain, this was the next big step, to collect counts from the result of the first decoding process. This task is the part that took me the most by now.

I also implemented a component that based on the adaptation data creates a new means file. This is equivalent to having a new adapted acoustic model that will decode better if used with audio files containing speech of the persons that adaptation was made for.


You can see my work at:

- https://github.com/bogdanpetcu/sphinx4/tree/master/sphinx4-core/src/main/java/edu/cmu/sphinx/decoder/adaptation        - adaptation package that I implemented from scratch.

- https://github.com/bogdanpetcu/sphinx4/commits/master        - here you can see all of my commits

Have a great week!

Bogdan Petcu

#1 CMU Sphinx


My name is Bogdan Petcu and I am working within this year’s RSoC program at CMU Sphinx.

CMU Sphinx is a toolkit used for building applications that use speech recognition. Our aim for this summer is to implement a module in Sphinx4 that adapts the data that is used for decoding so that recognition process has better results.

For decoding with Sphinx4 you could use a general acoustic model (e.g for English language), but if you want to decode audio files that contains speech of non-native speakers, or if the recording environment has background noise you would want to adapt this general acoustic model for those particular speakers so that the decoding process is more precise. Currently adapting an acoustic model requires using the sphinxtrain tool provided by CMU Sphinx. Using sphinxtrain requires building manually some files ( recordings, their transcription etc.).

Our aim is to make Sphinx4 adapt the acoustic model by itself using information from the first decoding and after that redecode with the adapted model improving the recognition process.

Until now I implemented a component that collects adaptation data and another component that based on the collected adaptation data builds a specific file containing the transformation that will be applied to the acoustic model in order to adapt it.


Github repository: https://github.com/bogdanpetcu/sphinx4