Speech:Spring 2017 Zachary Dudek Log


 * Home
 * Semesters
 * Spring 2017
 * Proposal
 * Report
 * Information - General Project Information
 * Experiments - List of speech experiments

Week Ending February 7th, 2017
2/3 - Logging on to media wiki with our active directory accounts. Also, logging into Caesar with our AD account zjj23@caesar.unh.edu. Preparing for our overall rough draft of the proposal. Creating Slack accounts.
 * Task:

2/4 - Logging into Caesar to familiarize myself with the UNIX commands and the \mnt directory.

2/6 - same as above

2/7 - Log in to check logs 2/3 - I successfully logged on to media wiki with my account and was able to study some of what the other students from previous semesters worked on. This helped in wrapping my head around the project. I was able to log on to Caesar with my account credentials. Set up a slack.com account for the comp790 group that was created for class so we can communicate at this point in general about the rough draft proposal this weekend.
 * Results:

2/4 - was able to take a look at some of the UNIX commands that will be needed and the directories that I will be utilizing for Experiment scripts.

2/6 - Started developing a rough idea of what will be on the rough draft of the proposal.

2/7 - Log in to check logs

2/3 - Help groups work on project proposal by study the information at hand. Read more into the wiki and find helpful information that will help my understanding of where the project is at currently and how to tweak it to make it better.
 * Plan:

2/4 - Get a better understanding of the scripts that will be needed like addExp.pl and others to run train and decode.

2/6 - Understand further what went into the making of the addExp.pl script and see if there can be improvements to any of the scripts utilized for adding and decoding.

2/7 - Log in to check logs 2/3 - Staying connected with group. Learning more of the requirements of the project.
 * Concerns:

2/4 - perl scripts and running train.

2/6 - running first experiment and finishing rough idea of proposal submission.

2/7 - Log in to check logs

Week Ending February 14, 2017
2/8 - Fix addExp.pl. Remove the wildcats functionality and add AD only
 * Task:

2/12 - Familiarize myself with sphinx(sphinx 3 specifically) by reading up on articles on the wiki Speech Recognition_Related Readings and by watching videos on youtube.com of people playing around with sphinx CMU with instructions on what they are doing step by step.

2/13 - Learn how to edit scripts while on Caesar when having to change some code in the file.

2/14 - Checking logs and making sure that the group is on track to complete the next phases of fixing addExp.pl by ultimately Forcing the script to create a sub experiment if creating a root experiment

2/8 - We were able to alter the addExp.pl script to remove the wildcats domain functionality and make it AD only.
 * Results:

2/12 - I was able to gain a understanding of some of what sphinx is doing for the project when it comes to the interpretation and reading of the wav files that then decode into txt files. The text files are iterated through with sentences from the audio that the audio file plays. When the decoder is run and the sphinx system runs the audio files are interpreted to the best of the ability of the system to recognize the users voice making the interpretation as close as to what was actually being said as possible. This is called training or trains to make the software system dynamically learn and become more accurate with more attempts.

2/13 - I found that VI can be accessed on Linux based systems like Caesar the server that the project resides on. Once you have learned vi, you will find that it is a fast and powerful editor. vi has no menus but instead uses combinations of keystrokes in order to accomplish commands. If you are just beginning to learn Unix, you might find the Pico editor easier to use (most command options are displayed at the bottom of the screen).
 * To start using vi, at the Unix prompt type vi followed by a file name. If you wish to edit an existing file, type in its name; if you are creating a new file, type in the name you wish to give to the new file.

%vi filename
 * Then hit Return. You will see a screen similar to the one below which shows blank lines with tildes and the name and status of the file.

~     ~      "myfile" [New file]

2/14 - The group is meeting tomorrow to work on the next phases of the development of the script addExp.pl. 2/8 - Look into making tweaks to the functionality of addExp.pl further. Add to the project proposal to make sure that it is ready for the deadline.
 * Plan:

2/12 - Continue further readings on the wiki page Speech Recognition_Related Readings and gain a better understanding of how to run a train successfully on Caesar to help the corpus grow with more trains and experiments. Also better my understanding of the scripts that automate some of the processes on Caesar.

2/13 - To continue learning the project and how to access and edit files and how to run trains on the corpus.

2/14 - Getting ready to tweak the addExp.pl script for the next phases of implementation. Further working on the proposal that is due on the 22nd of the this month to determine deadlines and who is doing what for the project. 2/8 - Looking into the perl program addExp.pl to see the inner workings and make changes where needed in accordance with our task for the project. Learning to read through the program to make sense of the needed changes.
 * Concerns:

2/12 - Reading up on relevant information concerning the project and gaining a further understanding of the scripts that my group will need to manipulate and edit to make the system more functional and efficient. This will be easy enough as long as I can understand the subtle differences of perl and other programing languages.

2/13 - I would like to successfully run a train and add and experiment because this will help me learn and have sphinx be able to interpret the files and structure of the system better to make for a smooth running environment on both the system and the users ends.

2/14 - sticking to the plan and also focuses on making experiments as well.

Week Ending February 21, 2017
2/18 - My goal was to look at Speech:MakeTest.pl and see if it is a working script and if it could be edited. If it can be edited what are some of the changes that might be needed to improve the script. Are people utilizing the script. Inform people of the script and make sure that they are aware that it exists.
 * Task:

2/19 - I was to look into all of the scripts Speech:Scripts to see if there was anything that resembled a make decode script that could be utilized for making a decode.

2/20 - Logged on to check if the proposal was in the final stages and ready to be submit on the 22nd. Considering the scripts copy train and copy decode.

2/21 - Logged on to check logs

2/18 - I looked at the script and found out what it does. Found that it Prepares files for a decode from the source, with the files generated being put in the destination. Except for trans (which can either be a filepath or a "flag" by starting the parameter with a dash), all of the arguments are filepaths, with source and destination referring to experiment directories, and the trans and corpus referring to the corpus directories. If you choose to use a flag for trans, then these flags will select the .trans file to use to create the language model and fileids:
 * Results:
 * -d means use test/trans/dev.trans
 * -e means use test/trans/eval.trans
 * -t means use test/trans/train.trans

2/19 - I found that Speech:MakeTest.pl was the closest thing that I could find to such a file to automate the process of a decode file by location of path. This script seems to search the file if you specify a path.

2/20 - The proposal is being finalized if not finalized at this point and looks good with all of the adequate information that it needs to be submit on Feb. 22nd. The copy train and copy decode would seamlessly copy train and decode setups from this year or previous year experiments and make the process more automated through utilizing the script.

2/21 - Logged on to check logs 2/18- To personally test the script now and make sure that it is good to go for the decode portion of the process.
 * Plan:

2/19 - To test the script now that I am sure that it might be of use for the make decode file that I am looking to make/ edit.

2/20 - Review proposal one more time. Think about implementing the copy train and copy decode scripts to automate the process of copying setups.

2/21 - Logged on to check logs 2/18 - next phases of testing and implementation.
 * Concerns:

2/19 - Editing the script

2/20 - Making sure that everything can get done in a timely manner.

2/21 - Logged on to check logs

Week Ending February 28, 2017
2/25 - To set up VPN on my laptop so I could get to log in to Caesar from my laptop from home.
 * Task:

2/26 - run my first train on Caesar via my VPN connection to UNH on my laptop

2/27 - create The Language Model

2/28 - Run a decode on trained data.

2/25 - I found it necessary to google UNH VPN and I came Across a link that eventually lead me to finding this site on the UNH Networking server. The link is here https://networking.unh.edu/vpn/ and it instructs the user to install something called JUNOS PULSE and this application allows the user to VPN into the UNH networking at home. I first attempted to VPN via windows VPN with the server info https://connect.vpn.unh.edu. It was giving me a time out issue that I could not get past so I decided that it was a better idea to use pulse as to this is what was being used on the Netwoking server link posted above. The VPN instructions should probably be posted on the media wiki server or at least the links on Speech:Terminal could be updated with VPN connect links above all the terminal stuff or have a whole section for the VPN connect client information.
 * Results:

2/26 - I created the subdirectory in the 0296 experiment folder located at /mnt/main/Exp/0296 on Caesar. I went ahead to the net step of the procedure and built the directory structure for the experiment using the command "makeTrain.pl switchboard 30hr/train" this took only a few minutes to complete. I made sure I was in the top level of my sub experiment directory then I ran the next command "genFeats.pl -t". Finally the last step of entering this command "nohup scripts_pl/RunAll.pl &". I kept up the command line terminal through out the whole train procedure and it went through some steps or phases of the train process in my command line that I could see. I got one warning throughout the whole processes and it took about an hour and a half for the 30hr train to complete.

2/27 - I attempted to create the language model in the sub directory of my groups experiment folder. I am not sure if that is the right thing to do as to it does say on the guide Speech:Create_LM to create it in the "base experiment directory".

2/28 - I was able to run the decode on the trained data by following the instructions Speech:Run_Decode_Trained_Data. I first set up the decode directory by cd etc within my sub experiment folder. Typed the awk '{print $1}' /mnt/main/corpus/switchboard/30hr/test/trans/train.trans >> /mnt/main/Exp/0296/004/etc/004_decode.fileids<< this is what mine looked like after slightly altering the example. This kind of decode provides better insight as the decode is done across the whole corpus instead of just say the first 1000 utterances. Entered one more command by following this format nohup run_decode.pl source experiment destination experiment senone count & filling in my personal experiments details. That finished the Setup the Decode Directory and Run the Decode. Next I got down the guide to the scoring section preparing the hypothesis transcript utilizing this % parseDecode.pl decode.log hyp.trans. The Decoder combines output and status/error text into that single decode.log file. We need to strip out all the status/error text, leaving only the decoded sentences. To do this, use parseDecode.pl. Lastly I ran the sclite scorer utilizing this command sclite -r _train.trans -h hyp.trans -i swb >> scoring.log. The scoring part of this line show that the results of the score will be piped to the scoring.log file within the folder. I got a huge table of results from running the scorer on the 30hr switchboard corpus.

2/25 - Run a train first thing in the morning now that I have my workstation up and running from my home laptop.
 * Plan:

2/26 - Run the create language model step of experimentation process tomorrow. Speech:Create_LM

2/27 - same as above

2/28 - continue evaluating Speech:MakeTest.pl

2/25 - looking further into the Speech:MakeTest.pl script and see if it truly is a shortcut through the decode process and update the instruction on the wiki if so.
 * Concerns:

2/26 - same as above as well as Speech:Create_LM

2/27 - getting the LM to completely work.*LM works now

2/28 - none

Week Ending March 7, 2017
3/4 - To update the wiki page for the creating a language model to make sure that it is as clear and concise as possible.
 * Task:

3/5 - Read into Speech:MakeTest.pl

3/6 - Test Speech:MakeTest.pl

3/7 - login to check logs

3/4 - I updated the Speech:Create_LM page with the needed information that makes it more clear of a process in creating the language model. This is the part that I altered: Copy over the transcript used from the corpus directory: Put the corpus path you used when creating your transcript (using genTrans.pl) in ! % cp -i /train/trans/train.trans trans_unedited FOR EXAMPLE: If we are using the 30hr/train corpus: % cp -i /mnt/main/corpus/switchboard/30hr/train/trans/train.trans trans_unedited
 * Results:

I updated the part that read example mini/train corpus because that directory no longer was in existence and would case an error if you were to reference in the example that was provided.

3/5 - I read over the script line by line to interpret what the lines are doing when the script is executed from the scripts directory. A train must have previously be run and this code will run the language model portion of the script. I am not sure that it prepares/makes the LM directory in your experiment directory. The code has been recently created in 2016 semester and some of the recent updates to the code are:

Last Modified: 5/1/16 Recent changes: - LM creation has been cut except for directly copying it if it exists and the source is not equal to the destination. - More etc files have been added to the list of files to copy over. One of the files involved is also modified to update the paths in the file.

This code prepares a decode, along with language model creation. A train must have been previously run in the source.

3/6 -I tested to see what the MakeTest.pl script did by executing it from /mnt/main/scripts/user. I was able to see the script create an LM in the designated folder. I didn't see that the script was able to prepare this folder for the LM though like the manual configuration stated was necessary to be done. There was also another part that I was unsure about: the part of the decode where the results of the decode are piped to an external file. I was unsure as to how that file was set up so that I could check the results of the decode once it was finished.

3/7- Login to check logs

3/4 - Look into makeTest.pl and see if it can be used as a make decode.
 * Plan:

3/5 - Looking into why the makeTest script now doesn't incorporate the LM creation.

3/6 - Looking into makeTest a bit further

3/7 - Login to check logs

3/4 - copy train and copy decode as well.
 * Concerns:

3/5 - none.

3/6- none.

3/7 - none.

Week Ending March 21, 2017

 * Task:


 * Results:


 * Plan:


 * Concerns:

Week Ending March 28, 2017
3/25 - Attempt to log on to Idefix and or Obelix to see if I can gain access via an ssh connection through Ceasar.
 * Task:

3/26 - Read through the link that was shared at the rebels group meeting to get a better understanding of how we can improve the scoring log by altering config files in the train process, the LM transcript cfg file and the decode config file.

3/27 - Read more into the link by analyzing individual parameters in the sphinx_train.cfg and the sphinx_decode.cfg. Looked into the RSA key and user name and password issues that I was having with the logging into the new team servers that we have access to.

3/28 - log on to check logs

3/25 - I was able to log on to ceasar and then type in the command "ssh obelix". Then The authenticity of host 'obelix (192.168.10.3)' can't be established. RSA key fingerprint is 8d:f4:af:13:5a:60:68:cc:b2:4e:72:f9:a0:f9:9c:16. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'obelix,192.168.10.3' (RSA) to the list of known hosts. Then the connection seemed to close so I typed in ssh obelix again, and then it prompted me to enter a password."[zjj23@caesar ~]$ ssh obelix zjj23@obelix's password: Permission denied, please try again" I have yet to set up a password for my zjj23 account on the server yet so I am not sure how I can go about logging on to the server without having a password.
 * Results:

3/26 - The rebels group came to the realization that we are in need of receiving better scores after running the experiment in its entirety and piping the results of the decode to the scoring log. We are looking into this http://www.speech.cs.cmu.edu/sphinx/tutorial.html to see what are some of the suggestions to altering the configuration files before running at train. The one that was particularly referenced in the link was supposed to be alter before running the genFeats.pl script in the make Train process. The actual file that they are referencing is the sphinx_train.cfg. There is a list of parameters in the file marked up with the individual function of each. The default parameters are listed and the means to alter them are labeled by the function of the actual training parameters. We are currently unsure as to what would make for the accuracy of the results increase so we will have to do more research and see if there are some parameters in the given configuration files listed above in the task. If there are any worth changing at least they are defined in this article so we might be able to get a better understanding of some of the parameters. The general consensus has been that we are to change only a few parameters in one config file at a time because the results might not be able to transfer from config file to config file or it might be hard to isolate what change did what if we over complicate and change to many parameters even in one config file might be hard to isolate if the final result was better or worse due to a specific change.

3/27 - I read into the individual parameters of the sphinx_train.cfg again and then looked at the sphinx_decode.cfg to see if there were any useful parameters to see if tweaking anything would allow for better results for the acoustic model and the decode in the scoring file at the end of the experiment. I think that I found some parameters that I can go ahead and begin altering when I can actually begin the testing phases of the experimentations that I want to carry out. One of the particular parameters in the sphinx_train.cfg file that I thought might be worth while to alter is the $CFG_SKIPSTATE which can be set to yes or no. I think think that it might improve the speed of the training process by some(though I am still not entirely sure what the command does) further research on the command is needed before I can say that it is viable to alter anything. I also logged in to root to on ceasar to see if I could gain access to obelix but I wasn't able to gain access yet to the server so I can begin testing. I will continue my effort with gaining access to the server so I can begin testing the altering of some of the config files that I have listed here.

3/28 - I need to speak with my group "rebels" to see if I can gain user access to the obelix and Idefix servers so I can continue my efforts by running short 5 hour trains on the data with the newly configured parameters from the CFG files that I will be altering.

3/25 - Look into the RSA finger print and creating an account for myself with a password on both obelix and Idefix so I will be able to run train and experiments on these servers.
 * Plan:

3/26 - To figure out how to get my log in working on idefix and obelix. Begin altering configuration files and testing them with short training and decodes to see if I can receive better results.

3/27 -gain access to obelix and idefix and begin altering configuration files.

3/28 - I need to speak with my group tomorrow so I can hopefully have one of them help me gain access to both obelix and Idefix so I can begin 5 hour trains on the data with the altered configuration files.
 * Concerns:

3/25 - Setting up accounts on obelix and Idefix and to begin running precise training activities on these servers by altering the config files to get better results.

3/26 - same as above.

3/27 - same as above.

3/28 - see above.

Week Ending April 4, 2017
4/1 - Communicate with group about what needs to be done with the makeDecode.pl or if make test can be formatted to be suitable for the end result of what we need out of a script that will prepare a decode and run everything after the train and the LM are assembled.
 * Task:

4/2 - Communicate with team about what we are going to do as far as altering the configuration files.

4/3 - login to check logs

4/4 - begin work on makeTest

4/1 - We are going to look into the script further. I told the group that I had tested the script makeTest.pl. I informed them that it does make a decode if the train and the LM are created. The current script also has no automated means of piping a hyp.trans (scoring.log) file to the etc file in the main experiment directory. That is one piece that can be altered to make the script more automated and is one of the final tasks that my group the experiment group will work on to make sure that the file meets some of the same scripting standards as the copy scripts so that they all initialize in the same way and have about the same prompt and feel to them.
 * Results:

4/2 - The rebels team decided that it was important that we begin altering the configuration files asap. We are going to divide the work up evenly among each member of the group. Each person will begin by altering one of the commands in the sphinx_train.cfg and report to the team which one they chose. They will pick the parameter that they believe will alter the final results the most in the end. There is a list of the common ones that we can alter and a basic description of what they do on the website that was shared at the group meeting. This website will help us determine along with the actual configuration file which of the parameters will be necessary to alter for achieving the best end results and accuracy. After we have altered the sphinx train configuration file to get that to have the best results then we will move on to the decode configuration file and begin altering those commands. We are to report in at each changing phase via slack to make sure that everyone in the team is up to date with what each of us are altering and what the changes are to the accuracy.

4/3 - found out further as to what the groups and teams are accomplishing this week.

4/4 - started to work on makeTest and figuring out what I can do to add to it to make the file more like that of the copy train and copy decode.

4/1 - work on fixing Speech:MakeTest.pl
 * Plan:

4/2 - work on altering configuration files.

4/3 - same as above.

4/4 - formulating the makeTest script. 4/1 - gaining access to obelix and idefix for further testing for my team the Rebels.
 * Concerns:

4/2 - same as above.

4/3 - see above.

4/4 - see above.

Week Ending April 11, 2017
4/8 - Make sure that everything is all set with the Speech:CopyExp.pl.
 * Task:

4/9 - Begin research on what the URC poster needs

4/10 - Finalize URC poster

4/11 - researched more about the configuration file tweaks on Obelix and Idefix

4/8 - The script is finalized and working. The latest version of the script has been uploaded to the server. We tested the script to see if it would copy a train and decode or the copy all function with the full path of the experiment that the user specifies. This script copys experiment files from source to destination while maintaining symbolic links between experiment files. The wiki page for the CopyExp.pl that was linked above is up to date and functioning as well. There might need to be more documentation added to the wiki somewhere as to when and where to use the copy scripts like in an archiving section or something to that effect. We will put this on our URC poster making sure that it along with all of our tasks for this semester are outlined.
 * Results:

4/9 - There was a helpful link that was linked in general of the SLACK channel that was a general requirements outline of what the poster had to have incorporated. The link is http://www.unh.edu/urc/poster-presentation-help. The sizes of poster have to be Recommended poster sizes of 32" X 40" or 36" X 48"; posters not to exceed 36" X 48". There are also some example posters on the website that I can look at too make sure that the template that I have made so far works with what the requirements are for the poster. Adding some actual code snippets of what we changed like the addExp.pl and CopyExp.pl scripts and also the script that has been worked on with the data group to make for more accuracy when the language model is produced.

4/10 - The URC template was looked into at the site above to make sure that our poster meet the size requirements and the character size is accurate to the specific sections of the poster. We added some basic information about what the capstone experience is and it outlines that it is a senior class and that we do work with a speech recognition software based system that we are to alter to year to year to make the software more accurate and function better for the users. We then ask the question of what speech recognition is to us. We give some examples like Siri for apple devices and google voice for android and how those systems are highly advanced versions of what we are working with in this class. We outline how speech recognition is the ability of the machine to translate and interpret voice to the output of text. The last section that our poster has is a part that labels what we have worked on as a group this semester such as the addExp.pl and the copyExp.pl scripts along with the other script that the data group has worked with us on to make better results for the data. We finish the poster by putting three images of the actual code that came from the scripts that we wrote.

4/11 - I was able to locate the configuration files for etc/sphinx_train.cfg and the sphinx_decode.cfg. I wanted to see if it was possible to get a baseline experiment on a 5 hour train. It seems like the 5 hour train on Caesar is not working and the one on the drones is also broken. I am looking into solutions for this in the near future. It would be useful if I were able to use the 5 hour train because it would greatly reduce the time that it took to complete the experiment if the 5 hour train were operational. I will attempt to get this baseline working in the coming days so I can at least have a starting point for the rest of the the experiments that I will create. This is a team effort I hope as to there is a new directory for this experiment documented on the wiki so all team experiments will go into that particular experimentation directory.

4/8 - Verify that everything in our check list is evaluated:
 * Plan:

Make decode (makeTest.pl will be checked out and updated if need be) Make train (makeTrain.pl will be checked out and updated if need be) Run experiments to determine how the scripts will need to function and determine areas where manual tasks can be automated

4/9 - see above.

4/10 - see above.

4/11 - see above.
 * Concerns:

4/8 - Running experiments on team servers obelix and idefix to see if I can alter configuration file scripts to gain better results.

4/9 - see above.

4/10 - see above.

4/11 - see above.

Week Ending April 18, 2017
4/14 - Make a baseline experiment for the 5 hour train without changing any of the configuration files parameters.
 * Task:

4/15 - Do more research on the individual parameters that I might be interested in changing that are listed on the site http://www.speech.cs.cmu.edu/sphinx/tutorial.html.

4/16 - Further parameter tweaking research.

4/18 - Decode configuration file altering.

4/14 - I was able to create a baseline experiment on Caesar with a 5 hour train to see what the accuracy was. I want to test this on obelix as well just to make sure that I get the same results as to the configuration files might have different values by default. This will ensure that I have the most up to date results and can feel confident moving on in the testing process.
 * Results:

4/15 - The first part that I have considered on altering of the configuration file is $CFG_FINAL_NUM_DENSITIES = if you are training semi-continuous models, set this number, as well as $CFG_INITIAL_NUM_DENSITIES, to 256. For continuous, set $CFG_INITIAL_NUM_DENSITIES to 1 and $CFG_FINAL_NUM_DENSITIES to any number from 1 to 8. Going beyond 8 is not advised because of the small training data set you have been provided with. The distribution of each state of each HMM is modeled by a mixture of Gaussians. This variable determines the number of Gaussians in this mixture. The number of HMM parameters to be estimated increases as the number of Gaussians in the mixture increases. Therefore, increasing the value of this variable may result in less data being available to estimate the parameters of every Gaussian. However, increasing its value also results in finer models, which can lead to better recognition. Therefore, it is necessary at this point to think judiciously about the value of this variable, keeping both these issues in mind. Remember that it is possible to overcome data insufficiency problems by sharing the Gaussian mixtures amongst many HMM states. When multiple HMM states share the same Gaussian mixture, they are said to be shared or tied. These shared states are called tied states (also referred to as senones). The number of mixtures you train will ultimately be exactly equal to the number of tied states you specify, which in turn can be controlled by the $CFG_N_TIED_STATES parameter described below

4/16 - This is another parameter that I am willing to bet might have a positive effect $CFG_N_TIED_STATES = set this number to any value between 500 and 2500. This variable allows you to specify the total number of shared state distributions in your final set of trained HMMs (your acoustic models). States are shared to overcome problems of data insufficiency for any state of any HMM. The sharing is done in such a way as to preserve the "individuality" of each HMM, in that only the states with the most similar distributions are tied. The $CFG_N_TIED_STATES parameter controls the degree of tying. If it is small, a larger number of possibly dissimilar states may be tied, causing reduction in recognition performance. On the other hand, if this parameter is too large, there may be insufficient data to learn the parameters of the Gaussian mixtures for all tied states. (An explanation of state tying is provided in Appendix 3). If you are curious, you can see which states the system has tied for you by looking at the ASCII file $taskname/model_architecture/$taskname.$CFG_N_TIED_STATES.mdef and comparing it with the file $taskname/model_architecture/$taskname.untied.mdef. These files list the phones and triphones for which you are training models, and assign numerical identifiers to each state of their HMMs.

4/18 - Another key parameter of the decode process is $CFG_CONVERGENCE_RATIO = set this to a number between 0.1 to 0.001. This number is the ratio of the difference in likelihood between the current and the previous iteration of Baum-Welch to the total likelihood in the previous iteration. Note here that the rate of convergence is dependent on several factors such as initialization, the total number of parameters being estimated, the total amount of training data, and the inherent variability in the characteristics of the training data. The more iterations of Baum-Welch you run, the better you will learn the distributions of your data. However, the minor changes that are obtained at higher iterations of the Baum-Welch algorithm may not affect the performance of the system. Keeping this in mind, decide on how many iterations you want your Baum-Welch training to run in each stage. This is a subjective decision which has to be made based on the first convergence ratio which you will find written at the end of the log file for the second iteration of your Baum-Welch training ($taskname/logdir/0*/$taskname.*.2.norm.log. Usually, 5-15 iterations are enough, depending on the amount of data you have. Do not train beyond 15 iterations. Since the amount of training data is not large you will over-train the models to the training data.

4/14 - do testing on obelix
 * Plan:

4/15 - Continue parameter research.

4/16 - see above.

4/18 - see above.


 * Concerns:

4/14 - no concerns.

4/15 - see above.

4/16 - see above.

4/18 - see above.

Week Ending April 25, 2017
4/20 - Group meeting with the rebels group.
 * Task:

4/21 - Log on to check logs.

4/22 - Log on to check logs.

4/24 - Log into the drones (OBELIX) to run train with configuration file tweaks.

4/20 - The rebels as a team went over that we have successfully conducted a "I just finished 0301/011, the first 300hr and got 28.4% WER" This is with LDA and other configuration tweaks that were specified by Greg when he conducted the experiment. The WER result is better than last years so we are definitely making some positive increases with LDA. We could make additional decode configuration tweaks to potentially improve the WER. We will further test the configuration tweaks on Obelix with 5 hour trains to test if their can be any further improvements on WER and other results such as speed of completion and accuracy.
 * Results:

4/21 - Log on to check logs.

4/22 - Log on to check logs.

4/24 - SSH Password Override

Using SSH, log in to your account created for you on Caesar. When you log in you should be directed to your home directory.

%sp /

Now that you are at the home directory for your user you want to do the following command to make an SSH key for your user.

ssh-keygen -t rsa

It will prompt the question below:

Generating public/private rsa key pair. Enter file in which to save the key (/home/ /.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:


 * Leave the file name the same.
 * Leave the passphrase empty by simply pressing "Enter".

Now we want to go into the SSH folder: cd .ssh

You should have the following files in your .ssh folder: id_rsa and id_rsa.pub. To get the key to work so that you do not need a password on the batch machines you need to copy the .pub file to a new file called authorized_keys

cp -i id_rsa.pub authorized_keys Since all the machines share the same drive then when you try to SSH into another machine you will not need a password to log into the system.

4/20 - Work on parameter tweaking to improve results.
 * Plan:

4/21 - Log on to check logs.

4/22 - Log on to check logs.

4/24 - Set up SSH login

4/20 - none.
 * Concerns:

4/21 - none.

4/22 - none.

4/24 - none.

4/22 - Log on to check logs.

Week Ending May 2, 2017
4/27 - Work on getting the createExp.pl script to be runnable from anywhere
 * Task:

4/29 - Log on to Obelix by following the SSH connection instructions in my last log.

4/30 - Complete a baseline experiment on Obelix with LDA and no parameter tweaks yet.

4/1 - log on to check logs.

4/27 - As of right now it is not working for some reason. We have the #!/usr/bin/perl at the top, to indicate it should be run using perl. We have it in the correct folder /mnt/main/scripts/user, which is in the PATH environment for our server. We are able to see the script using the which command. It tells us that it is in the correct directory and that it can be found from anywhere. However when it is run, it does not work correctly. We get a "Command not found" error.
 * Results:

4/29 - I was able to gain access to Obelix via SSH connection through Caesar by first logging into Caesar as I normally would with my account credentials to authorize access to the server with my username password combination. After I was logged into Caesar I typed in "SSH obelix" into the command line and was able to finally connect again by following the SSH connection instructions that I posted in my previous log.

4/30 - The results are posted under experiments 0301 for the rebels team experiments. They look to be good compared to the processes running with LDA off and there has been advancements when it comes to WER.

4/1 - log on to check logs.

4/27- Keep attempting fixes for the root access permissions associated with the file.
 * Plan:

4/29 - My plan from this point moving forward is to begin a baseline train, LM, decode process on Obelix with LDA enabled in the configuration file. This should improve the results and will be updated results compared to those that I was receiving on Caesar.

4/30 - The plan from this point onward is to alter parameters to see if they will make any significant differences in the WER and make for a more accurate system. This will be done in the coming week to see if the advances are anything of significance.

4/1 - log on to check logs.

4/27 - getting create experiment working.
 * Concerns:

4/29 - Altering the configuration files parameters to make the train and decode process produce better end results with better WER(Word Error Rate).

4/30 - see above.

4/1 - log on to check logs.

Week Ending May 9, 2017
5/6 - log on to check logs
 * Task:

5/7 - log on to check logs

5/8 - Check the wiki to make sure that it is as clear as possible.

5/9 - Elaborate on the adding of a sub experiment and where addExp.pl is located to automate the process because there is no wiki page.

5/6 - log on to check logs
 * Results:

5/7 - log on to check logs

5/8 - The wiki at this point does have the basics for creating a train, making a language model and preparing a decode. This being one of the leading processes that the groups in years to come to test will be able to follow the same process generally. There are some scripts that can be used in years to come to make the process easier yet. The scripts are as follows: createExp.pl for an automated functionality of the main train, lm, and decoded steps that are laid out above. To help archive previous years work we can use the copyExp.pl which can be useful to automate this process some. Lastly the addExp.pl can be added to the wiki with more detail in respect to the adding of a sub experiment.

5/9 - For adding a sub experiment to the wiki and update all that you need you can go to mnt/main scripts and type in addExp.pl to the CLI. This will bring you into the prompt for the script asking you to specify what your experiment group number is and what sub experiment number that you want to create within that folder. It will ask you to put in a brief explanation of what you are conducting the experiment for. Just following the scripts prompt will allow you to create a sub experiment on the wiki. Ideally the Wikipedia could incorporate a section or a page that details this so that future years would catch on to the idea of the addExp.pl script and that they can add a sub experiment.

5/6 - log on to check logs
 * Plan:

5/7 - log on to check logs

5/8 - update log/ make wiki implementations

5/9 - see above.

5/6 - log on to check logs
 * Concerns:

5/7 - log on to check logs

5/8 - Making sure the next year students will be able to look at the logs and be able to have some of the facts that we have derived from our studies.

5/9 - see above.