1
--- a/main/align_main.cc
2
+++ b/main/align_main.cc
4
static void load_sentence(EST_Utterance &u, const EST_String &relname,
7
-/** @name <command>align</command> <emphasis>align stream with reference stream</emphasis>
34
int main(int argc, char **argv)
37
--- a/main/bcat_main.cc
38
+++ b/main/bcat_main.cc
41
#define BUFFER_SIZE (1024)
44
-/** @name <command>bcat</command> <emphasis>Binary safe version of cat</emphasis>
59
-bcat is a trivial file concatenation program. It exists to allow testing
60
-of various file splitting operations under the cygwin environment on Windows
61
-where the distinction between binary and text data is important.
75
int main(int argc, char *argv[])
78
--- a/main/ch_lab_main.cc
79
+++ b/main/ch_lab_main.cc
82
int check_vocab(EST_Relation &a, EST_StrList &vocab);
84
-/** @name <command>ch_lab</command> <emphasis>Label file manipulation</emphasis>
98
-ch_lab is used to manipulate the format of label files and
99
-serves as a wrap-around for the EST_Relation class.
113
int main(int argc, char *argv[])
115
EST_String out_file, ext;
116
--- a/main/ch_track_main.cc
117
+++ b/main/ch_track_main.cc
121
void extract(EST_Track &tr, EST_Option &al);
122
-/** @name <command>ch_track</command> <emphasis>Track file manipulation</emphasis>
123
- * @id ch-track-manual
137
-ch_track is used to manipulate the format of a track
138
-file. Operations include:
141
-<listitem><para>file format conversion</para></listitem>
142
-<listitem><para>smoothing</para></listitem>
143
-<listitem><para>changing the frame spacing of a track (resampling)</para></listitem>
144
-<listitem><para>producing differentiated and delta tracks</para></listitem>
145
-<listitem><para>Using a threshold to convert a track file to a label file</para></listitem>
147
-<listitem><para>making multiple input files into a single multi-channel output file</para></listitem>
148
-<listitem><para>extracting a single channel from a multi-channel track</para></listitem>
149
-<listitem><para>extracting a time-delimited portion of the waveform</para></listitem>
165
int main(int argc, char *argv[])
167
--- a/main/ch_wave_main.cc
168
+++ b/main/ch_wave_main.cc
171
void extract_channels(EST_Wave &single, const EST_Wave &multi, EST_IList &ch_list);
173
-/** @name <command>ch_wave</command> <emphasis>Audio file manipulation</emphasis>
188
-ch_wave is used to manipulate the format of a waveform
189
-file. Operations include:
192
-<listitem><para>file format conversion</para></listitem>
193
-<listitem><para>resampling (changing the sampling frequency)</para></listitem>
194
-<listitem><para>byte-swapping</para></listitem>
195
-<listitem><para>making multiple input files into a single multi-channel output file</para></listitem>
196
-<listitem><para>making multiple input files into a single single-channel output file</para></listitem>
197
-<listitem><para>extracting a single channel from a multi-channel waveform</para></listitem>
198
-<listitem><para>scaling the amplitude of the waveform</para></listitem>
199
-<listitem><para>low pass and high pass filtering</para></listitem>
200
-<listitem><para>extracting a time-delimited portion of the waveform</para></listitem>
203
-ch_wave is a executable program that serves as a wrap-around for the
204
-EST_Wave class and the basic wave manipulation functions. More
205
-advanced waveform processing is performed by the signal processing library.
220
int main (int argc, char *argv[])
222
@@ -304,180 +258,4 @@
226
-/** @name Making multiple waves into a single wave
228
-If multiple input files are specified, by default they are concatenated into
233
-$ ch_wave kdt_010.wav kdt_011.wav kdt_012.wav kdt_013.wav -o out.wav
237
-In the above example, 4 single channel input files are converted to
238
-one single channel output file. Multi-channel waveforms can also be
239
-concatenated provided they all have the same number of input channels.
243
-Multiple input files can be made into a multi-channel output file by
244
-using the -pc option:
248
-$ ch_wave kdt_010.wav kdt_011.wav kdt_012.wav kdt_013.wav -o -pc LONGEST out.wav
252
-The argument to -pc can either be LONGEST, in which the output
253
-waveform is the length of the longest input file, or FIRST in which it
254
-is the length of the first input file.
261
-/** @name Extracting channels from multi-channel waves
263
-The -c option is used to specify channels which should be extracted
264
-from the input. If the input is a 4 channel wave,
267
-$ ch_wave kdt_m.wav -o a.wav -c "0 2"
271
-will extract the 0th and 2nd channel (counting starts from 0). The
272
-argument to -c can be either a single number of a list of numbers
280
-/** @name Extracting of a single region from a waveform
282
-There are several ways of extracting a region of a waveform. The
283
-simplest way is by using the start, end, to and from commands to
284
-delimit a sub portion of the input wave. For example
287
-$ ch_wave kdt_010.wav -o small.wav -start 1.45 -end 1.768
291
-extracts a subwave starting at 1.45 seconds and extending to 1.768 seconds.
296
-$ ch_wave kd_010.wav -o small.wav -from 5000 -to 10000
300
-extracts a subwave starting at 5000 samples and extending to 10000
301
-samples. Times and samples can be mixed in sub-wave extraction. The
302
-output waveform will have the same number of channels as the input
309
-/** @name Extracting of a multiple regions from a waveform
311
-Multiple regions can be extracted from a waveform, but as it would be
312
-too complicated to specify the start and end points on the command
313
-line, a label file with start and end points, and file names is used.
315
-The file is called a key label file and in xwaves label format looks
322
-0.308272 121 sil ; file kdt_010.01 ;
323
-0.440021 121 are ; file kdt_010.02 ;
324
-0.512930 121 your ; file kdt_010.03 ;
325
-0.784097 121 grades ; file kdt_010.04 ;
326
-1.140969 121 higher ; file kdt_010.05 ;
327
-1.258647 121 or ; file kdt_010.06 ;
328
-1.577145 121 lower ; file kdt_010.07 ;
329
-1.725516 121 than ; file kdt_010.08 ;
330
-2.315186 121 nancy's ; file kdt_010.09 ;
334
-Each line represents one region. The first column is the end time of
335
-that region and the start time of the next. The next two columns are
336
-colour and an arbitrary name, and the filename in which the output
337
-waveform is to be stored is kept as a field called file in the last column.
338
-In this example, each region corresponds to a single word in the file.
340
-If the above file is called "kdt_010.words.keylab", the command:
344
-$ ch_wave kdt_010.wav -key kdt_010.words -ext .wav -divide
348
-will divide the input waveform into 9 output waveforms called
349
-kdt_010.01.wav, kdt_010.02.wav ... kdt_010.09.wav. The -ext option
350
-specifies the extension of the new waveforms, and the -divide command
351
-specifies that division of the entire waveform is to take place.
353
-If only a single file is required the -extract option can be used, in
354
-which case its argument is the filename required.
358
-$ ch_wave kdt_010.wav -key kdt_010.words -ext .wav -extract kdt_010.03 \
363
-Note that an output filename should be specified with this option.
368
-/** @name Adding headers and format conversion
370
-It is usually a good idea for all waveform files to have headers as
371
-this way different byte orders, sampling rates etc can be handled
372
-safely. ch_wave provides a means of adding headers to raw files.
374
-The following adds a header to a file of 16 bit shorts
378
-$ ch_wave kdt_010.raw1 -o kdt_010.h1.wav -otype nist -f 16000 -itype raw
382
-The following downsamples the input to 8 KHz
386
-$ ch_wave kdt_010.raw1 -o kdt_010.h2.wav -otype nist -f 16000 \
391
-The following takes a 8K ulaw input file and produces a 16bit, 20Khz output file:
395
-$ ch_wave kdt_010.raw2 -o kdt_010.h3.wav -otype nist -istype ulaw \
396
- -f 8000 -F 20000 -itype raw
403
--- a/main/design_filter_main.cc
404
+++ b/main/design_filter_main.cc
406
#include "EST_cmd_line_options.h"
407
#include "sigpr/EST_filter_design.h"
409
-/** @name <command>design_filter</command>
410
- * @id designfilter-manual
423
-<command>designfilter</command> computes the coefficients of a FIR
424
-filter with a given frequency response. The user supplies the
425
-frequency response as a vector of evenly spaced gains ranging from 0
426
-to half the sampling frequency. The length of this vector must be a
427
-power of 2. The filter coefficients can be used by the \Ref{sigfilter}
442
int main (int argc, char *argv[])
447
where filter.freq_response is the above file, and filter.coefficients
448
-is the output file which can be used by \Ref{sigfilter}.
449
+is the output file which can be used by \ref sigfilter .
453
--- a/main/dp_main.cc
454
+++ b/main/dp_main.cc
456
EST_String distance_measure = "simple"; // could be "matrix"
461
-/** @name <command>dp</command> <emphasis> Perform dynamic programming on label sequences</emphasis>
475
-dp provides simple dynamic programming to find the lowest cost
476
-alignment of two symbol sequences. Possible uses include:
479
-<listitem><para>Label alignment (e.g. speech recogniser output scoring) </para></listitem>
482
-The costs of inserting/deleting/substituting symbols can be given
483
-either with command line options, or as a file containing a full
484
-matrix of costs. In the former case, all insertions will have the same
485
-cost. In the latter case, each row of the file contains the cost of
486
-replacing a symbol in sequence 1 with each possible symbol in the
487
-vocabulary to align with sequence 2, including a special "place
488
-holder" symbol used for insertions/deletions. See the examples
489
-below. The place holder can be redefined.
491
-The output is an EST utterance with three Relations: the first two are
492
-the input sequences, and the third shows the alignment found by
493
-dynamic programming.
508
int main(int argc, char **argv)
520
-Align two symbol sequences:
525
-$ dp -vocab vocab.file "a b c" "a b d c" -i 1 -d 2 -s 3
530
-where vocab.file contains "a b c d"
534
-Or, using a full cost matrix:
539
-$ dp -vocab vocab2.file -cost_matrix foo "a b c" "a b d c"
544
-where vocab2.file contains "a b c d <null>" and the file foo contains:
549
-<para>0 3 3 3 2</para>
550
-<para>3 0 3 3 2</para>
551
-<para>3 3 0 3 2</para>
552
-<para>3 3 3 0 2</para>
553
-<para>1 1 1 1 0</para>
557
-<para> Each row of foo shows the cost of replacing an input symbol
558
-with each symbol in the vocabulary to match an output symbol. Each row
559
-corresponds to an item in the vocabulary (in the order they appear in
560
-the vocabulary file). In the example, replacing 'a' with 'a' costs 0,
561
-replacing 'a' with any of 'b' 'c' or 'd' costs 3 (a substitution), and
562
-replacing 'a' with the place holder symbol 'null' costs 2 (a
563
-deletion). The cost of replacing 'null' with anything other than
564
-'null' costs 1 (an insertion). The costs of 1,2 and 3 used here are
565
-only for illustration. The cost matrix meed not have the form above -
566
-for example, replacing 'a' with 'a' need not cost 0. The entries in
567
-foo are read as floats. </para>
572
--- a/main/fringe_client_main.cc
573
+++ b/main/fringe_client_main.cc
575
#include "EST_FringeServer.h"
576
#include "EST_cmd_line.h"
578
-/** @name <command>fringe_client</command> <emphasis>Send commands to a running fringe server</emphasis>
579
- @id fringe-client-manual
594
- <command>fringe_client</command> is a simple program for sending
595
- commands to a <command>fringe</command> process which is running in
611
int main(int argc, char *argv[])
613
EST_String out_file, ext;
618
-/**@name Finding Fringe.
620
-Each <command>fringe</command> which runs in server mode registers
621
-it's location in a file called <filename>.estServices</filename> in
622
-the users home directory. Multiple servers can be present if they are
623
-given different names, and the <option>-n</option> can be used to
624
-select which fringe a command is sent to.
627
--- a/main/na_play_main.cc
628
+++ b/main/na_play_main.cc
630
#include "EST_audio.h"
631
#include "EST_cmd_line_options.h"
633
-/** @name <command>na_play</command><emphasis> Audio Playback</emphasis>
650
-na_play is a general playback program for playing sound files on a variety
651
-of platforms and sound cards.
653
-Currently, the following audio devices are supported:
655
-<itemizedlist mark='@bullet'>
656
-<listitem><para>sunaudio:</para><para>
657
-8k ulaw direct to <filename>/dev/audio</filename> found on most Sun machines. This
658
-is also found under Linux and FreeBSD, and possibly others. This
659
-is the default if <function>netaudio</function> is not supported.
660
-<listitem><para>netaudio:</para><para>
661
-NCD's network transparent audio system (NAS). This allows
662
-use of audio devices across a network. NAS has support for, Suns,
663
-Linux, FreeBSD, HPs and probably other machines by now.
664
-<listitem><para>sun16audio:</para><para>
665
-This is only available on newer Sun workstations and has been
666
-enabled at compile time. This provides
667
-16bit linear PCM at various sample rates.
668
-<listitem><para>linux16audio:</para><para>
669
-This is only available on Linux workstations and has been enabled
670
-at compile time. This provides
671
-16bit linear PCM at various sample rates.
672
-<listitem><para>freebsd16audio:</para><para>
673
-This is only available on workstations running FreeBSD and has
674
-been enabled at compile time. This provides
675
-16bit linear PCM at various sample rates.
676
-<listitem><para>mplayeraudio:</para><para>
677
-This is only available under Windows NT 4.0 and Windows 95 and
678
-has been enabled at compile time. This provides
679
-16bit linear PCM at various sample rates.
680
-<listitem><para>win32audio</para><para>
681
-This is only available under Windows NT 4.0 and Windows 95 and
682
-has been enabled at compile time. This provides
683
-16bit linear PCM at various sample rates, playing the audio directly
684
-rather than saving to a file as with mplayeraudio.
685
-<listitem><para>irixaudio</para><para>
686
-Audio support for SGI's IRIX 6.2.
687
-<listitem><para>Audio_Command:</para><para>
688
-Allows the specification of an arbitrary UNIX command to play
689
-the waveform. This won't normally be used with <function>na_play</function> as
690
-you could just use the command directly but is necessary with some
691
-systems using the speech tools.
696
-The default audio is netaudio if it is supported. If not the platform
697
-specific auido mode is the default (e.g. sun16audio, linux16audio,
698
-freebsd16audio or mplayeraudio). If none of these is supported,
699
-sunaudio is the default.
713
int main (int argc, char *argv[])
716
--- a/main/na_record_main.cc
717
+++ b/main/na_record_main.cc
719
int win_record_wave(EST_Wave &wave, EST_Option &al);
722
-/** @name <command>na_record</command> <emphasis>Audio file recording</emphasis>
723
- @id na-record-manual
738
-na_record records wavefors from an audio device. It only supports
739
-recording for N seconds (default is 10). Specifying the frequency
740
-defines the recording frequency (if supported by the hardware). This
741
-currently doesn't support NAS audio in.
756
int main (int argc, char *argv[])
758
--- a/main/ngram_build_main.cc
759
+++ b/main/ngram_build_main.cc
761
#include "EST_Pathname.h"
765
-/** @name <command>ngram_build</command> <emphasis>Train n-gram language model</emphasis>
766
- @id ngram_build_manual
780
-ngram_build offers basic ngram language model estimation.
784
-<para><title>Input data format</title></para>
786
-<para> Two input formats are supported. In sentence_per_line format,
787
-the program will deal with start and end of sentence (if required) by
788
-using special vocabulary items specified by -prev_tag, -prev_prev_tag
789
-and -last_tag. For example, the input sentence: </para>
792
-the cat sat on the mat
798
-... prev_prev_tag prev_prev_tag prev_tag the cat sat on the mat last_tag
801
-where prev_prev_tag is the argument to -prev_prev_tag, and so on. A
802
-default set of tag names is also available. This input format is only
803
-useful for sliding-window type applications (e.g. language modelling
804
-for speech recognition).
806
-The second input format is ngram_per_line which is useful for either
807
-non-sliding-window applications, or where the user requires an
808
-alternative treatment of start/end of sentence to that provided
809
-above. Now the input file simply contains a complete ngram per
810
-line. For the same example as above (to build a trigram model) this
815
-prev_prev_tag prev_tag the
829
-<para><title>Representation</title></para>
833
-<para> The internal representation of the model becomes important for
834
-higher values of N where, if V is the vocabulary size, \(V^N\) becomes
835
-very large. In such cases, we cannot explicitly hold probabilities for
836
-all possible ngrams, and a sparse representation must be used
837
-(i.e. only non-zero probabilities are stored).</para>
841
-<para><title>Getting more robust probability estimates</title></para>
842
-The common techniques for getting better estimates of the low/zero
843
-frequency ngrams are provided: namely smoothing and backing-off</para>
847
-<para><title>Testing an ngram model</title></para>
848
-Use the <link linkend=ngram-test-manual>ngram_test</link> program.
864
int main(int argc, char **argv)
867
--- a/main/ngram_test_main.cc
868
+++ b/main/ngram_test_main.cc
870
#include "EST_Ngrammar.h"
873
-/** @name <command>ngram_test</command> <emphasis> Test n-gram language model </emphasis>
874
- @id ngram_test_manual
888
-ngram_test is for testing ngram models generated from
889
-<link linkend=ngram-build-manual>ngram_build</link>.
891
-<formalpara> <para> <title> How do we test an ngram model ? </title>
894
-<para> ngram_test will compute the entropy (or perplexity, see below)
895
-of some test data, given an ngram model. The entropy gives a measure
896
-of how likely the ngram model is to have generated the test
897
-data. Entropy is defined (for a sliding-window type ngram) as:
899
-\[H = -\frac{1}{Q} \sum_{i=1}^{Q} log P(w_i | w_{i-1}, w_{i-2},... w_{i-N+1}) \]
901
-where \(Q\) is the number of words of test data and \(N\) is the order
902
-of the ngram model. Perplexity is a more intuitive mease, defined as:
906
-The perplexity of an ngram model with vocabulary size V will be
907
-between 1 and V. Low perplexity indicates a more predictable language,
908
-and in speech recognition, a models with low perplexity on test data
909
-(i.e. data NOT used to estimate the model in the first place)
910
-typically give better accuracy recognition than models with higher
911
-perplexity (this is not guaranteed, however).
913
-test_ngram works with non-sliding-window type models when the input
914
-format is <parameter>ngram_per_line</parameter>.
920
-<para><title>Input data format</title></para>
921
-<para> The data input format options are the same as
922
-<link linkend=ngram-build-manual>ngram_build</link>, as is the treatment of sentence start/end using
927
-Note: To get meaningful entropy/perplexity figures, it is recommended that
928
-you use the same data input format in both
929
-<link linkend=ngram-build-manual>ngram_build</link> and <link linkend=ngram-test-manual>ngram_test</link>, and the treatment of
930
-sentence start/end should be the same.
947
int main(int argc, char **argv)
956
-<title>I got a perplexity of Infinity - what went wrong ?</title>
958
-A perplexity of Infinity means that at least one of the ngrams in your
959
-test data had a probability of zero. Possible reasons for this include:
963
-<listitem><para>The training data had no examples of this ngram, and
964
-you did not specify a floor for zero frequency ngrams in
965
-\Ref{build_ngram} </para></listitem>
966
-<listitem><para>You used differing input formats for \Ref{ngram_build}
967
-and \Ref{ngram_test}. </para></listitem>
968
-<listitem><para>You used differing sentence start/end treatments in
969
-\Ref{ngram_build} and \Ref{ngram_test}. </para></listitem>
978
--- a/main/ols_main.cc
979
+++ b/main/ols_main.cc
981
static void load_ols_data(EST_FMatrix &X, EST_FMatrix &Y, WDataSet &d);
982
static int ols_main(int argc, char **argv);
985
-/** @name <command>ols</command> <emphasis>Train linear regression model</emphasis>
1013
int main(int argc, char **argv)
1015
return ols_main(argc,argv);
1016
--- a/main/ols_test_main.cc
1017
+++ b/main/ols_test_main.cc
1019
static int ols_test_main(int argc, char **argv);
1020
static void load_ols_data(EST_FMatrix &X, EST_FMatrix &Y, WDataSet &d);
1022
-/** @name <command>ols_test</command> <emphasis>Test linear regression model</emphasis>
1023
- @id ols-test-manual
1050
int main(int argc, char **argv)
1052
--- a/main/pda_main.cc
1053
+++ b/main/pda_main.cc
1056
static int save_pm(EST_String filename, EST_Track fz);
1058
-/** @name <command>pda</command> <emphasis>Pitch Detection Algorithm</emphasis>
1072
-pda is a pitch detection algorithm that produces a fundamental frequency
1073
-contour from a speech waveform file. At present only the
1074
-super resolution pitch determination algorithm is implemented.
1075
-See (Medan, Yair, and Chazan, 1991) and (Bagshaw et al., 1993) for a detailed
1076
-description of the algorithm.
1079
-The default values given below were found to optimise the performance
1080
-of the pitch determination algorithm for speech data sampled at 20kHz
1081
-using a 16\-bit waveform and low pass filter with a 600Hz cut-off
1082
-frequency and more than \-85dB rejection above 700Hz. The best
1083
-performances occur if the [\-p] flag is passed. </para><para>
1097
int main (int argc, char *argv[])
1098
@@ -259,14 +222,4 @@
1104
-Pitch detection on typical male voice, using low pass filtering:
1106
-$ pda kdt_010.wav -o kdt_010.f0 -fmin 80 -fmax 200 -L
1113
--- a/main/pitchmark_main.cc
1114
+++ b/main/pitchmark_main.cc
1119
-/** @name <command> pitchmark </command> <emphasis> Find instants of glottal closure in Laryngograph file</emphasis>
1121
- * @id pitchmark-manual
1134
-<command>pitchmark</command> locates instants of glottal closure in a
1135
-laryngograph waveform, and performs post-processing to produce even
1136
-pitchmarks. EST does not currently provide any means of pitchmarking a
1139
-Pitchmarking is performed by calling the
1140
-<function>pitchmark()</function> function, which carries out the
1141
-following operations:
1143
-<orderedlist> <listitem><para>Double low pass filter the signal. This
1144
-removes noise in the signal. The parameter
1145
-<parameter>lx_lf</parameter> specifies the low pass cutoff frequency,
1146
-and <parameter>lx_lo</parameter> specifies the order. Double filtering
1147
-(feeding the waveform through the filter, then reversing the waveform
1148
-and feeding it through again) is performed to reduce any phase shift
1149
-between the input and output of the filtering operation.
1152
-<listitem><para>Double high pass filter the signal. This removes the
1153
-very low frequency swell that is often observed in laryngograph
1154
-waveforms. The parameter <parameter>lx_hf</parameter> specifies the high pass cutoff frequency,
1155
-and <parameter>lx_ho</parameter> specifies the order.
1156
-Double filtering is performed to reduce any phase shift
1157
-between the input and output of the filtering operation.
1160
-<listitem><para>Calculate the delta signal. The filtered waveform is
1161
-differentiated using the <function>delta()</function>
1162
-function.</para></listitem>
1164
-<listitem><para>Low pass filter the delta signal. Some noise may still
1165
-be present in the signal, and this is removed by further low pass
1166
-filtering. Experimentation has shown that simple mean smoothing is
1167
-often more effective than FIR smoothing at this point. The parameter
1168
-<parameter>mo</parameter> is used to specify the size of the mean
1169
-smoothing window. If FIR smoothing is chosen, the parameter
1170
-<parameter>df_lf</parameter> specifies the low pass cutoff frequency,
1171
-and <parameter>df_lo</parameter> specifies the order. Double filtering
1172
-is again used to avoid phase distortion.
1176
-<listitem><para>Pick zero crossings. Now simple zero-crossing is used
1177
-to find the pitchmarks themselves. </para></listitem>
1181
-<command>pitchmark</command> also performs post-processing on the pitchmarks.
1182
-This can be used to eliminate pitchmarks which occur too closely together,
1183
-or to provide estimated evenly spaced pitchmarks during unvoiced regions.
1184
-The -fill option switches <action>this facility on</action>,
1185
-and -min, -max, -def,
1186
--end and -wave_end control its operation.
1201
int main (int argc, char *argv[])
1204
@@ -399,29 +317,3 @@
1205
op.set("pm_debug", 1);
1210
-<formalpara><title>Basic Pitchmarking</title>
1213
-$ pitchmark kdt_010.lar -o kdt_010.pm -otype est
1218
-<formalpara><title>Pitchmarking with unvoiced regions
1219
-filled</title> <para> The following fills unvoiced regions with pitch
1220
-periods that are about 0.01 seconds long. It also post-processes the
1221
-set of pitchmarks and ensures that noe are above 0.02 seconds long and
1222
-none below 0.003. A final unvoiced region extending to the end of the
1223
-wave is specified by using the -wave_end option.
1224
-</para> </formalpara><para>
1226
-$ pitchmark kdt_010.lar -o kdt_010.pm -otype est -fill -min 0.003 \
1227
- -max 0.02 -def 0.01 -wave_end
1235
+++ b/main/program_main.cc
1240
+ std::cout << "hello world" << std:endl;
1244
+/// An example for program_main is shown at \ref program_example
1246
--- a/main/scfg_make_main.cc
1247
+++ b/main/scfg_make_main.cc
1249
const EST_StrList &Terminals);
1250
static void generate_probs(double *probs,int num);
1252
-/** @name <command>scfg_make</command> <emphasis>Make the rules for a stochastic context free grammar</emphasis>
1253
- @id scfg-make-manual
1268
-Builds a stochastic context free grammar from a vocabulary of non-terminal
1269
-and terminal symbols. An exhaustive set of all possible binary rules
1270
-are generated with random (or equal) probabilities (or negative log
1271
-probabilities). This program is designed for making grammars that
1272
-can be trained using scfg_train.
1287
int main(int argc, char **argv)
1288
--- a/main/scfg_parse_main.cc
1289
+++ b/main/scfg_parse_main.cc
1291
static int scfg_parse_main(int argc, char **argv);
1294
-/** @name <command>scfg_parse</command> <emphasis>Parse text using a pre-trained stochastic context free grammar</emphasis>
1295
- @id scfg-parse-manual
1310
-This parses given text with a given stochastic context free grammar.
1311
-Note this program is not designed as an arbitrary parser for
1312
-unrestricted English. It simply parses the input non-terminals
1313
-with the given grammar. If you want to English (or other language)
1314
-parses consider using the festival script <command>scfg_parse</command>
1315
-which does proper tokenization and part of speech tagging, before
1316
-passing it to a SCFG.
1330
int main(int argc, char **argv)
1333
--- a/main/scfg_test_main.cc
1334
+++ b/main/scfg_test_main.cc
1337
static int scfg_test_main(int argc, char **argv);
1339
-/** @name <command>scfg_test</command> <emphasis>Test the output of a parser</emphasis>
1340
- @id scfg-make-manual
1356
-This program applies a stochastic context free grammar to a given
1357
-corpus and reports the parsing accuracy and cross bracketing
1358
-accuracy of the grammar with respect to the grammar.
1373
int main(int argc, char **argv)
1374
--- a/main/scfg_train_main.cc
1375
+++ b/main/scfg_train_main.cc
1378
static int scfg_train_main(int argc, char **argv);
1380
-/** @name <command>scfg_train</command> <emphasis>Train the parameters of a stochastic context free grammar</emphasis>
1381
- @id scfg-make-manual
1396
-scfg_train takes a stochastic context free grammar (SCFG) and trains
1397
-the probabilities with respect to a given bracket corpus using the
1398
-inside-outside algorithm. This is basically an implementation
1399
-of Pereira and Schabes 1992.
1401
-Note using this program properly may require months of CPU time.
1417
int main(int argc, char **argv)
1419
--- a/main/sig2fv_main.cc
1420
+++ b/main/sig2fv_main.cc
1425
-/** @name <command>sig2fv</command> <emphasis>Generate signal processing coefficients from waveforms</emphasis>
1426
- * @id sigfv-manual
1439
-sig2fv is used to create signal processing feature vector analysis on speech
1441
-The following types of analysis are provided:
1444
-<listitem><para>Linear prediction (LPC)</para></listitem>
1445
-<listitem><para>Cepstrum coding from lpc coefficients</para></listitem>
1446
-<listitem><para>Mel scale cepstrum coding via fbank</para></listitem>
1447
-<listitem><para>Mel scale log filterbank analysis</para></listitem>
1448
-<listitem><para>Line spectral frequencies</para></listitem>
1449
-<listitem><para>Linear prediction reflection coefficients</para></listitem>
1450
-<listitem><para>Root mean square energy</para></listitem>
1451
-<listitem><para>Power</para></listitem>
1452
-<listitem><para>fundamental frequency (pitch)</para></listitem>
1453
-<listitem><para>calculation of delta and acceleration coefficients of all of the
1454
-above</para></listitem>
1457
-The -coefs option is used to specify a list of the names of what sort
1458
-of basic processing is required, and -delta and -acc are used for
1459
-delta and acceleration coefficients respectively.
1474
int main(int argc, char *argv[])
1476
EST_String out_file("-");
1477
@@ -339,75 +290,4 @@
1484
-Fixed frame basic linear prediction:
1486
-To produce a set of linear prediction coefficients at every 10ms, using
1487
-pre-emphasis and saving in EST format:
1491
-$ sig2fv kdt_010.wav -o kdt_010.lpc -coefs "lpc" -otype est -shift 0.01 -preemph 0.5
1494
-<formalpara><title>
1495
-Pitch Synchronous linear prediction</title><para>. The following used the set of pitchmarks
1496
-in kdt_010.pm as the centres of the analysis windows.
1502
-$ sig2fv kdt_010.wav -pm kdt_010.pm -o kdt_010.lpc -coefs "lpc" -otype est -shift 0.01 -preemph 0.5
1507
-F0, Linear prediction and cepstral coefficients:
1510
-$ sig2fv kdt_010.wav -o kdt_010.lpc -coefs "f0 lpc cep" -otype est -shift 0.01
1513
-Note that pitchtracking can also be done with the
1514
-<command>pda</command> program. Both use the same underlying
1515
-technique, but the pda program offers much finer control over the
1516
-pitch track specific processing parameters.
1520
-<para>Energy, Linear Prediction and Cepstral coefficients, with a 10ms frame shift
1521
-during analysis but a 5ms frame shift in the output file:
1525
-$ sig2fv kdt_010.wav -o kdt_010.lpc -coefs "f0 lpc cep" -otype est -S 0.005
1530
-<para>Delta and acc coefficients can be calculated even if their base form is not
1531
-required. This produces normal energy coefficients and cepstral delta coefficients:
1535
-$ sig2fv ../kdt_010.wav -o kdt_010.lpc -coefs "energy" -delta "cep" -otype est
1539
-<para>Mel-scaled cepstra, Delta and acc coefficients, as is common in speech
1543
-$ sig2fv ../kdt_010.wav -o kdt_010.lpc -coefs "melcep" -delta "melcep" -acc "melcep" -otype est -preemph 0.96
1553
--- a/main/sigfilter_main.cc
1554
+++ b/main/sigfilter_main.cc
1556
void FIR_double_filter(EST_Wave &in_sig, EST_Wave &out_sig,
1557
const EST_FVector &numerator);
1559
-/** @name <command>sigfilter</command> <emphasis>Filter waveforms</emphasis>
1560
- * @id sigfilter-manual
1573
-<command>sigfilter</command> filters an input waveform and produces a
1588
int main (int argc, char *argv[])
1590
--- a/main/siod_main.cc
1591
+++ b/main/siod_main.cc
1594
void siod_server_init(void);
1596
-/** @name <command>siod</command> <emphasis>Scheme Interpreter</emphasis>
1612
- <command>siod</command> is a command line interface to the
1613
- <productname>Scheme In One Defun</productname> Scheme interpreter,
1614
- as modified by CSTR for use in &theEST;. It is essentially &festival;
1615
- without the speech synthesis code.
1630
int main(int argc, char **argv)
1633
--- a/main/spectgen_main.cc
1634
+++ b/main/spectgen_main.cc
1637
void set_options(EST_Features &op, EST_Option &al);
1639
-/** @name <command>spectgen</command> <emphasis>Make spectrograms</emphasis>
1640
- * @id spectgen-manual
1653
-spectgen is used to create spectrograms, which are 3d plots of
1654
-amplitude against time and frequency. Spectgen takes a waveform and
1655
-produces a track, where each channel represents one frequency bin.
1657
-By default spectgen produces a "wide-band" spectrogram, that is one
1658
-with high time resolution and low frequency resolution. "Narrow-band"
1659
-spectrograms can be produced by using the -shift and -length options.
1661
-Typical values for -shift and -length are:
1678
int main(int argc, char *argv[])
1679
--- a/main/tilt_analysis_main.cc
1680
+++ b/main/tilt_analysis_main.cc
1685
-/** @name <command>tilt_analysis</command> <emphasis>Produce tilt descriptions from F0 contours</emphasis>
1686
- * @id tilt_analysis-manual
1692
void extract_channels(EST_Wave &single, const EST_Wave &multi, EST_IList &ch_list);
1701
-tilt_analysis produces a Tilt or RFC analysis of a F0 contour, given a set
1702
-label file containing a set of approximate intonational event boundaries.
1704
-A detailed description of the Tilt intonation model can be found in the
1705
-<link linkend="tilt-overview">Tilt model overview</link> section.
1721
@@ -207,97 +178,6 @@
1725
-/** @name Input Intonation Files
1727
-A label file containing approximate intonational event boundaries must
1728
-be given as input. A typical file in xlabel format is shown below:
1743
-The set of intonational events can be given on the command line with
1744
-the -event_names option. The default set is "a rb arb m mrb" and so
1745
-the above example would not need the -event_names option. The label
1746
-"c" (connection) is to separate events, in effect giving each event a
1747
-start time as well as a end time. The silence labels are important
1748
-also: they specify where phrases should start and end.
1754
-/** @name Input F0 Files
1756
-tilt_analysis can operate on all the F0 file types supported by the
1757
-EST library. Tilt analysis can only operate on smooth and continuous
1758
-F0 contours.(i.e. F0 values must be defined during unvoiced
1759
-regons). If the input contour is not in this format, use the -smooth
1760
-option. The -w1 and -w2 options can be used to control the amount of
1761
-smoothing. The smoothed version of the input contour can be examined
1762
-by saving it using the -sf0 option.
1769
-/** @name Output Intonation Files
1771
-The output will be a label file containing the tilt parameters for the
1772
-events in feature format. An example, in xlabel format, is shown below:
1776
-intonation_style tilt
1778
-0.29 26 phrase_start ; ev.f0 115.234 ; time 0.29 ;
1779
-0.53 26 a ; int_event 1 ; ev.f0 118.171 ; time 0.53 ; tilt.amp 21.8602 ;
1780
- tilt.dur 0.26 ; tilt.tilt -0.163727 ;
1781
-0.77 26 a ; int_event 1 ; ev.f0 112.694 ; time 0.77 ; tilt.amp 27.0315 ;
1782
- tilt.dur 0.32 ; tilt.tilt -0.446791 ;
1783
-1.53 26 a ; int_event 1 ; ev.f0 100.83 ; time 1.53 ; tilt.amp 7.507 ;
1784
- tilt.dur 0.22 ; tilt.tilt -0.296317 ;
1785
-1.79 26 phrase_end ; ev.f0 92.9785 ; time 1.79 ;
1789
-The -rfc option will make a file containing the RFC parameters instead:
1793
-intonation_style rfc
1795
-0.29 26 phrase_start ; ev.f0 115.234 ; time 0.29 ;
1796
-0.53 26 a ; ev.f0 118.171 ; rfc.rise_amp 8.19178 ; rfc.rise_dur 0.12 ;
1797
- rfc.fall_amp -13.6684 ; rfc.fall_dur 0.14 ; time 0.53 ;
1798
- 0.77 26 a ; ev.f0 112.694 ; rfc.rise_amp 6.50673 ; rfc.rise_dur 0.1 ;
1799
- rfc.fall_amp -20.5248 ; rfc.fall_dur 0.22 ; time 0.77 ;
1800
-1.53 26 a ; ev.f0 100.83 ; rfc.rise_amp 1.55832 ; rfc.rise_dur 0.11 ;
1801
- rfc.fall_amp -6.09238 ; rfc.fall_dur 0.11 ; time 1.53 ;
1802
-1.79 26 phrase_end ; ev.f0 92.9785 ; time 1.79 ;
1806
-The feature in the header, "intonation_style tilt" or
1807
-"intonation_style rfc" is needed for the tilt_synthesis program to
1818
void override_rfc_params(EST_Features &rfc, EST_Option &al)
1819
--- a/main/tilt_synthesis_main.cc
1820
+++ b/main/tilt_synthesis_main.cc
1822
#include "ling_class/EST_relation_aux.h"
1823
#include "EST_string_aux.h"
1825
-/** @name <command>tilt_synthesis</command> <emphasis>Generate F0 contours from Tilt descriptions</emphasis>
1826
- * @id tilt_synthesis-manual
1832
void extract_channels(EST_Wave &single, const EST_Wave &multi, EST_IList &ch_list);
1841
-tilt_synthesis generates a F0 contour, given a label file containing
1842
-parameterised Tilt or RFC events.
1844
-A detailed description of the Tilt intonation model can be found in the
1845
-<link linkend="tilt-overview">Tilt model overview</link> section.
1861
int main (int argc, char *argv[])
1863
@@ -143,53 +111,7 @@
1867
-/** @name Input Intonation Files
1869
-The input should be a label file containing the tilt parameters for the
1870
-events in feature format. An example, in xlabel format, is shown below:
1874
-intonation_style tilt
1876
-0.29 26 phrase_start ; ev.f0 115.234 ; position 0.29 ;
1877
-0.53 26 a ; int_event 1 ; ev.f0 118.171 ; position 0.53 ; tilt.amp 21.8602 ;
1878
- tilt.dur 0.26 ; tilt.tilt -0.163727 ;
1879
-0.77 26 a ; int_event 1 ; ev.f0 112.694 ; position 0.77 ; tilt.amp 27.0315 ;
1880
- tilt.dur 0.32 ; tilt.tilt -0.446791 ;
1881
-1.53 26 a ; int_event 1 ; ev.f0 100.83 ; position 1.53 ; tilt.amp 7.507 ;
1882
- tilt.dur 0.22 ; tilt.tilt -0.296317 ;
1883
-1.79 26 phrase_end ; ev.f0 92.9785 ; position 1.79 ;
1887
-tilt_synthesis can also generate F0 contours from RFC parameters:
1891
-intonation_style rfc
1893
-0.29 26 phrase_start ; ev.f0 115.234 ; position 0.29 ;
1894
-0.53 26 a ; ev.f0 118.171 ; rfc.rise_amp 8.19178 ; rfc.rise_dur 0.12 ;
1895
- rfc.fall_amp -13.6684 ; rfc.fall_dur 0.14 ; position 0.53 ;
1896
- 0.77 26 a ; ev.f0 112.694 ; rfc.rise_amp 6.50673 ; rfc.rise_dur 0.1 ;
1897
- rfc.fall_amp -20.5248 ; rfc.fall_dur 0.22 ; position 0.77 ;
1898
-1.53 26 a ; ev.f0 100.83 ; rfc.rise_amp 1.55832 ; rfc.rise_dur 0.11 ;
1899
- rfc.fall_amp -6.09238 ; rfc.fall_dur 0.11 ; position 1.53 ;
1900
-1.79 26 phrase_end ; ev.f0 92.9785 ; position 1.79 ;
1904
-The feature in the header, "intonation_style tilt" or
1905
-"intonation_style rfc" is needed for the tilt_synthesis program to know which
1906
-type of synthesis to perform.
1916
void override_lib_ops(EST_Option &a_list, EST_Option &al)
1917
--- a/main/viterbi_main.cc
1918
+++ b/main/viterbi_main.cc
1919
@@ -105,72 +105,6 @@
1925
-/** @name <command>viterbi</command> <emphasis>Combine n-gram model and likelihoods to estimate posterior probabilities</emphasis>
1926
- * @id viterbi-manual
1939
-viterbi is a simple time-synchronous Viterbi decoder. It finds the
1940
-most likely sequence of items drawn from a fixed vocabulary, given
1941
-frame-by-frame observation probabilities for each item in that
1942
-vocabulary, and a ngram grammar. Possible uses include:
1945
-<listitem><para>Simple speech recogniser back end</para></listitem>
1948
-viterbi can optionally use two sets of frame-by-frame observation
1949
-probabilities in a weighted-sum fashion. Also, the ngram language model
1950
-is not restricted to the conventional sliding window type in which the
1951
-previous n-1 items are the ngram context. Items in the ngram context
1952
-at each frame may be given. In this case, the user must provide a file
1953
-containing the ngram context: one (n-1) tuple per line. To include
1954
-items from the partial Viterbi path so far (i.e. found at recognition
1955
-time, not given) the special notation <-N> is used where N indicates
1956
-the distance back to the item required. For example <-1> would
1957
-indicate the item on the partial Viterbi path at the last frame. See
1961
-<para><title>Pruning</title></para>
1964
-Three types of pruning are available to reduce the size of the search
1965
-space and therefore speed up the search:
1968
-<listitem><para>Observation pruning</para></listitem>
1969
-<listitem><para>Top-N pruning at each frame</para></listitem>
1970
-<listitem><para>Fixed width beam pruning</para></listitem>
1989
int main(int argc, char **argv)
1992
@@ -824,26 +758,3 @@
1998
-Example 'given' file (items f and g are in the vocabulary), the ngram
2019
--- a/main/wagon_main.cc
2020
+++ b/main/wagon_main.cc
2023
static int wagon_main(int argc, char **argv);
2025
-/** @name <command>wagon</command> <emphasis>CART building program</emphasis>
2040
-wagon is used to build CART tress from feature data, its basic
2044
-<listitem><para>both decisions trees and decision lists are supported</para></listitem>
2045
-<listitem><para>predictees can be discrete or continuous</para></listitem>
2046
-<listitem><para>input features may be discrete or continuous</para></listitem>
2047
-<listitem><para>many options for controlling tree building</para>
2049
-<listitem><para>fixed stop value</para></listitem>
2050
-<listitem><para>balancing</para></listitem>
2051
-<listitem><para>held-out data and pruning</para></listitem>
2052
-<listitem><para>stepwise use of input features</para></listitem>
2053
-<listitem><para>choice of optimization criteria correct/entropy (for
2054
-classification and rmse/correlation (for regression)</para></listitem>
2059
-A detailed description of building CART models can be found in the
2060
-<link linkend="cart-overview">CART model overview</link> section.
2074
int main(int argc, char **argv)
2076
@@ -394,76 +346,3 @@
2080
-/** @name Building Trees
2082
-To build a decision tree (or list) Wagon requires data and a description
2083
-of it. A data file consists a set of samples, one per line each
2084
-consisting of the same set of features. Features may be categorial
2085
-or continuous. By default the first feature is the predictee and the
2086
-others are used as predictors. A typical data file will look like
2091
-0.399 pau sh 0 0 0 1 1 0 0 0 0 0 0
2092
-0.082 sh iy pau onset 0 1 0 0 1 1 0 0 1
2093
-0.074 iy hh sh coda 1 0 1 0 1 1 0 0 1
2094
-0.048 hh ae iy onset 0 1 0 1 1 1 0 1 1
2095
-0.062 ae d hh coda 1 0 0 1 1 1 0 1 1
2096
-0.020 d y ae coda 2 0 1 1 1 1 0 1 1
2097
-0.082 y ax d onset 0 1 0 1 1 1 1 1 1
2098
-0.082 ax r y coda 1 0 0 1 1 1 1 1 1
2099
-0.036 r d ax coda 2 0 1 1 1 1 1 1 1
2104
-The data may come from any source, such as the festival script
2105
-dumpfeats which allows the creation of such files easily from utterance
2108
-In addition to a data file a description file is also require that
2109
-gives a name and a type to each of the features in the datafile.
2110
-For the above example it would look like
2113
-((segment_duration float)
2114
- ( name aa ae ah ao aw ax ay b ch d dh dx eh el em en er ey f g
2115
- hh ih iy jh k l m n nx ng ow oy p r s sh t th uh uw v w y z zh pau )
2116
- ( n.name 0 aa ae ah ao aw ax ay b ch d dh dx eh el em en er ey f g
2117
- hh ih iy jh k l m n nx ng ow oy p r s sh t th uh uw v w y z zh pau )
2118
- ( p.name 0 aa ae ah ao aw ax ay b ch d dh dx eh el em en er ey f g
2119
- hh ih iy jh k l m n nx ng ow oy p r s sh t th uh uw v w y z zh pau )
2120
- (position_type 0 onset coda)
2121
- (pos_in_syl float)
2124
- (R:Sylstructure.parent.R:Syllable.p.syl_break float)
2125
- (R:Sylstructure.parent.syl_break float)
2126
- (R:Sylstructure.parent.R:Syllable.n.syl_break float)
2127
- (R:Sylstructure.parent.R:Syllable.p.stress 0 1)
2128
- (R:Sylstructure.parent.stress 0 1)
2129
- (R:Sylstructure.parent.R:Syllable.n.stress 0 1)
2133
-The feature names are arbitrary, but as they appear in the generated
2134
-trees is most useful if the trees are to be used in prediction of
2135
-an utterance that the names are features and/or pathnames.
2137
-Wagon can be used to build a tree with such files with the command
2139
-wagon -data feats.data -desc fest.desc -stop 10 -output feats.tree
2141
-A test data set may also be given which must match the given data description.
2142
-If specified the built tree will be tested on the test set and results
2143
-on that will be presented on completion, without a test set the
2144
-results are given with respect to the training data. However in
2145
-stepwise case the test set is used in the multi-level training process
2146
-thus it cannot be considered as true test data and more reasonable
2147
-results should found on applying the generate tree to truly
2148
-held out data (via the program wagon_test).
2153
--- a/main/wagon_test_main.cc
2154
+++ b/main/wagon_test_main.cc
2156
static void test_tree_float(EST_TokenStream &data, FILE *output,
2157
LISP tree, LISP description);
2159
-/** @name <command>wagon_test</command> <emphasis>Test CART models</emphasis>
2160
- @id wagon-test-manual
2174
-Wagon_test is used to test CART models on feature data.
2176
-A detailed description of the CART model can be found in the
2177
-<link linkend="cart-overview">CART model overview</link> section.
2180
int main(int argc, char **argv)
2182
@@ -409,41 +389,3 @@
2186
-/** @name Testing trees
2188
-Decision trees generated by wagon (or otherwise) can be applied
2189
-to and tested against data sets using this program. This program
2190
-requires a data set which is in the same format as wagon (and
2191
-other programs) requires. It also needs a dataset description
2192
-file naming the fields and given their type (see
2193
-<link linkend="wagon-manual">the wagon manual</link> for a description
2194
-for the actual format.
2196
-wagon_test -data feats.data -desc feats.desc -tree feats.tree
2198
-This will simply uses the tree against each sample in the data
2199
-file and compare the predicted value with the actual value and
2200
-produce a summary of the result. For categorial predictees a
2201
-percentage correct and confusion matrix is generated. For continuous
2202
-values the root mean squared error (RMSE) and correlation between the
2203
-predicted values and the actual values is given.
2205
-By default the predictee is the first field but may also be specified
2206
-on the command line. The dataset may contain features which are not
2209
-This program can also be used to generate output values for sampled
2210
-data. In this case the sample data must still contain a "value" for
2211
-the predictee even if it is dummy. The option
2212
-<command>-predict</command> will output the new sample vector with
2213
-the predicted value in place, and the option
2214
-<command>-predict_val</command> option will just output the value.
2216
-This program is specifically designed for testing purposes although it
2217
-can also just be used for prediction. It is probably more efficient
2218
-to use the Lisp function <command>wagon</command> or underlying
2219
-C++ function <command>wagon_predict()</command>.
2224
--- a/main/wfst_build_main.cc
2225
+++ b/main/wfst_build_main.cc
2227
static int wfst_build_main(int argc, char **argv);
2231
-/** @name <command>wfst_build</command> <emphasis>Build a weighted finite-state transducer</emphasis>
2232
- @id wfst-build-manual
2247
-Build and.or process weighted finite state transducers (WFSTs) form
2248
-various input formats. This program accepts descriptions
2249
-in the following formats and converts them to WFSTs
2251
-<listitem><para>regular expressions</para></listitem>
2252
-<listitem><para>regular grammars</para></listitem>
2253
-<listitem><para>Koskenniemi/Kay/Kaplan context restriction rules</para></listitem>
2255
-In addition various operations can be performed on two WFSTs
2257
-<listitem><para>compose: form new WFST feeding output of first WFSTs into
2258
-second WFSTs.</para></listitem>
2259
-<listitem><para>union: form new WFST accepting the language both WFSTs
2261
-<listitem><para>intersect: form new WFST accepting only the language common
2264
-<listitem><para>concat: form new WFST accepting the language from the
2265
-concatenation of all strings in the first WFST to all strings in the
2269
-The newly formed WFSTs can be optionally determinized and minimzed.
2271
-The option asis allows a single WFSTs to be loaded and determinized
2285
int main(int argc, char **argv)
2288
--- a/main/wfst_run_main.cc
2289
+++ b/main/wfst_run_main.cc
2292
static int wfst_run_main(int argc, char **argv);
2294
-/** @name <command>wfst_run</command> <emphasis>Run a weighted finite-state transducer</emphasis>
2295
- @id wfst-run-manual
2309
-This program runs a WFST on some given data. It works in either
2310
-recognize mode where both inputs and output are specified, but also
2311
-in transduction mode where an input is transduced to the output.
2326
int main(int argc, char **argv)
2328
--- a/main/wfst_train_main.cc
2329
+++ b/main/wfst_train_main.cc
2332
static int wfst_train_main(int argc, char **argv);
2334
-/** @name <command>wfst_train</command> <emphasis>Train a weighted finite-state transducer</emphasis>
2335
- @id wfst-train-manual
2349
-This takes an existing WFST and data and splits states in an entropy
2350
-reduce way to produced a new WFST that better models the given data.
2365
int main(int argc, char **argv)
2368
--- a/main/xml_parser_main.cc
2369
+++ b/main/xml_parser_main.cc
2374
-/** @name <command>xml_parser</command>
2375
- @id xml_parser_manual
2390
- <command>xml_parser</command> is a simple program giving access to
2391
- the <productname>RXP</productname> &xml; parser. It parses an input
2392
- file and prints the results out in a simple indented format. It's
2393
- main use is as a development tool, to check that files intended for
2394
- input to an &xml; application, for instance &festival;, parse as
2411
int main(int argc, char *argv[])