Wyliodrin #3

Hello, everyone! :)

My RSoC experience at Wyliodrin is getting better every day. We just walked into the last month of the school program and I am glad to share with you my recently hot accomplishments.

In the last post I have told you how I took care about the Analog I/O part, what technologies I used and the difficulties that popped up.

Since then, first of all I had to do some code refactoring and redesigned the table that keeps information about the pins on udoo. I tested again all features available until that moment, too.

Secondly, I focused on the Servo part. Servo allows the users to control their servomotors. Due to the special architecture present on udoo with two processors, an Arduino-compatible one and an iMx6, the existent Servo library on libwyliodrin is not compatible and I used firmata protocol again to make Servo work. I implemented two functions, servo_attach() and servo_write().

Also, I took care of the I2C serial computer bus and coded all the functions that will allow data to be sent and received using i2c.

You can follow my entire work on Github.

Stay tunned for my next post!

 

#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

 

Wyliodrin #2

Hello again!

Since my last post I took a short holiday and detached a little bit from work. So now I am buckling down to go the extra mile.

I have completed the PWM and Analog I/O functions. Now I am working on the I2C and SPI communication. The next step after the serial communication is to extend the same functions for other programming languages. I am very satisfied with my progress so far :D

Th-th-th-that’s all folks!

 

Wyliodrin #2

Greetings from IP Workshop and hello again!

This is my second post on the blog since the RSoC 2014 started and I am very excited about how things are going. Me and Matei did some very interesting stuff during this time and learned a lot about our project and I think the way we approach new challenges shows that.

Over the past weeks I managed to deal with the most provocative challenge until now – coding the Analog I/O functions. There are two processors on the UDOO board: Freescale iMx6 and Atmel Sam3x. The problem was that the user has access only to the iMx6 processor and Analog I/O cannot be controlled from there. Therefore, I spent a long time documenting on this topic and I realised how the processors can communicate with each other. I used firmata and serial port to make them work. [1]

I have also implemented the Time part and some of the Advanced I/O functions that allows you to work with a shift register. I made a few tests and code refactoring, too.

I am looking forward to successfully completing the wiring library coding part. You can find the reference about the wiring library here: [2].

Right now, I am participating at the IP Workshop [3] summer school at Tirgu Mures organized by my mentors and I am making the best of it, trying to learn as much as I can. I attend the Internet of Things course. It is a good time to test all the features that I implemented on the UDOO board till now and ask about every vagueness.

Stay tunned for my next post!

[1]: http://www.firmata.org/wiki/Main_Page

[2]: http://arduino.cc/en/Reference/HomePage

[3]: http://www.ipworkshop.ro/ 

 

 

#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