Julius is an open-source, high-performance large vocabulary continuous speech recognition (LVCSR) engine for speech-related researchs and developments. With HMM acoustic model and language model, you can construct your own speech recognition system.
Moved to github: https://github.com/julius-speech/julius
======================================================================
Large Vocabulary Continuous Speech
Recognition Engine
Julius
(Rev 1.0 1998/02/20)
(Rev 2.0 1999/02/20)
(Rev 3.0 2000/02/14)
(Rev 3.1 2000/05/11)
(Rev 3.2 2001/06/18)
(Rev 3.3 2002/09/12)
(Rev 3.4 2003/10/01)
(Rev 3.4.1 2004/02/25)
(Rev 3.4.2 2004/04/30)
(Rev 3.5 2005/11/11)
Copyright (c) 1991-2005 Kawahara Lab., Kyoto University
Copyright (c) 1997-2000 Information-technology Promotion Agency, Japan
Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology
Copyright (c) 2005 Julius project team, Nagoya Institute of Technology
All rights reserved
======================================================================
What's New in Julius-3.5?
==========================
Julius/Julian rev.3.5 is a major update that incorporates several new
functions that may be useful for realizing a speech interface.
Memory efficiency is also improved. Another big progress to system
developers is that the comments in source codes are fully re-written
to be able to cross-reference in HTML format.
Summary of changes in 3.5:
- New features
- Input verification / rejection concurrently with recognition process
based on one-state GMM scores
- Word graph output
- Arbitrary character set conversion for tty/module output
- Improved multi grammar support on Julian
- EsounD audio server support on Linux
- Linux and Windows version have been integrated into one source
- Multi-path version has been integrated to the original.
(can use by "--enable-multipath" at compilation time)
- Migrated from VC++ to minGW on Windows
- Improved memory size
- Remove redundant part of tree lexicon and beam work area for 1st pass.
- Compaction of word N-gram index (reduced from 32 bit to 24 bit).
- New N-gram binary format (can still read old binary).
- Many bug fixes
- Spectral subtraction now works.
- Fixed newline code problems in Win&Mac (grammar files and -filelist).
- Fix USB audio input in Linux.
- Many other fixes.
- Documentation
- Doxygen support (you can generate full source documents in English!)
- Remove old Japanese documents in doc.
All the changes are listed in "Release.txt".
Contents of Julius-3.5
=======================
(Files with "ja" are written in Japanese)
00readme.txt ReadMe (This file)
LICENSE.txt Terms and conditions of use
Release.txt Release note / ChangeLog
configure configure script
configure.in
Sample.jconf Sample configuration file for Julius-3.5
Sample-julian.jconf Sample configuration file for Julian-3.5
julius/ Julius/Julian 3.5 sources
libsent/ Julius/Julian 3.5 library sources
adinrec/ Record one sentence utterance to a file
adintool/ Record/split/send/receive speech data
gramtools/ Tools to build and test recognition grammar
jcontrol/ A sample network client module
mkbingram/ Convert N-gram to binary format
mkbinhmm/ Convert ascii hmmdefs to binary format
mkgshmm/ Model conversion for Gaussian Mixture Selection
mkss/ Estimate noise spectrum from mic input
support/ some tools to compile julius/julian from source
olddoc/ ChangeLogs before 3.2
From rev.3.4, a grammar-based recognizer called "Julian" is also
included. the Julian can be compiled from Julius sources by
specifying configure option "--enable-julian". The grammar format
Julian uses is original one based on BNF. A grammar compiler that
converts the written BNF to finite state grammar, and several test
tools are included in this archive.
About Documentation
====================
- Documents
The overall document that contains installation procedure,
tutorial, model formats and more, are available at:
http://julius.sourceforge.jp/en/Julius-3.2-book-e.pdf
It is basically based on rev.3.2, but will be also helpful for
recent versions.
The most up-to-date documentations and references can be available
on the Julius Web site.
http://julius.sourceforge.jp/en/
Please refer to other documents in Japanese at:
http://julius.sourceforge.jp/
- Recent changes
Changes between releases are fully listed in "Release.txt".
- Online reference manuals
for Julius, adintool, and other tools can be obtained in each
source directory, in both Unix man format and plain text.
For more information, see the URL below:
http://julius.sourceforge.jp/ (Japanese)
http://julius.sourceforge.jp/en/ (English)
Some documents are available only in Japanese. We are sorry for the
inconvenience.
LICENSE
========
Julius is an open-source software distributed as is, and available for
free. For more information about its license, please refer to
"LICENSE.txt" in this archive.
======================================================================
Large Vocabulary Continuous Speech
Recognition Engine
Julius
(Rev 1.0 1998/02/20)
(Rev 2.0 1999/02/20)
(Rev 3.0 2000/02/14)
(Rev 3.1 2000/05/11)
(Rev 3.2 2001/06/18)
(Rev 3.3 2002/09/12)
(Rev 3.4 2003/10/01)
(Rev 3.4.1 2004/02/25)
(Rev 3.4.2 2004/04/30)
(Rev 3.5 2005/11/11)
Copyright (c) 1991-2005 京都大学 河原研究室
Copyright (c) 1997-2000 情報処理振興事業協会(IPA)
Copyright (c) 2000-2005 奈良先端科学技術大学院大学 鹿野研究室
Copyright (c) 2005 名古屋工業大学 Julius開発チーム
All rights reserved
======================================================================
Julius-3.5
============
Julius-3.5 は,音声インタフェースのためのいくつかの重要な新機能の追加,
性能改善,バグ修正およびコードのブラッシュアップ,プログラム中の
コメントの大幅な追加が行われた,大幅なアップデートです.
主な変更点は以下のとおりです.
- 新機能のサポート
- 単語グラフ出力
- GMM による環境音識別および不要音棄却
- 複数文法認識の強化
- 文字コード変換
- オーディオ入力 (EsounD, ALSA-1.x)
- メモリ量の改善
- N-gram のインデックスを32bit→24bit
- 多くのバグ修正
- Windows版,multipath版のソースをすべて統合
- Windows コンソール版の改善,minGWへ移行
- ソースのドキュメンテーションを一新
すべての変更点は Release-ja.txt にまとめられていますので,ご覧下さい.
なお認識精度と速度は前バージョンから変化していません.
ファイルの構成
===============
00readme-ja.txt 最初に読む文書(このファイル)
LICENSE.txt ライセンス条項
Release-ja.txt リリースノート/変更履歴
configure configureスクリプト
configure.in
Sample.jconf.ja Julius用jconfファイルサンプル
Sample-julian.jconf.ja Julian用jconfファイルサンプル
julius/ Julius/Julian 3.5 本体ソース
libsent/ Julius/Julian 3.5 ライブラリソース
adinrec/ 録音ツール adinrec
adintool/ 音声録音/送受信ツール adintool
gramtools/ 文法作成ツール群
jcontrol/ サンプルネットワーククライアント jcontrol
mkbingram/ バイナリN-gram作成ツール mkbingram
mkbinhmm/ バイナリHMM作成ツール mkbinhmm
mkgshmm/ GMS用音響モデル変換ツール mkgshmm
mkss/ ノイズ平均スペクトル算出ツール mkss
support/ コンパイル用スクリプト
olddoc/ 3.2以前の変更履歴
ドキュメントについて
=====================
・ドキュメント
すべての関連ドキュメントはJulius の Web ページ上で公開しています.
チュートリアルから,様々な使用方法,各機能の紹介,制限事項など
に関する文書がありますので,そちらをご一読下さい.
ホームページ:http://julius.sourceforge.jp/
・最新版について
Release-ja.txt に以前のバージョンからの変更点がまとめられてい
ます.変更点の詳細については Release-ja.txt をご覧下さい.
・オンラインマニュアル
Julius,Julian および関連ツールのオンラインマニュアルは,
ソースからコンパイルする際に自動的にシステムにインストールされます.
また,それぞれのソースディレクトリにテキスト形式のマニュアルが
置いてありますので,そちらもご覧ください.
00readme-ja.txt:テキスト形式
*.man.ja: MAN形式
・ライセンス
Julius/Julian はフリーのオープンソースソフトウェアです.
私的用途・学術用途・商用を含め,利用に関して特に制限はありません.
許諾については同梱の文書 "LICENSE.txt" をご参照下さい.
ホームページについて
=====================
Julius/Julian の最新版の公開やドキュメントの整備,掲示板・ユーザML等に
関する情報は,以下のサイトにまとめられています.ご活用ください.
http://julius.sourceforge.jp/
以上
3.5 (2005.11.11)
=================
o New features:
- Input verification / rejection using GMM (-gmm, -gmmnum, -gmmreject)
- Word graph output (--enable-graphout, --enable-graphout-nbest)
- Pruning on 2nd pass based on local posterior CM (--enable-cmthres)
- Multiple/per-grammar recognition (-gram, -gramlist, -multigramout)
- Can specify multiple grammars at startup: "-gram prefix1,prefix2,..."
or "-gramlist listfile" where listfile contains list of prefixes.
- General output character set conversion "-charconv from to"
based on iconv (Linux) or Win32API+libjcode (Windows)
o Improved audio inputs on Linux:
- ALSA-1.x support. (--with-mictype=alsa)
- EsounD daemon input support. (--with-mictype=esd)
- Fixed some bugs on USB audio input.
- Audio capturing device can be specified via env. "AUDIODEV".
- Extra microphone API support using portaudio and spLib API.
o Performance improvements:
- Reduced memory size for beam operation on the 1st pass.
- Slightly optimized tree lexicon by removing redundant data.
- Reduced size of word N-gram index (reduced from 32 bit to 24 bit).
o Fixed bugs:
- Not working spectral subtraction.
- Memory leak when stack exhausted ("stack empty") on 2nd pass.
- Segmentation fault on a very short input of 1 to 4 frames.
- AM trained with no CMN cannot be used with waveform/mic input.
- Wrong short-pause word handling on successive decoding mode.
(--enable-sp-segment)
- No output of "maxcodebooksize" at startup.
- No output of the number of sentences found when stack exhausted.
- No output of "-separatescore" on module mode.
- Beam width does not adjusted when grammar has been changed and
full beam options (-b 0) is specified in Julian.
- Wrong update of category-aware cross-word triphones when
dynamically switching grammar on Julian.
- No output of grammar to stdout on multiple grammar mode.
- Unable to send/receive audio data between different endian machines.
- (Linux) crash when compiled with icc.
- (Linux) some strange behavior on USB audio.
- (Windows) confuse with CR/LF newline inputs in several text inputs.
- (Windows) mkdfa.pl could not work on cygwin.
- (Windows) sometimes fails to read a file when not using zlib.
- (Windows) wrong file suffix when recording with "-record" (.raw->.wav)
o Unified source code:
- Linux and Windows version are integrated into one source.
- Multi-path version has been integrated with the normal version
into one source. The multi-path version of Julius/Julian, that
allows any transitions of HMMs including model skip transition,
can be compiled by "--enable-multipath" option. The part of
source codes for the multi-path version can be identified
by the definition "MULTIPATH_VERSION".
o Other improvements:
- Now can be compiled on MinGW/MSYS on Windows
- Totally rewritten comments in entire source in Doxygen format.
You can generate fully browsable source documents in English.
Try "make doxygen" at the top directory (you need doxygen installed)
- Install additional executables of julius/julian with version and setting
names like "julius-3.5-fast" when "make install" is invoked.
- Updated LICENSE.txt with English translation for reference.
o Changed behaviors:
- Binary N-gram file format has been changed for smaller size.
The old files can still be read directly by julius, in which
case on-line conversion will be performed at startup.
You can convert the old files (3.4.2 and earlier) to the new
format with the new mkbingram by involing the command below:
"mkbingram -d oldbinary newbinary"
Please note that since mkbingram now output the new format
file, it can not be read by older Julius.
The binary N-gram file version can be detected by the first 17
bytes of the file: old format should be "julius_bingram_v3" and
new format should be "julius_bingram_v4".
- Byte order of audio stream via tcpip fixed to LITTLE ENDIAN.
- Now use built-in zlib by default for compressed files. This may
make the engine startup slower, and if you prefer, you can still
use the previous method using external gzip command by specifying
"--disable-zlib".
- (Windows) Changed the compilation procedure on VC++. You can build
Julian by only specifying "-DBUILD_JULIAN" at compiler option,
and do not need to alter "julius.h".
3.5 (2005.11.11)
=================
- 新たにサポートされた機能
- GMM による環境音識別および不要入力棄却(-gmm, -gmmnum -gmmreject)
- 単語グラフ出力 (--enable-graphout, --enable-graphout-nbest)
- 単語信頼度による枝刈り (--enable-cmthres)
- Julianで複数文法認識時に文法ごとの結果を出すオプションを追加
(-multigramout, 使い方は README-multigramout-ja.txt を参考に)
- 起動時に複数の文法ファイルを指定
"-gram prefix1,prefix2,..." もしくは "-gramlist listfile"
prefix は .dfa, .dict を除いたファイルのプレフィックスを指定
- テキスト出力のエンコーディング変換:"-charconv from to"
Linux では iconv, Win32 では Win32API + libjcode を使用.
- Linux での音声入力の改善
- ALSA-1.0.0 以降に対応 (--with-mictype=alsa)
- EsounD オーディオサーバーをサポート (--with-mictype=esd)
- USBオーディオ使用時にマイク入力が動作しないことがあるバグを修正
- 音声デバイス名(デフォルト:/dev/dsp)を環境変数 AUDIODEV で指定可能
- portaudio, spLib を音声入力として指定可能に
- メモリ使用量の改善
- 第1パスのビームのワークエリア使用メモリ量を削減
- 木構造化辞書のメモリ量を削減(outstyle, factoring関連の最適化)
(20k JNAS fast で 1.5MB削減)
- 単語N-gramのメモリ使用量を改善
(1)2-gramバックオフ構造を最適化(20k JNAS で 8MB削減, 3-gram量による)
(2)2-gramのN-gramインデックスを32bit→24bitに縮小
- 仕様変更
- N-gramのインデックス圧縮に伴い,バイナリN-gramのファイル形式が新し
くなった.古いのもそのまま読み込める(内部で新形式に自動変換される)
が,以下のようにすることで,あらかじめ新しい形式にしておくことができる.
"mkbingram -d oldbinary newbinary"
なお,本バージョンの mkbingram で出力したバイナリN-gramは新形式な
ので,3.4.2以前では読めないことに注意すること.
(参考:形式はファイルの最初の17バイトで判別できる:
"julius_bingram_v3" なら古いバージョン,
"julius_bingram_v4" なら新しいバージョン)
- adintool との接続:ネットワーク上のバイトオーダをリトルエンディア
ンに固定した.
- デフォルトで圧縮展開に zlib ライブラリを使用するようになった.
従来は外部 gzip を使用."--disable-zlib" でOFF (従来どおり) に変更可能
- Win: 出力文字コードのデフォルトを「変換なし」に変更.
3.4.2ではデフォルトで SJIS に変換していた.
- Win: VC++でのコンパイル方法を変更
Julianは -DBUILD_JULIAN をつける.julius.h を変更しなくて良い.
詳細は 00HowToCompile-win.txtを参照のこと
- バグ修正
- スペクトルサブトラクションが動かないバグを修正
- 第2パスで stack empty で終了時にメモリリークが生じていたバグを修正
- 非常に短時間(数フレーム)の入力で落ちるバグを修正
- CMN非使用の音響モデル使用時に音声ファイル・マイク入力できないバグを修正
- 逐次デコーディング(--enable-sp-segment)におけるsp単語扱いのバグを修正
- maxcodebooksize が表示されないバグを修正
- stack empty で探索失敗時に得られた候補数を表示
- モジュールモードで -separatescore に対応 (AMSCORE=..., LMSCORE=...)
- 全探索オプション "-b 0" 時にビーム幅が文法追加時に更新されないバグを修正
- 文法変更時に単語間トライフォンの計算が設計と異なっていたバグを修正
- 複数文法使用時に,認識結果の文法IDを標準出力でも出力するよう修正
- エンディアンの異なるマシン間で音声データの送受信に対応
- Linux: USBオーディオ使用時にマイク入力が動作しないことがあるバグを修正
- Linux: iccでコンパイルしたJuliusが起動時に落ちるバグを修正
- Win: 改行コード対応(文法ファイル・-filelist)
- Win: cygwin環境で mkdfa.pl がテンポラリを開けないバグを修正
- Win: ZLIB非使用時にfopenに失敗することがあるバグを修正
- Win: -record で録音したファイルの拡張子が .raw だったのを .wav に修正
- ソースの統合
- Linux版 と Windows コンソール版でソースを統合
- Multipath 版のソースを統合
"--enable-multipath" とすることで,モデルの遷移に制限のない
multipath 版をコンパイルすることができる.ソース内部では
"MULTIPATH_VERSION" の定義で切り替えている.
- その他
- Win: MinGW でコンパイルできるようになった.
- プログラム中のコメントの大規模な更新:Doxygen に対応.
"make doxygen" で HTML 形式のクロスリファレンスを生成できる.
- make install 時,"julius-3.5-fast" のようにバージョン番号と設定
(--enable-setup の値)をつけた実行バイナリを追加インストールするよう設定
- "./support/build-all.sh" で各設定の julius, julian および全ての実行バイナ
リをコンパイルして build-bin/ 以下に生成できるようにした.
- Updated LICENSE.txt with English translation for reference.