Environment
1
2
3
4
5
6
7
8
9
10
11
12
|
$ uname -a
Linux rpi4 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
$ julius --version
JuliusLib rev.4.6 (fast)
|
Prioritize USB microphone
Check sound device
1
2
3
4
5
|
$ cat /proc/asound/modules
0 snd_bcm2835
1 vc4
2 snd_usb_audio
3 vc4
|
Prioritize USB Mic
1
|
$ sudo vi /lib/modprobe.d/aliases.conf
|
1
2
3
4
5
6
7
|
# Comment out
#options snd-usb-audio index=-2
# Insert
options snd slots=snd_usb_audio,snd_bcm2835
options snd_usb_audio index=0
options snd_bcm2835 index=1
|
Reboot raspberry Pi
Check sound device again
1
2
3
4
5
|
$ cat /proc/asound/modules
0 snd_usb_audio
1 snd_bcm2835
2 vc4
3 vc4
|
Create original dictionary
Create sample.yomi
(tab delimited, space characters are not allowed. )
sample.yomi
1
2
3
4
5
|
鬼太郎 きたろう
バカボン ばかぼん
マーシー まーしー
ウッシー うっしー
花子 はなこ
|
Convert sample.yomi
to sample.dic
by yomi2voca.pl
in Julius. In my case, the full path is ~/repo/julius-speech/julius/gramtools/yomi2voca/yomi2voca.pl
1
|
cat sample.yomi | ~/repo/julius-speech/julius/gramtools/yomi2voca/yomi2voca.pl > sample.dic
|
sample.dic
1
2
3
4
5
|
鬼太郎 k i t a r o u
バカボン b a k a b o N
マーシー m a: sh i:
ウッシー u q sh i:
花子 h a n a k o
|
Configuration file
sample.jconf
1
2
3
4
5
6
7
8
9
10
11
|
-w sample.dic #単語辞書ファイル。作成した「sample.dic」を指定
-v model/lang_m/bccwj.60k.htkdic #N-gram、または文法用の単語辞書ファイルを指定
-h model/phone_m/jnas-tri-3k16-gid.binhmm #使用するHMM定義ファイル
-hlist model/phone_m/logicalTri #HMMlistファイルを指定する
-n 3 #n個の文仮説数が見つかるまで検索を行う。3〜5。
-output 1 #見つかったN-best候補のうち、結果として出力する個数
#-input mic #マイク使用 引数で指定している場合は不要
#-input oss #オープンサウンドシステム使用
-rejectshort 1000 #検出された入力時間(msec)が閾値以下なら棄却
-lv 1000 #入力の振幅レベルの閾値(0~32767)
-fvad 1
|
Run it!
The simplest usage for this is:
1
|
julius -C sample.jconf -input mic -demo
|
If you want to run a process and open socket port for getting the word dictation result,
1
|
julius -C sample.jconf -input mic -module
|
I embed this as a local word dictation service. If the service dictate a keyword (in this example, “ウッシー”), that kicks the following process (in my case, calling a client service for querying online chat services)
The demo vide is in the below link
https://youtube.com/shorts/LPZS0qIwn_s
References