Speech:Spring 2011 Matt Log


 * Home
 * Spring 2011
 * Proposal
 * Report

Week Ending March 8th, 2011
Install Sphinx and tools, trunking, Setup Sphinx, SphinxTrain, and CMU toolkit, Run a Test to verify that it is working. Collaerate with rest of group to make sure they get what they need to complete done. Sphinx has been installed on Caeser as well as sphinxtrain and cmutoolkit. After those were completed there was an issues getting installing them on the other machines due to missing G++ which allows compiling the software. Once this missing kit was realized, Prof. Jonas and I were in contact back in forth and we decided to attempt to setup an internet bridge between Caeser and Asterix temporarily so we could install the necessary tools to get sphinx and its tools installed. After attempted to set this bridge up a few times the server went down for a long period and was finally discovered that this was due to an IP address change. I was able to reconnect with new IP address and continue working attempting the bridge but was unsuccessful when again the server was inaccessible and I had to stop working. This time being inaccessible was due to the servers being moved downstairs and now we have to VPN in. This was discovered on Monday by Chris. So I was unable to complete any more work after that point. Now for Trunking, The only information I was able to get for this was that we need teaming not trunking, trunking is between two switches while teaming is NICs to switches. Most NIC cards that support teaming already have the software built in to be able to complete this task. So we will need to look into that. Installing the applications has now been complete. I tried to run a few tests on Asterix to make sure that the application was working, It started to go through the data and kept getting held up for some reason. That needs to be discussed in the next class. All tools have been setup on Asterix.
 * Task:
 * Results:

Next week what would need to be completed is more testing on how to get a internet bridge to work so we can get what we needed installed in order to finish what we need. Once we get that internet bridge up then we can continue with the installation on the rest of the machines. I plan to start researching the internet bridge more on Wednesday the 2nd and continue till I find a solution which could be Saturday again. Once the solution is found I will need another 2 days to get all the software installed on the machines that were assigned to me. Now that a C compiler is installed we were able to complete the install of sphinx and its tools. So next week we need to work on the train and get the tests working correctly. Once we do we will need to get the train sets ready to be processed. We will get the sphinx train to work with the demo by the end of this week the 11th. I will collaborate with the rest of my group and write steps for them to follow to install the tools needed on the machines that they have. Once they have these steps I will make myself available for question if there are any issues.
 * Plan:

Getting parallel processing to work seems like it is going to be tough. Everything else seems like it should be smooth.
 * Concerns:

Week Ending March 22nd, 2011
Update the proposal initially to get it up to par with what is needed and assign users in my group to specific tasks that are to be completed by specific dates. Run the tests modules on the server, this will help us grasp a better understanding of how the train works and will make it easier for us to complete the full when we do receive it. I have had each of the users spend time to update each of the sections of the proposal. Each of the users completed their specific sections and has forwarded that to me. I combined each of their sections together to fill in all of our sections of the document. Because this was not sufficient for the needs of the proposal, Prof. Jonas has updated the proposal to be more businesslike and oriented and has asked that I assign users to each of the tasks at hand. I have split up each of the users on my team and have designated that they work on certain sections. I have sent each of them an email telling them to look at the document and see which sections they are assigned to and if they have any issues with the section and the task to let me know, this will give me an opportunity to revise the timeline or reassign the task to someone more appropriate. I have no received any emails back so I assume that each of the users understands their tasks and will ask questions when they arise. I have been able to complete the testing on Asterix of the test module that comes with the software. It runs through he test and outputs typed numbers from a wav file. The files that do this can be broken down so we as a group can go through and see how it is completing this task which would allow us to automate it more with our own scripts. Running the test is pretty simple and can be completed using the correct path to the wav file as well as being in the correct directory when running it.
 * Task:
 * Results:

For next week my group needs to complete the tasks that have been assigned to them in the proposal which has been forwarded to each of them. We need to get the dictionary downloaded and figure out where it needs to go and how to get it there on each of the machines. Also by next week we will need to complete the tasks associated with tools to help with the training. We need to download them and set them up so they can interact with all the programs that it requires. That we will be unable to complete everything that is needed before the end of this class. It seems like getting all the parallelization and all the scripts completed before the end of the semester is going to be really hard.
 * Plan:
 * Concerns:

Week Ending March 29th, 2011
For next week my group needs to complete the tasks that have been assigned to them in the proposal which has been forwarded to each of them. We need to get the dictionary downloaded and figure out where it needs to go and how to get it there on each of the machines. Also by next week we will need to complete the tasks associated with tools to help with the training. We need to download them and set them up so they can interact with all the programs that it requires. I looked through the scripts to try to understand how this test train ran so we could start working on implementing, training automation :compare_table.pl, test_init_gau.pl, test_mk_mdef_gen.pl, test_bugcase1.pl, test_init_gau_lda.pl   test_norm.pl, test_bugcase2.pl, test_lda_train.pl, test_printp.pl, test_cp_parm.pl, test_make_topology.pl, test_prunetree.pl, test_dict2tri.pl, test_mk_flat.pl , testlib.pl. I tried to run a compile all scripts function that I found on the sphinx site but I returned errors that I have been unable to work out. “ perl scripts_pl/RunAll.pl Can't open perl script "___BASE_DIR___/scripts_pl/scripts_pl/___BASE_DIR___/scripts_pl/00.verify/verify_all.pl": No such file or directory Something failed: (___BASE_DIR___/scripts_pl/00.verify/verify_all.pl)”
 * Task:
 * Results:

After looking through the scripts I realize I still need more time to follow how they work. I do have a much better understanding of how it works and will continue this through the next iteration of the project. I sent some team members some info they will need to get started on their projects for this iteration and gave some good instructions. There was little collaboration this week and that was partly because of me. Next week I would like the group to communicate much better and actually work with each other on their sections. This will allow for a much better output of a final product for our group. Next week I will spend the time to meet with each member of the group and see where they are at with their projects. I will also work with Mike Jonas to figure out m issues and see how to complete my task at hand. I will make sure that each of the team members is on track with what they need to do and I will delegate next week’s work.
 * Plan:

I have a few concerns about what is going on. We as a group need to communicate more. I feel like we are all trying to work completely individual and with a project like this we need a lot of team work and we all need to understand each other’s goals and what we are working on. In order for our final results of this project to be complete and well done we all need to start being more vigilant including me on collaboration.
 * Concerns:

Week Ending April 5th, 2011
Figure out how the training works. Look through the files that incorporate it and see what is needed to be complete in order to change the repository of the files and also where the voice and switch board files will be found. Read Through some files on server that gives me a better understanding of what is going on. My part of this project incorporates alot of the other sections. Training is alot of stuff put together. My Task is to see how they all fit together so they can be reworked so we can have our own repository for the files that we want to train and not have to stick with what they currently have. I am currently building a small training set to allow me to see how it currently works and make sure I do know how it is working and then i can try to rework what they have in order to have a different location of the files and file directory structure. From what I could see on the server it seems like there will be a lot of different files that will be changed. I worked with Jonas last Tuesday and we discovered a file that has the basic information on how this is completed. Tinydoc.txt is the file that explains almost how the whole training process works. This is located in Speechtools/SphinxTrain-1.0/doc You start out by making a new directory ( mkdir time) then you go into that folder. Once in there your run (perl $SPHINXTRAINDIR/scripts_pl/setup_SphinTrain.pl -task “name of directory you created” The main conifg file is put ino  etc/sphinx_train.cfg You will put the wav files that are needed ino the wav/ file that is now in the structure in the new file that you created.  In the file etc/”name of folder”.fileids you put the list of all the wav iles that are needed into it like  wav0001 wav0002 wav0003 etc.. Then in the file etc/”name of folder”.phone  you enter all the phone names  like AA EE AE etc… Next you have a word transcription of each file which is under etc/”name of file”.transcription  each one must end in (FILEID) an example is THE TIME IS NOW … (WAV0001) Next you have a etc/”name of file”.filler  This has a list of the filler words and there pronunciation (using the phones)  example is SIL SIL  SIL   /NOISE/ +NOISE+ After this we will need a dictionary which will be created from the switchboard files. Considering we are doing this on our own we will need to use bin/make_dict and etc/”name of file”.transcription  This will then create the files etc/word.known  etc/word.unknown Once we like the dictionary that we created run the command mv etc/word.known etc/”name of folder”.doc Then we make the melcep feature files with the command (perl scripts_pl/make_feats.pl –ctl etc/”name of folder”.fileids Now we can start on the basic perl scripts. Their results will be put in perl_”name of folder”.html which we can view as things progress. This isn’t flawless and errors will show. That is how a basic Train is run Create and run actual wav files through this process to make sure it works and will be viable one we have created our directory structure. That we will have a hard time rewriting all the scripts to do what we need them to actually do with the directory structure that we want.
 * Fri - N/A work
 * Sat - N/A work
 * Sun - N/A family issues
 * Mon - Read Through some files on server that give me a better understanding of what is going on. My part of this project incorporates alot of the other sections. Training is alot of stuff put together. My Task is to see how they all fit together so they can be reworked so we can have our own repository for the files that we want to train and not have to stick with what they currently have. I am currently building a small training set to allow me to see how it currently works and make sure I do know how it is working and then i can try to rework what they have in order to have a different location of the files and file directory structure.
 * Tues -
 * Task:
 * Results:
 * Plan:
 * Concerns:

Week Ending April 12th, 2011
Bmq29Matt. Will the dictionary that I uploaded last week work for you? I think that I posted the link on Chris's page last week. It's a complete English dictionary for Sphinx.
 * Sun: Started setting up a training module to use to run through the trainer. Working on setting up a test Dictionary that works with the voice that I'm recording.

msf27Brian: That may work for me as I was unable to complete the train myself. I will have to attempt something new today.

Run a Train Module in the trainer and figure out how it works and Run the switchboard train. Attempted to create and run my own train modules. The copy over of the files didn't seem to work correctly and I couldn't get the directory structure correct. The directory structure is in the time folder which is the root directory. There is a Wav folder in there that isn’t working correctly when I moved my wav files in it. I removed the wav files because they aren’t working but that was it. I tried to run the train itself after I put the wav files in and put the dictionary in the location that tinydoc said to put it. And did all it said but it still did not work. I’m not sure what was wrong but I need to some research into it. After I did the recording testing I email the others in the other group because I wanted to see where the switchboard files were and if they had a mini set that I could use. I saw Brian’s section on the wiki today so I have been unable to take his suggestion and use his dictionary so that can be done today. I had updated the wiki a few times this week when I had completed the work that was needed. I also reviewed the work that others were doing and tried to see how it was done. I tried to do more work and try to figure out what work others are doing because I want a broader overview of how each section will work. I have a lot planned for this next week. I need to take the switchboard data and have some test wav files to put in the section. And do some testing. I will work with Brian this week on getting some of the data that is needed and getting my train run. My concerns are that I’m having issues running the actual train itself. I’m not sure where the “make command is pulling the information from because it doesn't seem like its pulling the data from the directory structure that we created. I have tried to break the make file down to see but I didn't want to rewrite the file until we discussed that in the class this week.
 * Task
 * Results:
 * Plan:
 * Concerns:

Week Ending April 19th, 2011
Bmq29Matt. Any luck with training this week? Where are you on it? I am going to see if I can get another one of the servers, probably asterisk up and running with torque tonight and then tomorrow I would like to confirm that torque is set up and recognizing the two systems. After that I would like to run a train using the queue and see how the systems behave. Processing power, etc, hopefully ending up with a knowledge of what Sphinxtrain is doing in it's parallelization.

Week Ending April 26th, 2011

 * worked on Report beginnings

The capstone project was setup to challenge, teach, and develop skills in students to give them a greater understanding of what a job is truly like. All of the students work collaboratively to understand what the project is, figure out how to accomplish the goal, and then actually attempt to achieve that goal. It starts off with research and then moves into development testing and implementation of the information found during the research process.
 * Background

The purpose of this project was to convert recorded voice files to text files. This would be classified as Speech Recognition. Speech Recognition can be very useful and is a great project for students to work on. It can always be improved and implemented in new ways and in new areas of our lives. This allows students to hone their skills in a real life applicable area which gives it more meaning to the students.
 * Purpose

The students were able to start by setting up the physical servers that were to be used for the speech recognition. This project was designated nine servers each of which had a quad core xenon processor. Suse Linux was the operating system of choice for this project as it allowed for great control on a stable open source system. The servers’ names are: Caeser, Asterix, Obelix, Miraculix, Troubadix, Majestic, Idfix, Automax, Methusalix, and Verlehnix. The names were chosen by Professor Jonas and they each resemble a name in a fiction comic series. The students could only access these servers from SSH and many of them had to learn how to use SSH in order to complete their tasks.
 * Tools

Once the servers were setup they had to create speech dictionaries and models that allowed for the system to “learn” how to convert voice to text. Next would be training the system to understand the quickest way to actually convert. What the students were doing through all this was they had to go through each step manually and complete everything by hand first. Then they had to try to create each step of the process with automated scripts that allowed it to be completed automatically. The purpose for having the students complete it by hand first was so they understood how the process worked from start to finish in depth which would allow them to create the needed scripts for automation with accuracy and understanding.

There were many tools involved in the process and they each had a vital role. All of the tools used were open source to teach the students that a project like this can be done for free in the hopes they will bring this knowledge with them when they work for firms. The students started out by learning Linux and understanding some basic commands. Each student was designated their own server and was taught the things that allowed them to install the needed applications on their server.

Bmq29Matt, any luck with training yet? I finally got the servers to recognize each other in torque today, so the queue should be ready to accept a train on either asterix or miraculix.

- Tuesday - attempted to setup training to run on asterix and am going to work with brian next week to be able to train across servers