Syntax:
<feature set> setAccess <commands>
Example1:
fs setAccess {lappend accessList "IN $arg(path)/$arg(spk)/$arg(file).ADC"}
This method can be used to change the access procedure used by the eval method. The 'eval' method needs a {variable value} list as argument: the "sampleList". This "sampleList" is then modified by the access procedure resulting in the "accessList". This "accessList" is finally used by the Feature Description procedure to do some signal processing.
As in the feature description procedure the access procedure converts
the "sampList" into an array arg() that allows an easy access to each variable
with $arg(variable). Use 'set accessList {... ...}
' or
'lappend accessList {... ...}
' to change the list or add elements.
Example2: Let's say the feature description procedure needs a filename and it uses a variable $arg(IN) to get this name. The eval method is called with a list (maybe obtained directly from a database):
fs eval {{path /home/data/} {spk hans} {file utt1}}
Using this "sampleList" the access procedure defined in Example1 will
append an element {IN /home/data/hans/utt1.ADC}
to the accesslist.
It's also the only element because the accesslist was empty. Now the following
feature description procedure can use $arg(IN) and will get the filename
/home/data/hans/utt1.ADC
.
Optional flags: none
Related commands: setDesc, eval
Questions:
When a FeatureSet is created by the user also the corresponding
access procedure will automatically be defined using the command:
set accessList $sampleList
That means the "sampleList" is just passed through.