📜 ⬆️ ⬇️

Speech Recognition with CMU Sphinx

CMU Sphinx is now the largest human speech recognition project. The toolkit includes the following programs and libraries:


To work with CMU Sphinx, it is important to remember a few definitions and understand their differences.


The more complex the language, the more extensive the rules and the size of the dictionary, the worse the recognition accuracy. Therefore, to minimize the error, it makes sense to create simplified rules that will describe a specific task.

Our formal language

Let our program respond to the phrases “ok, computer” or “ok, calculator” followed by a simple expression. For example:
ok, computer forty seven plus twenty one.
We begin to describe the formal grammar.
')
Greeting or activation (the symbol | means or, parentheses are used as a grouping operator):
= (|)(|);


:
= (|||||||||);


( 10 19, 20,30,40,50,60,70,80,90 ):
= (|||||||||)|(|||||||)[];


(100,200,300,400,500,600,700,800,900 ):
= (||||||)[|];


(n ):
= [||](||)[||];


, , .
:
= |||;


:
= | | | ;


:
= ;


, :
public = ;


calc.jsgf.


. , , . , , . - 500000 , . , , . , . . - .

ru4sphinx. dict2transcript.pl 2 ( , ).

:

v ay ss imn aa c ay tt
v oo ss i mm
v oo ss i mm dd i ss it
(2) v oo ss i mm ss it
v ay ss i mm s oo t
dv aa
dv aa c ay tt
d vv je
d vv in aa c ay tt
d vv je ss tt i
dd i vv in oo st ay
dd i vv itn aa c ay tt
dd je vv i tt
dd i vv ic oo t
dd je ss i tt
k ay ll ku ll ja t ay r
kam pp j ju tt ir
mm ii nus
n aa
n oo ll
a dd ii n
a dd ii n ay c ay tt
adn aa
oo k
a kk je j
p ll ju s
pp itn aa c ay tt
pp ja tt
pp i tt dd i ss ja t
(2) pp i ss ja t
pp ic oo t
r ay z dd i ll ii tt
ss imn aa c ay tt
ss je mm
ss je mm dd i ss it
(2) ss je mm ss it
ss i mm s oo t
s oo r ay k
(2) sar oo k
st oo
t rr ii
t rr ii c ay tt
t rr in aa c ay tt
t rr ii st ay
t yy ss i ch
t yy ss i ch i
(2) t yy s ay ch i
(3) t yy sch i
t yy ss i ch i
(2) t yy sch i
umn oo zh y tt
ch it yy rr i
ch it yy rr ist ay
ch it yy rn ay c ay tt
sh ysn aa c ay tt
sh oo ss tt
(2) sh ee ss tt
sh y ss tt dd i ss ja t
(2) sh yz dd i ss ja t
(3) sh y ss ja t
sh ys oo t
(2) sh ys oo t

.


, pocketsphinx. Pocketsphinx_continuous , :

-hmm < >. , zero_ru_cont_8k_v3/zero_ru.cd_cont_4000 . -dict < > -jsgf < > -lm < > -logfn < >. stdout. -infile < >. . -inmic <yes|no>. . -remove_noise <yes|no>. . yes.
pocketsphinx_continuous -hmm zero_ru.cd_cont_4000 -dict calc_lang/vocabular.dict -jsgf calc_lang/calc.jsgf -inmic yes


= (|)(|);


:
= (|||||||||);


( 10 19, 20,30,40,50,60,70,80,90 ):
= (|||||||||)|(|||||||)[];


(100,200,300,400,500,600,700,800,900 ):
= (||||||)[|];


(n ):
= [||](||)[||];


, , .
:
= |||;


:
= | | | ;


:
= ;


, :
public = ;


calc.jsgf.


. , , . , , . - 500000 , . , , . , . . - .

ru4sphinx. dict2transcript.pl 2 ( , ).

:

v ay ss imn aa c ay tt
v oo ss i mm
v oo ss i mm dd i ss it
(2) v oo ss i mm ss it
v ay ss i mm s oo t
dv aa
dv aa c ay tt
d vv je
d vv in aa c ay tt
d vv je ss tt i
dd i vv in oo st ay
dd i vv itn aa c ay tt
dd je vv i tt
dd i vv ic oo t
dd je ss i tt
k ay ll ku ll ja t ay r
kam pp j ju tt ir
mm ii nus
n aa
n oo ll
a dd ii n
a dd ii n ay c ay tt
adn aa
oo k
a kk je j
p ll ju s
pp itn aa c ay tt
pp ja tt
pp i tt dd i ss ja t
(2) pp i ss ja t
pp ic oo t
r ay z dd i ll ii tt
ss imn aa c ay tt
ss je mm
ss je mm dd i ss it
(2) ss je mm ss it
ss i mm s oo t
s oo r ay k
(2) sar oo k
st oo
t rr ii
t rr ii c ay tt
t rr in aa c ay tt
t rr ii st ay
t yy ss i ch
t yy ss i ch i
(2) t yy s ay ch i
(3) t yy sch i
t yy ss i ch i
(2) t yy sch i
umn oo zh y tt
ch it yy rr i
ch it yy rr ist ay
ch it yy rn ay c ay tt
sh ysn aa c ay tt
sh oo ss tt
(2) sh ee ss tt
sh y ss tt dd i ss ja t
(2) sh yz dd i ss ja t
(3) sh y ss ja t
sh ys oo t
(2) sh ys oo t

.


, pocketsphinx. Pocketsphinx_continuous , :

-hmm < >. , zero_ru_cont_8k_v3/zero_ru.cd_cont_4000 . -dict < > -jsgf < > -lm < > -logfn < >. stdout. -infile < >. . -inmic <yes|no>. . -remove_noise <yes|no>. . yes.
pocketsphinx_continuous -hmm zero_ru.cd_cont_4000 -dict calc_lang/vocabular.dict -jsgf calc_lang/calc.jsgf -inmic yes


= (|)(|);


:
= (|||||||||);


( 10 19, 20,30,40,50,60,70,80,90 ):
= (|||||||||)|(|||||||)[];


(100,200,300,400,500,600,700,800,900 ):
= (||||||)[|];


(n ):
= [||](||)[||];


, , .
:
= |||;


:
= | | | ;


:
= ;


, :
public = ;


calc.jsgf.


. , , . , , . - 500000 , . , , . , . . - .

ru4sphinx. dict2transcript.pl 2 ( , ).

:

v ay ss imn aa c ay tt
v oo ss i mm
v oo ss i mm dd i ss it
(2) v oo ss i mm ss it
v ay ss i mm s oo t
dv aa
dv aa c ay tt
d vv je
d vv in aa c ay tt
d vv je ss tt i
dd i vv in oo st ay
dd i vv itn aa c ay tt
dd je vv i tt
dd i vv ic oo t
dd je ss i tt
k ay ll ku ll ja t ay r
kam pp j ju tt ir
mm ii nus
n aa
n oo ll
a dd ii n
a dd ii n ay c ay tt
adn aa
oo k
a kk je j
p ll ju s
pp itn aa c ay tt
pp ja tt
pp i tt dd i ss ja t
(2) pp i ss ja t
pp ic oo t
r ay z dd i ll ii tt
ss imn aa c ay tt
ss je mm
ss je mm dd i ss it
(2) ss je mm ss it
ss i mm s oo t
s oo r ay k
(2) sar oo k
st oo
t rr ii
t rr ii c ay tt
t rr in aa c ay tt
t rr ii st ay
t yy ss i ch
t yy ss i ch i
(2) t yy s ay ch i
(3) t yy sch i
t yy ss i ch i
(2) t yy sch i
umn oo zh y tt
ch it yy rr i
ch it yy rr ist ay
ch it yy rn ay c ay tt
sh ysn aa c ay tt
sh oo ss tt
(2) sh ee ss tt
sh y ss tt dd i ss ja t
(2) sh yz dd i ss ja t
(3) sh y ss ja t
sh ys oo t
(2) sh ys oo t

.


, pocketsphinx. Pocketsphinx_continuous , :

-hmm < >. , zero_ru_cont_8k_v3/zero_ru.cd_cont_4000 . -dict < > -jsgf < > -lm < > -logfn < >. stdout. -infile < >. . -inmic <yes|no>. . -remove_noise <yes|no>. . yes.
pocketsphinx_continuous -hmm zero_ru.cd_cont_4000 -dict calc_lang/vocabular.dict -jsgf calc_lang/calc.jsgf -inmic yes


= (|)(|);


:
= (|||||||||);


( 10 19, 20,30,40,50,60,70,80,90 ):
= (|||||||||)|(|||||||)[];


(100,200,300,400,500,600,700,800,900 ):
= (||||||)[|];


(n ):
= [||](||)[||];


, , .
:
= |||;


:
= | | | ;


:
= ;


, :
public = ;


calc.jsgf.


. , , . , , . - 500000 , . , , . , . . - .

ru4sphinx. dict2transcript.pl 2 ( , ).

:

v ay ss imn aa c ay tt
v oo ss i mm
v oo ss i mm dd i ss it
(2) v oo ss i mm ss it
v ay ss i mm s oo t
dv aa
dv aa c ay tt
d vv je
d vv in aa c ay tt
d vv je ss tt i
dd i vv in oo st ay
dd i vv itn aa c ay tt
dd je vv i tt
dd i vv ic oo t
dd je ss i tt
k ay ll ku ll ja t ay r
kam pp j ju tt ir
mm ii nus
n aa
n oo ll
a dd ii n
a dd ii n ay c ay tt
adn aa
oo k
a kk je j
p ll ju s
pp itn aa c ay tt
pp ja tt
pp i tt dd i ss ja t
(2) pp i ss ja t
pp ic oo t
r ay z dd i ll ii tt
ss imn aa c ay tt
ss je mm
ss je mm dd i ss it
(2) ss je mm ss it
ss i mm s oo t
s oo r ay k
(2) sar oo k
st oo
t rr ii
t rr ii c ay tt
t rr in aa c ay tt
t rr ii st ay
t yy ss i ch
t yy ss i ch i
(2) t yy s ay ch i
(3) t yy sch i
t yy ss i ch i
(2) t yy sch i
umn oo zh y tt
ch it yy rr i
ch it yy rr ist ay
ch it yy rn ay c ay tt
sh ysn aa c ay tt
sh oo ss tt
(2) sh ee ss tt
sh y ss tt dd i ss ja t
(2) sh yz dd i ss ja t
(3) sh y ss ja t
sh ys oo t
(2) sh ys oo t

.


, pocketsphinx. Pocketsphinx_continuous , :

-hmm < >. , zero_ru_cont_8k_v3/zero_ru.cd_cont_4000 . -dict < > -jsgf < > -lm < > -logfn < >. stdout. -infile < >. . -inmic <yes|no>. . -remove_noise <yes|no>. . yes.
pocketsphinx_continuous -hmm zero_ru.cd_cont_4000 -dict calc_lang/vocabular.dict -jsgf calc_lang/calc.jsgf -inmic yes


= (|)(|);


:
= (|||||||||);


( 10 19, 20,30,40,50,60,70,80,90 ):
= (|||||||||)|(|||||||)[];


(100,200,300,400,500,600,700,800,900 ):
= (||||||)[|];


(n ):
= [||](||)[||];


, , .
:
= |||;


:
= | | | ;


:
= ;


, :
public = ;


calc.jsgf.


. , , . , , . - 500000 , . , , . , . . - .

ru4sphinx. dict2transcript.pl 2 ( , ).

:

v ay ss imn aa c ay tt
v oo ss i mm
v oo ss i mm dd i ss it
(2) v oo ss i mm ss it
v ay ss i mm s oo t
dv aa
dv aa c ay tt
d vv je
d vv in aa c ay tt
d vv je ss tt i
dd i vv in oo st ay
dd i vv itn aa c ay tt
dd je vv i tt
dd i vv ic oo t
dd je ss i tt
k ay ll ku ll ja t ay r
kam pp j ju tt ir
mm ii nus
n aa
n oo ll
a dd ii n
a dd ii n ay c ay tt
adn aa
oo k
a kk je j
p ll ju s
pp itn aa c ay tt
pp ja tt
pp i tt dd i ss ja t
(2) pp i ss ja t
pp ic oo t
r ay z dd i ll ii tt
ss imn aa c ay tt
ss je mm
ss je mm dd i ss it
(2) ss je mm ss it
ss i mm s oo t
s oo r ay k
(2) sar oo k
st oo
t rr ii
t rr ii c ay tt
t rr in aa c ay tt
t rr ii st ay
t yy ss i ch
t yy ss i ch i
(2) t yy s ay ch i
(3) t yy sch i
t yy ss i ch i
(2) t yy sch i
umn oo zh y tt
ch it yy rr i
ch it yy rr ist ay
ch it yy rn ay c ay tt
sh ysn aa c ay tt
sh oo ss tt
(2) sh ee ss tt
sh y ss tt dd i ss ja t
(2) sh yz dd i ss ja t
(3) sh y ss ja t
sh ys oo t
(2) sh ys oo t

.


, pocketsphinx. Pocketsphinx_continuous , :

-hmm < >. , zero_ru_cont_8k_v3/zero_ru.cd_cont_4000 . -dict < > -jsgf < > -lm < > -logfn < >. stdout. -infile < >. . -inmic <yes|no>. . -remove_noise <yes|no>. . yes.
pocketsphinx_continuous -hmm zero_ru.cd_cont_4000 -dict calc_lang/vocabular.dict -jsgf calc_lang/calc.jsgf -inmic yes


= (|)(|);


:
= (|||||||||);


( 10 19, 20,30,40,50,60,70,80,90 ):
= (|||||||||)|(|||||||)[];


(100,200,300,400,500,600,700,800,900 ):
= (||||||)[|];


(n ):
= [||](||)[||];


, , .
:
= |||;


:
= | | | ;


:
= ;


, :
public = ;


calc.jsgf.


. , , . , , . - 500000 , . , , . , . . - .

ru4sphinx. dict2transcript.pl 2 ( , ).

:

v ay ss imn aa c ay tt
v oo ss i mm
v oo ss i mm dd i ss it
(2) v oo ss i mm ss it
v ay ss i mm s oo t
dv aa
dv aa c ay tt
d vv je
d vv in aa c ay tt
d vv je ss tt i
dd i vv in oo st ay
dd i vv itn aa c ay tt
dd je vv i tt
dd i vv ic oo t
dd je ss i tt
k ay ll ku ll ja t ay r
kam pp j ju tt ir
mm ii nus
n aa
n oo ll
a dd ii n
a dd ii n ay c ay tt
adn aa
oo k
a kk je j
p ll ju s
pp itn aa c ay tt
pp ja tt
pp i tt dd i ss ja t
(2) pp i ss ja t
pp ic oo t
r ay z dd i ll ii tt
ss imn aa c ay tt
ss je mm
ss je mm dd i ss it
(2) ss je mm ss it
ss i mm s oo t
s oo r ay k
(2) sar oo k
st oo
t rr ii
t rr ii c ay tt
t rr in aa c ay tt
t rr ii st ay
t yy ss i ch
t yy ss i ch i
(2) t yy s ay ch i
(3) t yy sch i
t yy ss i ch i
(2) t yy sch i
umn oo zh y tt
ch it yy rr i
ch it yy rr ist ay
ch it yy rn ay c ay tt
sh ysn aa c ay tt
sh oo ss tt
(2) sh ee ss tt
sh y ss tt dd i ss ja t
(2) sh yz dd i ss ja t
(3) sh y ss ja t
sh ys oo t
(2) sh ys oo t

.


, pocketsphinx. Pocketsphinx_continuous , :

-hmm < >. , zero_ru_cont_8k_v3/zero_ru.cd_cont_4000 . -dict < > -jsgf < > -lm < > -logfn < >. stdout. -infile < >. . -inmic <yes|no>. . -remove_noise <yes|no>. . yes.
pocketsphinx_continuous -hmm zero_ru.cd_cont_4000 -dict calc_lang/vocabular.dict -jsgf calc_lang/calc.jsgf -inmic yes


= (|)(|);


:
= (|||||||||);


( 10 19, 20,30,40,50,60,70,80,90 ):
= (|||||||||)|(|||||||)[];


(100,200,300,400,500,600,700,800,900 ):
= (||||||)[|];


(n ):
= [||](||)[||];


, , .
:
= |||;


:
= | | | ;


:
= ;


, :
public = ;


calc.jsgf.


. , , . , , . - 500000 , . , , . , . . - .

ru4sphinx. dict2transcript.pl 2 ( , ).

:

v ay ss imn aa c ay tt
v oo ss i mm
v oo ss i mm dd i ss it
(2) v oo ss i mm ss it
v ay ss i mm s oo t
dv aa
dv aa c ay tt
d vv je
d vv in aa c ay tt
d vv je ss tt i
dd i vv in oo st ay
dd i vv itn aa c ay tt
dd je vv i tt
dd i vv ic oo t
dd je ss i tt
k ay ll ku ll ja t ay r
kam pp j ju tt ir
mm ii nus
n aa
n oo ll
a dd ii n
a dd ii n ay c ay tt
adn aa
oo k
a kk je j
p ll ju s
pp itn aa c ay tt
pp ja tt
pp i tt dd i ss ja t
(2) pp i ss ja t
pp ic oo t
r ay z dd i ll ii tt
ss imn aa c ay tt
ss je mm
ss je mm dd i ss it
(2) ss je mm ss it
ss i mm s oo t
s oo r ay k
(2) sar oo k
st oo
t rr ii
t rr ii c ay tt
t rr in aa c ay tt
t rr ii st ay
t yy ss i ch
t yy ss i ch i
(2) t yy s ay ch i
(3) t yy sch i
t yy ss i ch i
(2) t yy sch i
umn oo zh y tt
ch it yy rr i
ch it yy rr ist ay
ch it yy rn ay c ay tt
sh ysn aa c ay tt
sh oo ss tt
(2) sh ee ss tt
sh y ss tt dd i ss ja t
(2) sh yz dd i ss ja t
(3) sh y ss ja t
sh ys oo t
(2) sh ys oo t

.


, pocketsphinx. Pocketsphinx_continuous , :

-hmm < >. , zero_ru_cont_8k_v3/zero_ru.cd_cont_4000 . -dict < > -jsgf < > -lm < > -logfn < >. stdout. -infile < >. . -inmic <yes|no>. . -remove_noise <yes|no>. . yes.
pocketsphinx_continuous -hmm zero_ru.cd_cont_4000 -dict calc_lang/vocabular.dict -jsgf calc_lang/calc.jsgf -inmic yes


= (|)(|);


:
= (|||||||||);


( 10 19, 20,30,40,50,60,70,80,90 ):
= (|||||||||)|(|||||||)[];


(100,200,300,400,500,600,700,800,900 ):
= (||||||)[|];


(n ):
= [||](||)[||];


, , .
:
= |||;


:
= | | | ;


:
= ;


, :
public = ;


calc.jsgf.


. , , . , , . - 500000 , . , , . , . . - .

ru4sphinx. dict2transcript.pl 2 ( , ).

:

v ay ss imn aa c ay tt
v oo ss i mm
v oo ss i mm dd i ss it
(2) v oo ss i mm ss it
v ay ss i mm s oo t
dv aa
dv aa c ay tt
d vv je
d vv in aa c ay tt
d vv je ss tt i
dd i vv in oo st ay
dd i vv itn aa c ay tt
dd je vv i tt
dd i vv ic oo t
dd je ss i tt
k ay ll ku ll ja t ay r
kam pp j ju tt ir
mm ii nus
n aa
n oo ll
a dd ii n
a dd ii n ay c ay tt
adn aa
oo k
a kk je j
p ll ju s
pp itn aa c ay tt
pp ja tt
pp i tt dd i ss ja t
(2) pp i ss ja t
pp ic oo t
r ay z dd i ll ii tt
ss imn aa c ay tt
ss je mm
ss je mm dd i ss it
(2) ss je mm ss it
ss i mm s oo t
s oo r ay k
(2) sar oo k
st oo
t rr ii
t rr ii c ay tt
t rr in aa c ay tt
t rr ii st ay
t yy ss i ch
t yy ss i ch i
(2) t yy s ay ch i
(3) t yy sch i
t yy ss i ch i
(2) t yy sch i
umn oo zh y tt
ch it yy rr i
ch it yy rr ist ay
ch it yy rn ay c ay tt
sh ysn aa c ay tt
sh oo ss tt
(2) sh ee ss tt
sh y ss tt dd i ss ja t
(2) sh yz dd i ss ja t
(3) sh y ss ja t
sh ys oo t
(2) sh ys oo t

.


, pocketsphinx. Pocketsphinx_continuous , :

-hmm < >. , zero_ru_cont_8k_v3/zero_ru.cd_cont_4000 . -dict < > -jsgf < > -lm < > -logfn < >. stdout. -infile < >. . -inmic <yes|no>. . -remove_noise <yes|no>. . yes.
pocketsphinx_continuous -hmm zero_ru.cd_cont_4000 -dict calc_lang/vocabular.dict -jsgf calc_lang/calc.jsgf -inmic yes


= (|)(|);


:
= (|||||||||);


( 10 19, 20,30,40,50,60,70,80,90 ):
= (|||||||||)|(|||||||)[];


(100,200,300,400,500,600,700,800,900 ):
= (||||||)[|];


(n ):
= [||](||)[||];


, , .
:
= |||;


:
= | | | ;


:
= ;


, :
public = ;


calc.jsgf.


. , , . , , . - 500000 , . , , . , . . - .

ru4sphinx. dict2transcript.pl 2 ( , ).

:

v ay ss imn aa c ay tt
v oo ss i mm
v oo ss i mm dd i ss it
(2) v oo ss i mm ss it
v ay ss i mm s oo t
dv aa
dv aa c ay tt
d vv je
d vv in aa c ay tt
d vv je ss tt i
dd i vv in oo st ay
dd i vv itn aa c ay tt
dd je vv i tt
dd i vv ic oo t
dd je ss i tt
k ay ll ku ll ja t ay r
kam pp j ju tt ir
mm ii nus
n aa
n oo ll
a dd ii n
a dd ii n ay c ay tt
adn aa
oo k
a kk je j
p ll ju s
pp itn aa c ay tt
pp ja tt
pp i tt dd i ss ja t
(2) pp i ss ja t
pp ic oo t
r ay z dd i ll ii tt
ss imn aa c ay tt
ss je mm
ss je mm dd i ss it
(2) ss je mm ss it
ss i mm s oo t
s oo r ay k
(2) sar oo k
st oo
t rr ii
t rr ii c ay tt
t rr in aa c ay tt
t rr ii st ay
t yy ss i ch
t yy ss i ch i
(2) t yy s ay ch i
(3) t yy sch i
t yy ss i ch i
(2) t yy sch i
umn oo zh y tt
ch it yy rr i
ch it yy rr ist ay
ch it yy rn ay c ay tt
sh ysn aa c ay tt
sh oo ss tt
(2) sh ee ss tt
sh y ss tt dd i ss ja t
(2) sh yz dd i ss ja t
(3) sh y ss ja t
sh ys oo t
(2) sh ys oo t

.


, pocketsphinx. Pocketsphinx_continuous , :

-hmm < >. , zero_ru_cont_8k_v3/zero_ru.cd_cont_4000 . -dict < > -jsgf < > -lm < > -logfn < >. stdout. -infile < >. . -inmic <yes|no>. . -remove_noise <yes|no>. . yes.
pocketsphinx_continuous -hmm zero_ru.cd_cont_4000 -dict calc_lang/vocabular.dict -jsgf calc_lang/calc.jsgf -inmic yes


Source: https://habr.com/ru/post/267539/


All Articles