FreeBSD Manual Pages
julius
JULIUS(1) JULIUS(1)
NAME
julius
- open source multi-purpose LVCSR engine
SYNOPSIS
julius [-C jconffile] [options...]
DESCRIPTION
julius is a high-performance, multi-purpose, open-source speech recognition
engine for researchers and developers. It is capable of performing almost
real-time recognition of continuous speech with over 60k-word 3-gram lan-
guage model and triphone HMM model, on most current PCs. julius can per-
form recognition on audio files, live microphone input, network input and
feature parameter files.
The core recognition module is implemented as C library called "JuliusLib".
It can also be extended by plug-in facility.
Supported Models
julius needs a language model and an acoustic model to run as a speech rec-
ognizer. julius supports the following models.
Acoustic model
Sub-word HMM (Hidden Markov Model) in HTK ascii format are sup-
ported. Phoneme models (monophone), context dependent phoneme models
(triphone), tied-mixture and phonetic tied-mixture models of any
unit can be used. When using context dependent models, inter-word
context dependency is also handled. Multi-stream feature and MSD-HMM
is also supported. You can further use a tool mkbinhmm to convert
the ascii HMM file to a compact binary format for faster loading.
Note that julius itself can only extract MFCC features from speech
data. If you use acoustic HMM trained for other feature, you should
give the input in HTK parameter file of the same feature type.
Language model: word N-gram
Word N-gram language model, up to 10-gram, is supported. Julius uses
different N-gram for each pass: left-to-right 2-gram on 1st pass,
and right-to-left N-gram on 2nd pass. It is recommended to use both
LR 2-gram and RL N-gram for Julius. However, you can use only single
LR N-gram or RL N-gram. In such case, approximated LR 2-gram com-
puted from the given N-gram will be applied at the first pass.
The Standard ARPA format is supported. In addition, a binary format
is also supported for efficiency. The tool mkbingram(1) can convert
ARPA format N-gram to binary format.
Language model: grammar
The grammar format is an original one, and tools to create a recog-
nirion grammar are included in the distribution. A grammar consists
of two files: one is a 'grammar' file that describes sentence struc-
tures in a BNF style, using word 'category' name as terminate sym-
bols. Another is a 'voca' file that defines words with its pronunci-
ations (i.e. phoneme sequences) for each category. They should be
converted by mkdfa.pl(1) to a deterministic finite automaton file
(.dfa) and a dictionary file (.dict), respectively. You can also use
multiple grammars.
Language model: isolated word
You can perform isolated word recognition using only word dictio-
nary. With this model type, Julius will perform rapid one pass
recognition with static context handling. Silence models will be
added at both head and tail of each word. You can also use multiple
dictionaries in a process.
Search Algorithm
Recognition algorithm of julius is based on a two-pass strategy. Word
2-gram and reverse word 3-gram is used on the respective passes. The entire
input is processed on the first pass, and again the final searching process
is performed again for the input, using the result of the first pass to
narrow the search space. Specifically, the recognition algorithm is based
on a tree-trellis heuristic search combined with left-to-right frame-syn-
chronous beam search and right-to-left stack decoding search.
When using context dependent phones (triphones), interword contexts are
taken into consideration. For tied-mixture and phonetic tied-mixture mod-
els, high-speed acoustic likelihood calculation is possible using gaussian
pruning.
For more details, see the related documents.
OPTIONS
These options specify the models, system behaviors and various search para-
meters to Julius. These option can be set at the command line, but it is
recommended that you write them in a text file as a "jconf file", and spec-
ify it by "-C" option.
Applications incorporating JuliusLib also use these options to set the pa-
rameters of core recognition engine. For example, a jconf file can be
loaded to the enine by calling j_config_load_file_new() with the jconf file
name as argument.
Please note that relative paths in a jconf file should be relative to the
jconf file itself, not the current working directory.
Below are the details of all options, gathered by group.
Julius application option
These are application options of Julius, outside of JuliusLib. It contains
parameters and switches for result output, character set conversion, log
level, and module mode options. These option are specific to Julius, and
cannot be used at applications using JuliusLib other than Julius.
-outfile
On file input, this option write the recognition result of each file to
a separate file. The output file of an input file will be the same name
but the suffix will be changed to ".out". (rev.4.0)
-separatescore
Output the language and acoustic scores separately.
-callbackdebug
Print the callback names at each call for debug. (rev.4.0)
-charconv from to
Print with character set conversion. from is the source character set
used in the language model, and to is the target character set you want
to get.
On Linux, the arguments should be a code name. You can obtain the list
of available code names by invoking the command "iconv --list". On Win-
dows, the arguments should be a code name or codepage number. Code name
should be one of "ansi", "mac", "oem", "utf-7", "utf-8", "sjis", "euc".
Or you can specify any codepage number supported at your environment.
-nocharconv
Disable character conversion.
-module [port]
Run Julius on "Server Module Mode". After startup, Julius waits for
tcp/ip connection from client. Once connection is established, Julius
start communication with the client to process incoming commands from
the client, or to output recognition results, input trigger information
and other system status to the client. The default port number is 10500.
-record dir
Auto-save all input speech data into the specified directory. Each seg-
mented inputs are recorded each by one. The file name of the recorded
data is generated from system time when the input ends, in a style of
YYYY.MMDD.HHMMSS.wav. File format is 16bit monoral WAV. Invalid for mfc-
file input.
With input rejection by -rejectshort, the rejected input will also be
recorded even if they are rejected.
-logfile file
Save all log output to a file instead of standard output. (Rev.4.0)
-nolog
Disable all log output. (Rev.4.0)
-help
Output help message and exit.
Global options
These are model-/search-dependent options relating audio input, sound de-
tection, GMM, decoding algorithm, plugin facility, and others. Global op-
tions should be placed before any instance declaration (-AM, -LM, or -SR),
or just after "-GLOBAL" option.
Audio input
-input {mic|rawfile|mfcfile|adinnet|stdin|netaudio|alsa|oss|esd}
Choose speech input source. Specify 'file' or 'rawfile' for wave-
form file, 'htkparam' or 'mfcfile' for HTK parameter file. On
file input, users will be prompted to enter the file name from
stdin, or you can use -filelist option to specify list of files
to process.
'mic' is to get audio input from a default live microphone de-
vice, and 'adinnet' means receiving waveform data via tcpip net-
work from an adinnet client. 'netaudio' is from DatLink/NetAudio
input, and 'stdin' means data input from standard input.
For waveform file input, only WAV (no compression) and RAW (no-
header, 16bit, big endian) are supported by default. Other format
can be read when compiled with libsnd library. To see what format
is actually supported, see the help message using option -help.
For stdin input, only WAV and RAW is supported. (default: mfc-
file)
At Linux, you can choose API at run time by specifying alsa, oss
and esd.
-filelist filename
(With -input rawfile|mfcfile) perform recognition on all files
listed in the file. The file should contain input file per line.
Engine will end when all of the files are processed.
-notypecheck
By default, Julius checks the input parameter type whether it
matches the AM or not. This option will disable the check and
force engine to use the input vector as is.
-48
Record input with 48kHz sampling, and down-sample it to 16kHz
on-the-fly. This option is valid for 16kHz model only. The
down-sampling routine was ported from sptk. (Rev. 4.0)
-NA devicename
Host name for DatLink server input (-input netaudio).
-adport port_number
With -input adinnet, specify adinnet port number to listen. (de-
fault: 5530)
-nostrip
Julius by default removes successive zero samples in input speech
data. This option inhibits the removal.
-zmean , -nozmean
This option enables/disables DC offset removal of input waveform.
Offset will be estimated from the whole input. For microphone /
network input, zero mean of the first 48000 samples (3 seconds in
16kHz sampling) will be used for the estimation. (default: dis-
abled)
This option uses static offset for the channel. See also -zmean-
source for frame-wise offset removal.
Speech detection by level and zero-cross
-cutsilence , -nocutsilence
Turn on / off the speech detection by level and zero-cross. De-
fault is on for mic / adinnet input, and off for files.
-lv thres
Level threshold for speech input detection. Values should be in
range from 0 to 32767. (default: 2000)
-zc thres
Zero crossing threshold per second. Only input that goes over the
level threshold (-lv) will be counted. (default: 60)
-headmargin msec
Silence margin at the start of speech segment in milliseconds.
(default: 300)
-tailmargin msec
Silence margin at the end of speech segment in milliseconds. (de-
fault: 400)
Input rejection
Two simple front-end input rejection methods are implemented, based
on input length and average power of detected segment. The rejection
by average power is experimental, and can be enabled by --en-
able-power-reject on compilation. Valid for MFCC feature with power
coefficient and real-time input only.
For GMM-based input rejection see the GMM section below.
-rejectshort msec
Reject input shorter than specified milliseconds. Search will be
terminated and no result will be output.
-powerthres thres
Reject the inputted segment by its average energy. If the average
energy of the last recognized input is below the threshold,
Julius will reject the input. (Rev.4.0)
This option is valid when --enable-power-reject is specified at
compilation time.
Gaussian mixture model / GMM-VAD
GMM will be used for input rejection by accumulated score, or for
front-end GMM-based VAD when --enable-gmm-vad is specified.
NOTE: You should also set the proper MFCC parameters required for
the GMM, specifying the acoustic parameters described in AM section
-AM_GMM.
When GMM-based VAD is enabled, the voice activity score will be cal-
culated at each frame as front-end processing. The value will be
computed as \[ \max_{m \in M_v} p(x|m) - \max_{m \in M_n} p(x|m) \]
where $M_v$ is a set of voice GMM, and $M_n$ is a set of noise GMM
whose names should be specified by -gmmreject. The activity score
will be then averaged for the last N frames, where N is specified by
-gmmmargin. Julius updates the averaged activity score at each
frame, and detect speech up-trigger when the value gets higher than
a value specified by -gmmup, and detecgt down-trigger when it gets
lower than a value of -gmmdown.
-gmm hmmdefs_file
GMM definition file in HTK format. If specified, GMM-based input
verification will be performed concurrently with the 1st pass,
and you can reject the input according to the result as specified
by -gmmreject. The GMM should be defined as one-state HMMs.
-gmmnum number
Number of Gaussian components to be computed per frame on GMM
calculation. Only the N-best Gaussians will be computed for rapid
calculation. The default is 10 and specifying smaller value will
speed up GMM calculation, but too small value (1 or 2) may cause
degradation of identification performance.
-gmmreject string
Comma-separated list of GMM names to be rejected as invalid in-
put. When recognition, the log likelihoods of GMMs accumulated
for the entire input will be computed concurrently with the 1st
pass. If the GMM name of the maximum score is within this string,
the 2nd pass will not be executed and the input will be rejected.
-gmmmargin frames
(GMM_VAD) Head margin in frames. When a speech trigger detected
by GMM, recognition will start from current frame minus this
value. (Rev.4.0)
This option will be valid only if compiled with --enable-gmm-vad.
-gmmup value
(GMM_VAD) Up trigger threshold of voice activity score. (Rev.4.1)
This option will be valid only if compiled with --enable-gmm-vad.
-gmmdown value
(GMM_VAD) Down trigger threshold of voice activity score.
(Rev.4.1)
This option will be valid only if compiled with --enable-gmm-vad.
Decoding option
Real-time processing means concurrent processing of MFCC computation
1st pass decoding. By default, real-time processing on the pass is
on for microphone / adinnet / netaudio input, and for others.
-realtime , -norealtime
Explicitly switch on / off real-time (pipe-line) processing on
the first pass. The default is off for file input, and on for mi-
crophone, adinnet and NetAudio input. This option relates to the
way CMN and energy normalization is performed: if off, they will
be done using average features of whole input. If on, MAP-CMN and
energy normalization to do real-time processing.
Misc. options
-C jconffile
Load a jconf file at here. The content of the jconffile will be
expanded at this point.
-version
Print version information to standard error, and exit.
-setting
Print engine setting information to standard error, and exit.
-quiet
Output less log. For result, only the best word sequence will be
printed.
-debug
(For debug) output enormous internal message and debug informa-
tion to log.
-check {wchmm|trellis|triphone}
For debug, enter interactive check mode.
-plugindir dirlist
Specify directory to load plugin. If several direcotries exist,
specify them by colon-separated list.
Instance declaration for multi decoding
The following arguments will create a new configuration set with default
parameters, and switch current set to it. Jconf parameters specified after
the option will be set into the current set.
To do multi-model decoding, these argument should be specified at the first
of each model / search instances with different names. Any options before
the first instance definition will be IGNORED.
When no instance definition is found (as older version of Julius), all the
options are assigned to a default instance named _default.
Please note that decoding with a single LM and multiple AMs is not fully
supported. For example, you may want to construct the jconf file as follow-
ing.
This type of model sharing is not supported yet, since some part of LM pro-
cessing depends on the assigned AM. Instead, you can get the same result by
defining the same LMs for each AM, like this:
-AM name
Create a new AM configuration set, and switch current to the new one.
You should give a unique name. (Rev.4.0)
-LM name
Create a new LM configuration set, and switch current to the new one.
You should give a unique name. (Rev.4.0)
-SR name am_name lm_name
Create a new search configuration set, and switch current to the new
one. The specified AM and LM will be assigned to it. The am_name and
lm_name can be either name or ID number. You should give a unique name.
(Rev.4.0)
-AM_GMM
When using GMM for front-end processing, you can specify GMM-specific
acoustic parameters after this option. If you does not specify -AM_GMM
with GMM, the GMM will share the same parameter vector as the last AM.
The current AM will be switched to the GMM one, so be careful not to
confuse with normal AM configurations. (Rev.4.0)
-GLOBAL
Start a global section. The global options should be placed before any
instance declaration, or after this option on multiple model recogni-
tion. This can be used multiple times. (Rev.4.1)
-nosectioncheck , -sectioncheck
Disable / enable option location check in multi-model decoding. When en-
abled, the options between instance declaration is treated as "sections"
and only the belonging option types can be written. For example, when an
option -AM is specified, only the AM related option can be placed after
the option until other declaration is found. Also, global options should
be placed at top, before any instance declarataion. This is enabled by
default. (Rev.4.1)
Language model (-LM)
This group contains options for model definition of each language model
type. When using multiple LM, one instance can have only one LM.
Only one type of LM can be specified for a LM configuration. If you want to
use multi model, you should define them one as a new LM.
N-gram
-d bingram_file
Use binary format N-gram. An ARPA N-gram file can be converted to
Julius binary format by mkbingram.
-nlr arpa_ngram_file
A forward, left-to-right N-gram language model in standard ARPA
format. When both a forward N-gram and backward N-gram are speci-
fied, Julius uses this forward 2-gram for the 1st pass, and the
backward N-gram for the 2nd pass.
Since ARPA file often gets huge and requires a lot of time to
load, it may be better to convert the ARPA file to Julius binary
format by mkbingram. Note that if both forward and backward
N-gram is used for recognition, they together will be converted
to a single binary.
When only a forward N-gram is specified by this option and no
backward N-gram specified by -nrl, Julius performs recognition
with only the forward N-gram. The 1st pass will use the 2-gram
entry in the given N-gram, and The 2nd pass will use the given
N-gram, with converting forward probabilities to backward proba-
bilities by Bayes rule. (Rev.4.0)
-nrl arpa_ngram_file
A backward, right-to-left N-gram language model in standard ARPA
format. When both a forward N-gram and backward N-gram are speci-
fied, Julius uses the forward 2-gram for the 1st pass, and this
backward N-gram for the 2nd pass.
Since ARPA file often gets huge and requires a lot of time to
load, it may be better to convert the ARPA file to Julius binary
format by mkbingram. Note that if both forward and backward
N-gram is used for recognition, they together will be converted
to a single binary.
When only a backward N-gram is specified by this option and no
forward N-gram specified by -nlr, Julius performs recognition
with only the backward N-gram. The 1st pass will use the forward
2-gram probability computed from the backward 2-gram using Bayes
rule. The 2nd pass fully use the given backward N-gram. (Rev.4.0)
-v dict_file
Word dictionary file.
-silhead word_string -siltail word_string
Silence word defined in the dictionary, for silences at the be-
ginning of sentence and end of sentence. (default: "<s>", "</s>")
-mapunk word_string
Specify unknown word. Default is "<unk>" or "<UNK>". This will be
used to assign word probability on unknown words, i.e. words in
dictionary that are not in N-gram vocabulary.
-iwspword
Add a word entry to the dictionary that should correspond to in-
ter-word pauses. This may improve recognition accuracy in some
language model that has no explicit inter-word pause modeling.
The word entry to be added can be changed by -iwspentry.
-iwspentry word_entry_string
Specify the word entry that will be added by -iwspword. (default:
"<UNK> [sp] sp sp")
-sepnum number
Number of high frequency words to be isolated from the lexicon
tree, to ease approximation error that may be caused by the
one-best approximation on 1st pass. (default: 150)
Grammar
Multiple grammars can be specified by repeating -gram and -gramlist.
Note that this is unusual behavior from other options (in normal
Julius option, last one will override previous ones). You can use
-nogram to reset the grammars already specified before the point.
-gram gramprefix1[,gramprefix2[,gramprefix3,...]]
Comma-separated list of grammars to be used. the argument should
be a prefix of a grammar, i.e. if you have foo.dfa and foo.dict,
you should specify them with a single argument foo. Multiple
grammars can be specified at a time as a comma-separated list.
-gramlist list_file
Specify a grammar list file that contains list of grammars to be
used. The list file should contain the prefixes of grammars, each
per line. A relative path in the list file will be treated as
relative to the file, not the current path or configuration file.
-dfa dfa_file -v dict_file
An old way of specifying grammar files separately. This is bogus,
and should not be used any more.
-nogram
Remove the current list of grammars already specified by -gram,
-gramlist, -dfa and -v.
Isolated word
Dictionary can be specified by using -w and -wlist. When you specify
multiple times, all of them will be read at startup. You can use
-nogram to reset the already specified dictionaries at that point.
-w dict_file
Word dictionary for isolated word recognition. File format is the
same as other LM. (Rev.4.0)
-wlist list_file
Specify a dictionary list file that contains list of dictionaries
to be used. The list file should contain the file name of dictio-
naries, each per line. A relative path in the list file will be
treated as relative to the list file, not the current path or
configuration file. (Rev.4.0)
-nogram
Remove the current list of dictionaries already specified by -w
and -wlist.
-wsil head_sil_model_name tail_sil_model_name sil_context_name
On isolated word recognition, silence models will be appended to
the head and tail of each word at recognition. This option speci-
fies the silence models to be appended. sil_context_name is the
name of the head sil model and tail sil model as a context of
word head phone and tail phone. For example, if you specify -wsil
silB silE sp, a word with phone sequence b eh t will be trans-
lated as silB sp-b+eh b-eh+t eh-t+sp silE. (Rev.4.0)
User-defined LM
-userlm
Declare to use user LM functions in the program. This option
should be specified if you use user-defined LM functions.
(Rev.4.0)
Misc. LM options
-forcedict
Skip error words in dictionary and force running.
Acoustic model and feature analysis (-AM) (-AM_GMM)
This section is about options for acoustic model, feature extraction, fea-
ture normalizations and spectral subtraction.
After -AM name, an acoustic model and related specification should be writ-
ten. You can use multiple AMs trained with different MFCC types. For GMM,
the required parameter condition should be specified just as same as AMs
after -AM_GMM.
When using multiple AMs, the values of -smpPeriod, -smpFreq, -fsize and
-fshift should be the same among all AMs.
Acoustic HMM
-h hmmdef_file
Acoustic HMM definition file. It should be in HTK ascii format,
or Julius binary format. You can convert HTK ascii format to
Julius binary format using mkbinhmm.
-hlist hmmlist_file
HMMList file for phone mapping. This file provides mapping be-
tween logical triphone names generated in the dictionary and the
defined HMM names in hmmdefs. This option should be specified for
context-dependent model.
-tmix number
Specify the number of top Gaussians to be calculated in a mixture
codebook. Small number will speed up the acoustic computation,
but AM accuracy may get worse with too small value. See also
-gprune. (default: 2)
-spmodel name
Specify HMM model name that corresponds to short-pause in an ut-
terance. The short-pause model name will be used in recognition:
short-pause skipping on grammar recognition, word-end short-pause
model insertion with -iwsp on N-gram, or short-pause segmentation
(-spsegment). (default: "sp")
-multipath
Enable multi-path mode. To make decoding faster, Julius by de-
fault impose a limit on HMM transitions that each model should
have only one transition from initial state and to end state. On
multi-path mode, Julius does extra handling on inter-model tran-
sition to allows model-skipping transition and multiple out-
put/input transitions. Note that specifying this option will make
Julius a bit slower, and the larger beam width may be required.
This function was a compilation-time option on Julius 3.x, and
now becomes a run-time option. By default (without this option),
Julius checks the transition type of specified HMMs, and enable
the multi-path mode if required. You can force multi-path mode
with this option. (rev.4.0)
-gprune {safe|heuristic|beam|none|default}
Set Gaussian pruning algorithm to use. For tied-mixture model,
Julius performs Gaussian pruning to reduce acoustic computation,
by calculating only the top N Gaussians in each codebook at each
frame. The default setting will be set according to the model
type and engine setting. default will force accepting the de-
fault setting. Set this to none to disable pruning and perform
full computation. safe guarantees the top N Gaussians to be com-
puted. heuristic and beam do more aggressive computational cost
reduction, but may result in small loss of accuracy model (de-
fault: safe (standard), beam (fast) for tied mixture model, none
for non tied-mixture model).
-iwcd1 {max|avg|best number}
Select method to approximate inter-word triphone on the head and
tail of a word in the first pass.
max will apply the maximum likelihood of the same context tri-
phones. avg will apply the average likelihood of the same con-
text triphones. best number will apply the average of top N-best
likelihoods of the same context triphone.
Default is best 3 for use with N-gram, and avg for grammar and
word. When this AM is shared by LMs of both type, latter one will
be chosen.
-iwsppenalty float
Insertion penalty for word-end short pauses appended by -iwsp.
-gshmm hmmdef_file
If this option is specified, Julius performs Gaussian Mixture Se-
lection for efficient decoding. The hmmdefs should be a monophone
model generated from an ordinary monophone HMM model, using
mkgshmm.
-gsnum number
On GMS, specify number of monophone states to compute correspond-
ing triphones in detail. (default: 24)
Speech analysis
Only MFCC feature extraction is supported in current Julius. Thus
when recognizing a waveform input from file or microphone, AM must
be trained by MFCC. The parameter condition should also be set as
exactly the same as the training condition by the options below.
When you give an input in HTK Parameter file, you can use any para-
meter type for AM. In this case Julius does not care about the type
of input feature and AM, just read them as vector sequence and match
them to the given AM. Julius only checks whether the parameter types
are the same. If it does not work well, you can disable this check-
ing by -notypecheck.
In Julius, the parameter kind and qualifiers (as TARGETKIND in HTK)
and the number of cepstral parameters (NUMCEPS) will be set automat-
ically from the content of the AM header, so you need not specify
them by options.
Other parameters should be set exactly the same as training condi-
tion. You can also give a HTK Config file which you used to train AM
to Julius by -htkconf. When this option is applied, Julius will
parse the Config file and set appropriate parameter.
You can further embed those analysis parameter settings to a binary
HMM file using mkbinhmm.
If options specified in several ways, they will be evaluated in the
order below. The AM embedded parameter will be loaded first if any.
Then, the HTK config file given by -htkconf will be parsed. If a
value already set by AM embedded value, HTK config will override
them. At last, the direct options will be loaded, which will over-
ride settings loaded before. Note that, when the same options are
specified several times, later will override previous, except that
-htkconf will be evaluated first as described above.
-smpPeriod period
Sampling period of input speech, in unit of 100 nanoseconds. Sam-
pling rate can also be specified by -smpFreq. Please note that
the input frequency should be set equal to the training condi-
tions of AM. (default: 625, corresponds to 16,000Hz)
This option corresponds to the HTK Option SOURCERATE. The same
value can be given to this option.
When using multiple AM, this value should be the same among all
AMs.
-smpFreq Hz
Set sampling frequency of input speech in Hz. Sampling rate can
also be specified using -smpPeriod. Please note that this fre-
quency should be set equal to the training conditions of AM. (de-
fault: 16,000)
When using multiple AM, this value should be the same among all
AMs.
-fsize sample_num
Window size in number of samples. (default: 400)
This option corresponds to the HTK Option WINDOWSIZE, but value
should be in samples (HTK value / smpPeriod).
When using multiple AM, this value should be the same among all
AMs.
-fshift sample_num
Frame shift in number of samples. (default: 160)
This option corresponds to the HTK Option TARGETRATE, but value
should be in samples (HTK value / smpPeriod).
When using multiple AM, this value should be the same among all
AMs.
-preemph float
Pre-emphasis coefficient. (default: 0.97)
This option corresponds to the HTK Option PREEMCOEF. The same
value can be given to this option.
-fbank num
Number of filterbank channels. (default: 24)
This option corresponds to the HTK Option NUMCHANS. The same
value can be given to this option. Be aware that the default
value not the same as in HTK (22).
-ceplif num
Cepstral liftering coefficient. (default: 22)
This option corresponds to the HTK Option CEPLIFTER. The same
value can be given to this option.
-rawe , -norawe
Enable/disable using raw energy before pre-emphasis (default:
disabled)
This option corresponds to the HTK Option RAWENERGY. Be aware
that the default value differs from HTK (enabled at HTK, disabled
at Julius).
-enormal , -noenormal
Enable/disable normalizing log energy. On live input, this nor-
malization will be approximated from the average of last input.
(default: disabled)
This option corresponds to the HTK Option ENORMALISE. Be aware
that the default value differs from HTK (enabled at HTK, disabled
at Julius).
-escale float_scale
Scaling factor of log energy when normalizing log energy. (de-
fault: 1.0)
This option corresponds to the HTK Option ESCALE. Be aware that
the default value differs from HTK (0.1).
-silfloor float
Energy silence floor in dB when normalizing log energy. (default:
50.0)
This option corresponds to the HTK Option SILFLOOR.
-delwin frame
Delta window size in number of frames. (default: 2)
This option corresponds to the HTK Option DELTAWINDOW. The same
value can be given to this option.
-accwin frame
Acceleration window size in number of frames. (default: 2)
This option corresponds to the HTK Option ACCWINDOW. The same
value can be given to this option.
-hifreq Hz
Enable band-limiting for MFCC filterbank computation: set upper
frequency cut-off. Value of -1 will disable it. (default: -1)
This option corresponds to the HTK Option HIFREQ. The same value
can be given to this option.
-lofreq Hz
Enable band-limiting for MFCC filterbank computation: set lower
frequency cut-off. Value of -1 will disable it. (default: -1)
This option corresponds to the HTK Option LOFREQ. The same value
can be given to this option.
-zmeanframe , -nozmeanframe
With speech input, this option enables/disables frame-wise DC
offset removal. This corresponds to HTK configuration ZMEAN-
SOURCE. This cannot be used together with -zmean. (default: dis-
abled)
-usepower
Use power instead of magnitude on filterbank analysis. (default:
disabled)
Normalization
Julius can perform cepstral mean normalization (CMN) for inputs. CMN
will be activated when the given AM was trained with CMN (i.e. has
"_Z" qualifier in the header).
The cepstral mean will be estimated in different way according to
the input type. On file input, the mean will be computed from the
whole input. On live input such as microphone and network input, the
ceptral mean of the input is unknown at the start. So MAP-CMN will
be used. On MAP-CMN, an initial mean vector will be applied at the
beginning, and the mean vector will be smeared to the mean of the
incrementing input vector as input goes. Options below can control
the behavior of MAP-CMN.
-cvn
Enable cepstral variance normalization. At file input, the vari-
ance of whole input will be calculated and then applied. At live
microphone input, variance of the last input will be applied. CVN
is only supported for an audio input.
-vtln alpha lowcut hicut
Do frequency warping, typically for a vocal tract length normal-
ization (VTLN). Arguments are warping factor, high frequency
cut-off and low freq. cut-off. They correspond to HTK Config val-
ues, WARPFREQ, WARPHCUTOFF and WARPLCUTOFF.
-cmnload file
Load initial cepstral mean vector from file on startup. The file
should be one saved by -cmnsave. Loading an initial cepstral mean
enables Julius to better recognize the first utterance on a
real-time input. When used together with -cmnnoupdate, this ini-
tial value will be used for all input.
-cmnsave file
Save the calculated cepstral mean vector into file. The parame-
ters will be saved at each input end. If the output file already
exists, it will be overridden.
-cmnupdate -cmnnoupdate
Control whether to update the cepstral mean at each input on
real-time input. Disabling this and specifying -cmnload will make
engine to always use the loaded static initial cepstral mean.
-cmnmapweight float
Specify the weight of initial cepstral mean for MAP-CMN. Specify
larger value to retain the initial cepstral mean for a longer pe-
riod, and smaller value to make the cepstral mean rely more on
the current input. (default: 100.0)
Front-end processing
Julius can perform spectral subtraction to reduce some stationary
noise from audio input. Though it is not a powerful method, but it
may work on some situation. Julius has two ways to estimate noise
spectrum. One way is to assume that the first short segment of an
speech input is noise segment, and estimate the noise spectrum as
the average of the segment. Another way is to calculate average
spectrum from noise-only input using other tool mkss, and load it in
Julius. The former one is popular for speech file input, and latter
should be used in live input. The options below will switch / con-
trol the behavior.
-sscalc
Perform spectral subtraction using head part of each file as si-
lence part. The head part length should be specified by -sscal-
clen. Valid only for file input. Conflict with -ssload.
-sscalclen msec
With -sscalc, specify the length of head silence for noise spec-
trum estimation in milliseconds. (default: 300)
-ssload file
Perform spectral subtraction for speech input using pre-estimated
noise spectrum loaded from file. The noise spectrum file can be
made by mkss. Valid for all speech input. Conflict with -sscalc.
-ssalpha float
Alpha coefficient of spectral subtraction for -sscalc and -ss-
load. Noise will be subtracted stronger as this value gets
larger, but distortion of the resulting signal also becomes re-
markable. (default: 2.0)
-ssfloor float
Flooring coefficient of spectral subtraction. The spectral power
that goes below zero after subtraction will be substituted by the
source signal with this coefficient multiplied. (default: 0.5)
Misc. AM options
-htkconf file
Parse the given HTK Config file, and set corresponding parameters
to Julius. When using this option, the default parameter values
are switched from Julius defaults to HTK defaults.
Recognition process and search (-SR)
This section contains options for search parameters on the 1st / 2nd pass
such as beam width and LM weights, configurations for short-pause segmenta-
tion, switches for word lattice output and confusion network output, forced
alignments, and other options relating recognition process and result out-
put.
Default values for beam width and LM weights will change according to com-
pile-time setup of JuliusLib , AM model type, and LM size. Please see the
startup log for the actual values.
1st pass parameters
-lmp weight penalty
(N-gram) Language model weights and word insertion penalties for
the first pass.
-penalty1 penalty
(Grammar) word insertion penalty for the first pass. (default:
0.0)
-b width
Beam width in number of HMM nodes for rank beaming on the first
pass. This value defines search width on the 1st pass, and has
dominant effect on the total processing time. Smaller width will
speed up the decoding, but too small value will result in a sub-
stantial increase of recognition errors due to search failure.
Larger value will make the search stable and will lead to fail-
ure-free search, but processing time will grow in proportion to
the width.
The default value is dependent on acoustic model type: 400 (mono-
phone), 800 (triphone), or 1000 (triphone, setup=v2.1)
-nlimit num
Upper limit of token per node. This option is valid when --en-
able-wpair and --enable-wpair-nlimit are enabled at compilation
time.
-progout
Enable progressive output of the partial results on the first
pass.
-proginterval msec
Set the time interval for -progout in milliseconds. (default:
300)
2nd pass parameters
-lmp2 weight penalty
(N-gram) Language model weights and word insertion penalties for
the second pass.
-penalty2 penalty
(Grammar) word insertion penalty for the second pass. (default:
0.0)
-b2 width
Envelope beam width (number of hypothesis) at the second pass. If
the count of word expansion at a certain hypothesis length
reaches this limit while search, shorter hypotheses are not ex-
panded further. This prevents search to fall in
breadth-first-like situation stacking on the same position, and
improve search failure mostly for large vocabulary condition.
(default: 30)
-sb float
Score envelope width for enveloped scoring. When calculating hy-
pothesis score for each generated hypothesis, its trellis expan-
sion and Viterbi operation will be pruned in the middle of the
speech if score on a frame goes under the width. Giving small
value makes the second pass faster, but computation error may oc-
cur. (default: 80.0)
-s num
Stack size, i.e. the maximum number of hypothesis that can be
stored on the stack during the search. A larger value may give
more stable results, but increases the amount of memory required.
(default: 500)
-m count
Number of expanded hypotheses required to discontinue the search.
If the number of expanded hypotheses is greater then this thresh-
old then, the search is discontinued at that point. The larger
this value is, The longer Julius gets to give up search. (de-
fault: 2000)
-n num
The number of candidates Julius tries to find. The search contin-
ues till this number of sentence hypotheses have been found. The
obtained sentence hypotheses are sorted by score, and final re-
sult is displayed in the order (see also the -output). The possi-
bility that the optimum hypothesis is correctly found increases
as this value gets increased, but the processing time also be-
comes longer. The default value depends on the engine setup on
compilation time: 10 (standard) or 1 (fast or v2.1)
-output num
The top N sentence hypothesis to be output at the end of search.
Use with -n (default: 1)
-lookuprange frame
Set the number of frames before and after to look up next word
hypotheses in the word trellis on the second pass. This prevents
the omission of short words, but with a large value, the number
of expanded hypotheses increases and system becomes slow. (de-
fault: 5)
-looktrellis
(Grammar) Expand only the words survived on the first pass in-
stead of expanding all the words predicted by grammar. This op-
tion makes second pass decoding faster especially for large vo-
cabulary condition, but may increase deletion error of short
words. (default: disabled)
Short-pause segmentation / decoder-VAD
When compiled with --enable-decoder-vad, the short-pause segmenta-
tion will be extended to support decoder-based VAD.
-spsegment
Enable short-pause segmentation mode. Input will be segmented
when a short pause word (word with only silence model in pronun-
ciation) gets the highest likelihood at certain successive frames
on the first pass. When detected segment end, Julius stop the 1st
pass at the point, perform 2nd pass, and continue with next seg-
ment. The word context will be considered among segments.
(Rev.4.0)
When compiled with --enable-decoder-vad, this option enables de-
coder-based VAD, to skip long silence.
-spdur frame
Short pause duration length to detect end of input segment, in
number of frames. (default: 10)
-pausemodels string
A comma-separated list of pause model names to be used at
short-pause segmentation. The word whose pronunciation consists
of only the pause models will be treated as "pause word" and used
for pause detection. If not specified, name of -spmodel, -silhead
and -siltail will be used. (Rev.4.0)
-spmargin frame
Back step margin at trigger up for decoder-based VAD. When speech
up-trigger found by decoder-VAD, Julius will rewind the input pa-
rameter by this value, and start recognition at the point.
(Rev.4.0)
This option will be valid only if compiled with --enable-de-
coder-vad.
-spdelay frame
Trigger decision delay frame at trigger up for decoder-based VAD.
(Rev.4.0)
This option will be valid only if compiled with --enable-de-
coder-vad.
Word lattice / confusion network output
-lattice , -nolattice
Enable / disable generation of word graph. Search algorithm also
has changed to optimize for better word graph generation, so the
sentence result may not be the same as normal N-best recognition.
(Rev.4.0)
-confnet , -noconfnet
Enable / disable generation of confusion network. Enabling this
will also activates -lattice internally. (Rev.4.0)
-graphrange frame
Merge same words at neighbor position at graph generation. If the
beginning time and ending time of two word candidates of the same
word is within the specified range, they will be merged. The de-
fault is 0 (allow merging same words on exactly the same loca-
tion) and specifying larger value will result in smaller graph
output. Setting this value to -1 will disable merging, in that
case same words on the same location of different scores will be
left as they are. (default: 0)
-graphcut depth
Cut the resulting graph by its word depth at post-processing
stage. The depth value is the number of words to be allowed at a
frame. Setting to -1 disables this feature. (default: 80)
-graphboundloop count
Limit the number of boundary adjustment loop at post-processing
stage. This parameter prevents Julius from blocking by infinite
adjustment loop by short word oscillation. (default: 20)
-graphsearchdelay , -nographsearchdelay
When this option is enabled, Julius modifies its graph generation
algorithm on the 2nd pass not to terminate search by graph merg-
ing, until the first sentence candidate is found. This option may
improve graph accuracy, especially when you are going to generate
a huge word graph by setting broad search. Namely, it may result
in better graph accuracy when you set wide beams on both 1st pass
-b and 2nd pass -b2, and large number for -n. (default: disabled)
Multi-gram / multi-dic recognition
-multigramout , -nomultigramout
On grammar recognition using multiple grammars, Julius will out-
put only the best result among all grammars. Enabling this option
will make Julius to output result for each grammar. (default:
disabled)
Forced alignment
-walign
Do viterbi alignment per word units for the recognition result.
The word boundary frames and the average acoustic scores per
frame will be calculated.
-palign
Do viterbi alignment per phone units for the recognition result.
The phone boundary frames and the average acoustic scores per
frame will be calculated.
-salign
Do viterbi alignment per state for the recognition result. The
state boundary frames and the average acoustic scores per frame
will be calculated.
Misc. search options
-inactive
Start this recognition process instance with inactive state.
(Rev.4.0)
-1pass
Perform only the first pass.
-fallback1pass
When 2nd pass fails, Julius finish the recognition with no re-
sult. This option tell Julius to output the 1st pass result as a
final result when the 2nd pass fails. Note that some score output
(confidence etc.) may not be useful. This was the default behav-
ior of Julius-3.x.
-no_ccd , -force_ccd
Explicitly switch phone context handling at search. Normally
Julius determines whether the using AM is a context-dependent
model or not from the model names, i.e., whether the names con-
tain character + and -. This option will override the automatic
detection.
-cmalpha float
Smoothing parameter for confidence scoring. (default: 0.05)
-iwsp
(Multi-path mode only) Enable inter-word context-free short pause
insertion. This option appends a skippable short pause model for
every word end. The short-pause model can be specified by -sp-
model.
-transp float
Additional insertion penalty for transparent words. (default:
0.0)
-demo
Equivalent to -progout -quiet.
ENVIRONMENT VARIABLES
ALSADEV
(using mic input with alsa device) specify a capture device name. If not
specified, "default" will be used.
AUDIODEV
(using mic input with oss device) specify a capture device path. If not
specified, "/dev/dsp" will be used.
LATENCY_MSEC
Try to set input latency of microphone input in milliseconds. Smaller
value will shorten latency but sometimes make process unstable. Default
value will depend on the running OS.
EXAMPLES
For examples of system usage, refer to the tutorial section in the Julius
documents.
NOTICE
Note about jconf files: relative paths in a jconf file are interpreted as
relative to the jconf file itself, not to the current directory.
SEE ALSO
julian(1), jcontrol(1), adinrec(1), adintool(1), mkbingram(1), mkbinhmm(1),
mkgsmm(1), wav2mfcc(1), mkss(1)
http://julius.sourceforge.jp/en/
DIAGNOSTICS
Julius normally will return the exit status 0. If an error occurs, Julius
exits abnormally with exit status 1. If an input file cannot be found or
cannot be loaded for some reason then Julius will skip processing for that
file.
BUGS
There are some restrictions to the type and size of the models Julius can
use. For a detailed explanation refer to the Julius documentation. For
bug-reports, inquires and comments please contact julius-info at
lists.sourceforge.jp.
COPYRIGHT
Copyright (c) 1991-2008 Kawahara Lab., Kyoto University
Copyright (c) 1997-2000 Information-technology Promotion Agency, Japan
Copyright (c) 2000-2008 Shikano Lab., Nara Institute of Science and Tech-
nology
Copyright (c) 2005-2008 Julius project team, Nagoya Institute of Technology
AUTHORS
Rev.1.0 (1998/02/20)
Designed by Tatsuya KAWAHARA and Akinobu LEE (Kyoto University)
Development by Akinobu LEE (Kyoto University)
Rev.1.1 (1998/04/14), Rev.1.2 (1998/10/31), Rev.2.0 (1999/02/20), Rev.2.1
(1999/04/20), Rev.2.2 (1999/10/04), Rev.3.0 (2000/02/14), Rev.3.1
(2000/05/11)
Development of above versions by Akinobu LEE (Kyoto University)
Rev.3.2 (2001/08/15), Rev.3.3 (2002/09/11), Rev.3.4 (2003/10/01), Rev.3.4.1
(2004/02/25), Rev.3.4.2 (2004/04/30)
Development of above versions by Akinobu LEE (Nara Institute of Science
and Technology)
Rev.3.5 (2005/11/11), Rev.3.5.1 (2006/03/31), Rev.3.5.2 (2006/07/31),
Rev.3.5.3 (2006/12/29), Rev.4.0 (2007/12/19), Rev.4.1 (2008/10/03)
Development of above versions by Akinobu LEE (Nagoya Institute of Tech-
nology)
THANKS TO
From rev.3.2, Julius is released by the "Information Processing Society,
Continuous Speech Consortium".
The Windows DLL version was developed and released by Hideki BANNO (Nagoya
University).
The Windows Microsoft Speech API compatible version was developed by
Takashi SUMIYOSHI (Kyoto University).
02/11/2009 JULIUS(1)
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | ENVIRONMENT VARIABLES | EXAMPLES | NOTICE | SEE ALSO | DIAGNOSTICS | BUGS | COPYRIGHT | AUTHORS | THANKS TO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=julius&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>
