Difference between revisions of "Speech:Summer 2011 Notes"

From Openitware
Jump to: navigation, search
(Blanked the page)
 
(One intermediate revision by one user not shown)
Line 1: Line 1:
*[[Speech:Home| Home]]
 
*[[Speech:Semesters| Semesters]]
 
*[[Speech:Summer 2011|Summer 2011]]
 
  
__NOTOC__
 
 
==Notes==
 
 
===NFS===
 
NFS is a protocol that allows file systems to be distributed and shared over a network. File system sharing is especially important when working with multiple users and terminals. Without NFS/LDAP, users would have to create a user name and password on each new machine they attempted to access. By utilizing NFS/LDAP, user information can be created on any client machine and then stored and accessed on the network's server. This eliminates user frustration by granting networked computers access to specific non-local information.
 
 
;Required NFS software using openSUSE:
 
To configure your host as an NFS client, you do not need to install additional software. All needed packages are installed by default.
 
 
NFS server software is not part of the default installation. To install the NFS server software, start YaST and select Software+Software Management. Now choose Filter+Patterns  and select File Server or use the Search option and search for NFS Server. Confirm the installation of the packages to finish the installation process.
 
 
;Mounting:
 
Mounting allows authorized users to import/export file systems. Once mounting has been set up, a server can access specified client directories and vice versa. The best way to complete this is by using YaST's very easy to use GUI. For a full step-by-step walk through of how to do this [http://doc.opensuse.org/products/opensuse/openSUSE/opensuse-reference/cha.nfs.html Click Here]
 
 
===Trainining===
 
;setup task directory
 
To set up the task directory:
 
#From the SphinxTrain directory, create a directory to store the task in: mkdir taskName
 
#*<font color="red">% cd /root/speechtools/SphinxTrain-1.0; mkdir train1</font>
 
#Move to that directory: cd taskName
 
#*<font color="red">% cd train1</font>
 
#Execute the following command: ../scripts_pl/setup_SphinxTrain.pl -task taskName
 
#*<font color="red">% ../scripts_pl/setup_SphinxTrain.pl -task train1</font>
 
;Copy wav files into wavTemp directory
 
#Create the wavTemp directory: mkdir wavTemp
 
#*<font color="red">% mkdir wavTemp</font>
 
#Move into the wavTemp directory:cd wavTemp
 
#*<font color="red">% cd wavTemp</font>
 
#Copy all sph files that will be used for this train into the wavTemp directory.
 
#*<font color="red">% cp -i /media/data/Switchboard/disk1/swb1/sw02001.sph .</font>
 
#*<font color="red">% cp -i /media/data/<font color="green">your/audio/files/...</font></font>
 
;Copy necessary scripts into the etc directory.
 
*<font color="red">% cd ../etc</font>
 
There are two custom scripts that are needed to perform a train. These are <u>/root/SCRIPTS/genPhones.sh</u> and <u>/root/SCRIPTS/genTrans.pl</u>. Copy both of these scripts into the etc directory of the task.
 
*<font color="red">% cp -i /root/SCRIPTS/genPhones.sh</font>
 
*<font color="red">% cp -i /root/SCRIPTS/genTrans.pl</font>
 
;Copy dictionary into task etc directory with filename taskName.dic
 
This should be a subset of the main dictionary found in <u>/root/DOCS/cmudict.06d</u>.
 
*<font color="red">% cp -i </font><font color="green">/somewhere/your/generated/dictionary</font><font color="red"> train1.dic</font>
 
;Copy transcript.
 
#Copy the raw training transcript you chose for training into the task etc directory.
 
#*<font color="red">% cp -i </font><font color="green">/somewhere/your/unedited/transcripts</font><font color="red"> trans_unedited.txt</font>
 
;Run genTrans.pl
 
#make sure you are in the etc directory and execute genTrans.pl with two arguments. The first argument is the unedited transcription's filename. The second argument should be the taskName.
 
#*<font color="red">% genTrans.pl trans_unedited.txt train1</font>
 
;Run genPhones.sh
 
#This needs to be customized for each project and should then be run to generate the phonemes.
 
#*<font color="red">% genPhones.sh</font>
 
;Copy filler file to etc directory.
 
#Copy filler file to the task etc directory.
 
#Be sure the name of the filler file is taskName.filler.
 
#*<font color="red">% cp -i /root/DOCS/transcripts.filler train1.filler</font>
 
;Run make_feats.pl:
 
#Be sure to go to the root of the task directory (if you're in etc then up one level)
 
#*<font color="red">% cd ..</font>
 
#Then execute: ./scripts_pl/make_feats.pl -ctl etc/taskName_train.fileids
 
#*<font color="red">% ./scripts_pl/make_feats.pl -ctl ./etc/train1_train.fileids</font>
 
;Run Runall.pl:
 
#From the root of the task execute: ./scripts_pl/RunAll.pl
 
#*<font color="red">% ./scripts_pl/RunAll.pl</font>
 
;After completion, you have models!
 
You will now hae a set of models in <u>model_parameters</u>.
 
 
 
===Decoding===
 
;Quick and dirty test on train
 
This means that we decode with the same data we just trained on. It's a quick way to see if our models are good because our results should be highly accurate (i.e. we just trained on this audio data so decoding on it should be optimal).
 
''First we need to create a Language Model''
 
#Create a language model directory (for now we will do so in the taskName directory, so be sure you're in it).
 
#*<font color="red">% mkdir LM</font>
 
#*<font color="red">% cd LM</font>
 
#Copy language model script found here: <u>/root/SCRIPTS/lm_create.pl</u>
 
#*<font color="red">% cp -i /root/SCRIPTS/lm_create.pl .</font>
 
#Copy your transcripts from training into the LM directory...note we need to strip out file id tags so we use sed to help.
 
#*<font color="red">% sed "s/ (.*)//" ../etc/train1_train.trans > ./train1_lm.trans</font>
 
#Now run the script to generate our language model (good idea to capture output in log file)
 
#*<font color="red">% lm_create.pl train1_lm.trans &> lm_create.log</font>
 
''Now we can do our decode''
 
#Create a decode directory (for now we will do so in the taskName directory, so change into it).
 
#*<font color="red">% cd ..</font>
 
#*<font color="red">% mkdir DECODE</font>
 
#*<font color="red">% cd DECODE</font>
 
#Copy decode script found here: <u>/root/SCRIPTS/run_decode.pl</u>
 
#*<font color="red">% cp -i /root/SCRIPTS/run_decode.pl .</font>
 
#Run it, giving it the task name as a parameter and capturing it's output in a log file
 
#*<font color="red">% ./run_decode.pl train1 &> decode.log</font>
 
#Now look through your log to see what was recognized...
 
;Decoding on a dev test set
 
This requires work to generate a set of transcripts with dictionary and accompanying audio files. The steps outlined in the decode scripts above are the same, it just takes some work creating appropriate input. The inputs to change within the <u>run_decode.pl</u> script are as follows:
 
#$DICT - this needs to be a dictionary that captures all the words in your test set
 
#$CTL - this would be a list of file id's for your incoming wave files to test
 
#$LM - perhaps a different language model than what you used for test on train above.
 

Latest revision as of 12:29, 17 February 2012