Tutorial de instalação do Julius + modelos acústicos do Coruja no Ubuntu x86

1,902 views
Skip to first unread message

Leonardo Domingues

unread,
Mar 6, 2013, 8:58:38 PM3/6/13
to coruja...@googlegroups.com
Olá a todos! 

O motivo deste tutorial é apresentar a forma como instalei o recurso de reconhecimento de voz utilizando a engine do Julius - a partir da sua instalação - e dos modelos acústicos do projeto Coruja (LaPS). A instalação foi realizada no linux, na distribuição Ubuntu 10.04.4 LTS x86 (32bits). 

Meu objetivo foi utilizar o reconhecimento de voz a partir de arquivos de áudio, mais especificamente, partindo de um arquivo de vídeo, extrair seu áudio e passar o mesmo para o reconhecedor de forma que fosse possível obter um arquivo em formato texto de todas as sentenças textuais reconhecidas pela engine. Portanto, seguem os passos que realizei para conseguir este feito:
  • Baixei o Coruja para instalar o Julius que vem junto com ele nesse link: Coruja_Linux.rar;
  • Instalei as seguintes dependências do Julius:
    • Comandos (necessário ser root):
      • ...# aptitude install build-essential zlib1g-dev flex 
      • ...# aptitude install libasound2-dev libesd0-dev libsndfile1-dev
  • Instalei o Julius a partir do diretório julius-4.1.3 da seguinte forma:
  1. Comandos:
    • ..$ ./configure
    • ..$ make clean
    • ..$ make
    • ..$ sudo make install
  2. Check version:
leonardo@leonardo:~/coruja_jlapsapi$ julius -version
JuliusLib rev.4.1.3 (fast)

Engine specification:
 -  Base setup   : fast
 -  Supported LM : DFA, N-gram, Word
 -  Extension    :
 -  Compiled by  : gcc -g -O2

Library configuration: version 4.1.3
 - Audio input
    primary A/D-in driver   : oss (Open Sound System compatible)
    available drivers       : oss
    wavefile formats        : RAW and WAV only
    max. length of an input : 320000 samples, 150 words
 - Language Model
    class N-gram support    : yes
    word id unit            : short (2 bytes)
 - Acoustic Model
    multi-path treatment    : autodetect
 - External library
    file decompression by   : zlib library
 - Process hangling
    fork on adinnet input   : no

Try `-help' for more information.
  • Baixei os modelos acústicos no link: coruja_jlapsapi1.5.rar;
  • Extraí o arquivo (.rar) do passo anterior na home (/home/leonardo)
  1. Conteúdo do diretório após extração:
    • /home/leonardo/coruja_jlapsapi
    • ├── dic.temp
    • ├── julius.jconf
    • ├── LaPSAM1.5.am.bin
    • ├── LaPSAM1.5.tiedlist
    • └── LaPSLM1.5.lm.bin
  • Criei um arquivo (audiolist) para listar os arquivos de áudio em .wav (é necessário que o .wav esteja de acordo com o parâmetro samFreq definido no .jconf e que este tenha apenas um channel, ou seja, mono - com o ffmpeg e sox dá pra fazer isso);
  • Editei o arquivo julius.jconf conforme anexo;
  • Entrei no diretório onde se encontra o julius.jconf e executei o seguinte comando:
    • ..$ julius -C julius.jconf &> out
  • Após um curto período de tempo (cerca de 10s), o terminal devolve o comando, então executo o seguinte comando para obter o resultado filtrado:
    • ..$ cat out | grep sentence1: | sed "sentence1://g"

Pronto! A partir daí, se quiser que a entrada seja por microfone, vc deve entrar no .jconf e comentar (#) os parâmetros:

#-input rawfile
...
#-filelist audiolist 

E retirar o comentário de 

-input mic.

Espero ter ajudado a muitos que, como eu, teve um pouco de dificuldade para obter sucesso!

Lembrando que esse tutorial foi realizado no Ubuntu 10.04.4 LTS (x86). Se alguém conseguiu instalar no Ubuntu (versões mais recentes) x64 (64bits), por favor, avise-nos.

Sucesso a todos!

--
Leonardo de Araújo Domingues
Graduando em Sistemas de Informação - UFPB/Campus IV
Laboratório de Aplicações de Vídeo Digital - LAVID/UFPB
julius.jconf

Oliver Dief

unread,
Mar 12, 2013, 12:25:30 PM3/12/13
to coruja...@googlegroups.com
Leonardo , 
Eu estou fazendo no windows .. com uma .bat  que roda o julius e com os arquivos que vem no coruja1.7_for_speechoo-x86

Mas apresenta o seguinte erro .. rs alguem pode me ajudar ? abração !

Error: ngram_read_bin: cannot handle 4-bytes bingram
Error: ngram_read_bin: please use Julius compiled with --enable-words-int
Error: int_ngram: failed to read "LaPSLM1.7.1.lm.bin"



Leonardo Domingues

unread,
Mar 12, 2013, 1:01:56 PM3/12/13
to coruja...@googlegroups.com
Olá Oliver!

A saída já lhe dá o caminho, veja: 

Error: ngram_read_bin: please use Julius compiled with --enable-words-int

Ou seja, reinstale novamente o julius passando o parâmetro citado, isto é:

$ ./configure --enable-words-int

Em seguida, continue o processo (make, make install).

--
--
FalaBrasil Speech Group - http://www.laps.ufpa.br/falabrasil
Você recebeu esta mensagem porque está inscrito no Grupo "Coruja -
Reconhecimento de Voz em PB" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
coruja...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
coruja-users...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/coruja-users?hl=pt-BR?hl=pt-BR
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Coruja - Reconhecimento de Voz em PB" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para coruja-users...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

Oliver Dief

unread,
Mar 12, 2013, 2:00:42 PM3/12/13
to coruja...@googlegroups.com
Leandro , Muito obrigado ! 
rs
na verdade eu não sabia como fazer isso ... não sou muito bom com esses comandos ... mas é pra isso que a gente estuda , né ? rs
Eu fiz o download do arquivo que vc postou e deu tudo certo . só foi preciso rodar a .bat com o jconf !

Agora só tenho mais 2 coisas ..  o reconhecimento é realmente muito incerto :(  tem como melhorar isso ?  seria possivel reconhecer alguns comandos seguindo de ditado ? 

mas na verdade essa agora é a mais importante :   preciso enviar o retorno mais preciso do julius para o software que estou desenvolvendo em c# ... como fazer isso , amigo ?  abração , cara ... muito obrigado por isso ! 

Pedro Batista

unread,
Mar 12, 2013, 3:03:45 PM3/12/13
to coruja...@googlegroups.com
Oliver talvez o seguinte vídeo ajude: http://www.youtube.com/watch?v=9kyyPjIpLa8


--
Pedro Batista
http://www.laps.ufpa.br/pedro
Estudante de Mestrado em Engenharia Elétrica - UFPA
Pesquisador Laboratório de Processamento de Sinais - UFPA


2013/3/12 Oliver Dief <olive...@gmail.com>

Oliver Dief

unread,
Mar 12, 2013, 4:19:36 PM3/12/13
to coruja...@googlegroups.com

Muito obrigado, Pedro!

..Pessoal, o Pedro me orientou a carregar os arquivos do citados lá encima, no link postado pelo Leonardo:  coruja_jlapsapi1.5.rar;

Com esse link e o jconf enviado por ele também, funcionou perfeitamente como ditado no Windows!

O que fiz foi o seguinte:  Fiz o download dos arquivos do coruja_jlapsapi1.5.rar citado acima. Copiei seus arquivos, que são eles : dic.temp, julius.jconf, LaPSAM1.5.am.bin, LaPSAM1.5.tiedlist e LaPSLM1.5.lm.bin. Na verdade, o jconf, eu substitui pelo enviado em anexo.  Esses arquivos eu adicionei à pasta criada no vídeo, chamada de LaPSAM. .. OBS: não é necessário criar a pasta Gramatica ou carregar seus arquivos .. ok ?

Bem .. corrijam me se estou errado, Pedro ou Leonardo .. rs

Espero ter ajudado um pouco aqueles que estavam com o mesmo problema que eu ..

Na verdade problema que talvez eu mesmo tenha criado rsrs 

Mas ainda tem uma questão ..   é possível concatenar o ditado + os comandos ? rsrsrs xiii rsrs

Aqui segue meu muito obrigado a todos que me ajudaram  ! Vlw !!

Abração !

Pedro Batista

unread,
Mar 12, 2013, 4:28:34 PM3/12/13
to coruja...@googlegroups.com
Oliver é possível porém ainda não esta implementado. Acredito que se você criar duas instâncias distintas pode ter resultados aceitáveis.

romulo.ramos

unread,
Sep 6, 2013, 3:24:25 PM9/6/13
to coruja...@googlegroups.com
Boa tarde,

Consegui, baseado nas instruções aqui passadas, rodar o Julius com o modelo de linguagem em um Linux Ubuntu 10.04 i386. Porém a margem de erro é muito grande. 
Gostaria de saber duas coisas, por favor:
- Tem como eu reduzir essa margem de erro?
- Tem como eu introduzir uma gramática com palavras pré definidas nesse sistema? Algo que limite o dicionário para somente oque eu vá usar.

Tentei deletar palavras do dicionário, mas a aplicação apresenta erro desta forma.

Abraço,
Rômulo Ramos

Pedro Batista

unread,
Sep 17, 2013, 9:19:15 AM9/17/13
to coruja...@googlegroups.com
Olá Romulo, sim é possível melhorar os resultados, basicamente acrescentando dados ao sistema. A melhor referência é o HTKBook.

Para usar palavras especificas pode usar gramáticas do Julius: http://julius.sourceforge.jp/en_index.php?q=en_grammar.html

[]'s

Estudante de Doutorado em Engenharia Elétrica - UFPA

Pesquisador Laboratório de Processamento de Sinais - UFPA


2013/9/6 romulo.ramos <romulo...@gee.inatel.br>

romulo.ramos

unread,
Sep 18, 2013, 1:52:31 PM9/18/13
to coruja...@googlegroups.com
Boa tarde Pedro,

Tudo certo, consegui colocar para rodar e esta funcionando como eu preciso nesta minha primeira fase de projeto.
Muito obrigado!

Abração,
Rômulo Ramos

Victor Costa

unread,
Feb 12, 2015, 4:10:25 PM2/12/15
to coruja...@googlegroups.com
Olá Romulo!

Você poderia dar uma dica de como conseguiu criar o modelo acústico específico para sua aplicação?

Estou tentando fazer isso baseado nos how-to e tutorial da voxforge, no entanto estou tendo alguns problemas...

Consegui criar os modelos com palavras em inglês seguindo esses tutoriais. Mas, quando tento adaptar para o português recebo as seguintes mensagens de erro...

....

 Step 2 - Pronunciation Dictionnary

==============================================================

sorting:./interim_files/wlist to:./interim_files/wlist1

Found voxforge_lexicon

***Please review the following HDMan output***:


WARNING: no script file ./input_files/voxforge_lexicon.ded

Missing Words

-------------

ABACATE

ABUNDANTE

ALISAR

ALISTAR

ALIVIAR

AMESTRADOS

......


...


Step 4 - Creating Transcription Files

==============================================================

writing to mlf file ./interim_files/words.mlf

writing to ./interim_files/words.mlf file done

ERROR [+1232] NumParts: Cannot find word ATIVAR in dictionary

FATAL ERROR - Terminating program HLEd

ERROR [+1232] NumParts: Cannot find word ATIVAR in dictionary

FATAL ERROR - Terminating program HLEd 

ROMULO FRANKLIN DE MEIRA RAMOS

unread,
Feb 13, 2015, 7:38:52 AM2/13/15
to coruja...@googlegroups.com

Bom dia Victor,


Infelizmente não possuo mais esse setup em minha máquina. Acredito que o tenha salvo em algum lugar, mas levaria algum tempo para reconfigura-lo.


De qualquer modo, voltarei a reconfigura-lo em breve e assim que o fizer posso entrar em contato.


Atenciosamente,

Rômulo F. M. Ramos
Bacharel de Engenharia Elétrica com Enfase em Telecomunicações
Inatel 
Instituto Nacional de Telecomunicações
Cel: (35) 8471-9961
E-mail: romulo...@gee.inatel..br
              romulo...@inatel.br
Skype: romulo.ramos.ubatuba

De: coruja...@googlegroups.com <coruja...@googlegroups.com> em nome de Victor Costa <victor.co...@gmail.com>
Enviado: quinta-feira, 12 de fevereiro de 2015 19:10
Para: coruja...@googlegroups.com
Assunto: [Coruja-ASR] Re: Tutorial de instalação do Julius + modelos acústicos do Coruja no Ubuntu x86
 
--
--
FalaBrasil Speech Group - http://www.laps.ufpa.br/falabrasil
Você recebeu esta mensagem porque está inscrito no Grupo "Coruja -
Reconhecimento de Voz em PB" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
coruja...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
coruja-users...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/coruja-users?hl=pt-BR?hl=pt-BR

---
Você recebeu essa mensagem porque está inscrito no grupo "Coruja - Reconhecimento de Voz em PB" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para coruja-users...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Caio Moreno de Souza

unread,
Feb 13, 2015, 7:52:20 AM2/13/15
to coruja...@googlegroups.com
Bom dia Pessoal,

Na quarta-feira um amigo me apresentou o projeto Coruja e achei muito interessante.

Hoje tenho alguns videos e audios internos da empresa que trabalho e gostaria de fazer o seguinte:

1) Transformar o audio em texto para fazer um trabalho de Text Mining

Isso é possível usando o Coruja?

Alguém já fez isso?

Desculpe não conhecer muito do projeto de vocês e ser totalmente novo no grupo.

Resumindo, eu trabalho com BI e gostaria de ser capaz de analisar video e audio para reconhecer padrões, etc.

Alguém do grupo já fez algo assim?

Obrigado,

Caio Moreno de Souza
IT4Biz IT Solutions
Sao Paulo, Brazil
Mobile: +55 11 97321-4010 (TIM)
skype: caiomsouza
twitter: caiomsouza

"We deliver the right BI open source solution for your business and budget."

Nelson Neto

unread,
Dec 16, 2015, 3:12:39 PM12/16/15
to coruja...@googlegroups.com
Hernandes,


Tutorial abaixo.

Alguns vídeos que também podem ajudar:




Abs,

-- Nelson.

---------- Mensagem encaminhada ----------
De: Leonardo Domingues <leonard...@lavid.ufpb.br>
Data: 6 de março de 2013 22:58
Assunto: [Coruja-ASR] Tutorial de instalação do Julius + modelos acústicos do Coruja no Ubuntu x86
Para: coruja...@googlegroups.com


--
--
FalaBrasil Speech Group - http://www.laps.ufpa.br/falabrasil
Você recebeu esta mensagem porque está inscrito no Grupo "Coruja -
Reconhecimento de Voz em PB" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
coruja...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
coruja-users...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/coruja-users?hl=pt-BR?hl=pt-BR
 
---
julius.jconf

Thiago Ferreira de Toledo

unread,
Mar 24, 2016, 8:07:06 AM3/24/16
to Coruja - Reconhecimento de Voz em PB
Olá,

Pessoal, configurei o Coruja conforme o tutorial.

Porém, estou com algumas dúvidas: 

(1) O que é criar o arquivo audiolist? É um diretório onde coloco o arquivo de áudio? Em qual diretório deve ser criado?
(2) Como faço para rodar a aplicação para transcrever o texto do arquivo de áudio? Qual tamanho e duração máxima o Coruja consegue processar?

Abraços,
Thiago 

Thiago Ferreira de Toledo

unread,
Mar 30, 2016, 8:49:50 AM3/30/16
to Coruja - Reconhecimento de Voz em PB
Olá pessoal,

Consegui resolver os meu problemas da seguinte forma:

(1) Criei o arquivo audiolist e nele informei o caminho e o nome do áudio que gostaria que fosse transcrito. Deixei o arquivo de audiolist no diretório do "julius/coruja";
(2) Executei a aplicação com o comando "julius -C julius.jconf &> nomeDoArquivoDeSaida". O limite para a transcrição do arquivo de áudio é de 150 palavras.

Abraços,
Thiago
Reply all
Reply to author
Forward
0 new messages