Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
    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)

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>

home | help