SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Sphinx ⇔ Voxforge Pt-Br
Treinando um modelo acústico para o toolkit
CMU Sphinx com o corpus de fala Voxforge
O que precisamos para treinar?
● Arquivos de áudio
○ e suas respectivas transcrições
○ Arquivos .raw, .sph, .wav
○ <s> amanhã chove forte </s>
● Dicionário fonético
○ e um alfabeto fonético
○ mapeamento palavra ⇔ sequência de fonemas
● Modelo Linguístico
○ necessário para a avaliação do modelo
CMU Sphinx Toolkit
● Pocketsphinx
○ reconhecedor leve (em C)
● Sphinxbase
○ biblioteca de suporte ao Pocketsphinx
● Sphinx4
○ reconhecedor flexível e customizável (em Java)
● Sphinxtrain
○ ferramenta de treinamento de modelo acústicos
● Sphinx3
○ reconhecedor desatualizado (em C)
● CMUclmtk
○ toolkit para o treinamento do modelo linguístico
Pré-requisitos...
● Perl
○ ActivePerl no Windows
○ Linux
~$ sudo apt-get install perl (debian-based)
~$ sudo yum install perl (RPM repo-based)
● Python
○ ActivePython no Windows
○ Linux
~$ sudo apt-get install python (debian-based)
~$ sudo yum install python (RPM repo-based)
Agora vamos instalar...
● baixe os pacotes .tar.gz …
○ sphinxbase-0.8
○ pocketsphinx-0.8
○ sphinxtrain-1.0.8
● extrair os pacotes e entrar no diretório…
~$ tar -zxf <pacote-x.x>
~$ cd <pacote-x.x>/
● executar os comandos...
~$ ./autogen.sh
~$ ./configure
~$ make
~$ make install
Variáveis de ambiente...
export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
Estrutura das pastas
❏ etc
❏ nome_db.dic
❏ nome_db.phone
❏ nome_db.lm.DMP
❏ nome_db.filler
❏ nome_db_train.fileids
❏ nome_db_train.transcription
❏ nome_db_test.fileids
❏ nome_db_test.transcription
❏ wav
❏ speaker_1
❏ file_1.wav
❏ speaker_2
❏ file_2.wav
Voxforge
● Repository voxforge Pt - 16kHz, 16bit
● Pacotes .tgz para cada locutor
○ etc
■ prompts
○ wav
■ arquivos .wav
Preparando os diretórios...
● baixar e executar scripts
~$ git clone https://github.
com/gabrielaraujof/voxforge2sphinxPtBr.git scripts
~$ chmod +x scripts/setupam.py
~$ ./scripts/setupam.py -s <base extraida> voxforge
● Copiar os arquivos (disponível aqui)
○ voxforge.dic (**converter para iso-8859-1)
○ voxforge.phone
○ voxforge.filler
● Converter e copiar o modelo linguístico
○ voxforge.lm.DMP (formato ARPA aqui)
Configurar Sphinxtrain...
● De dentro da pasta configurada, executar…
~$ sphinxtrain -t <nome do modelo> setup
● Editar parâmetros de treinamento…
○ arquivo etc/sphinx_train.cfg
$CFG_HMM_TYPE
$CFG_INITIAL_NUM_DENSITIES
$CFG_FINAL_NUM_DENSITIES
$CFG_N_TIED_STATES
● Executar o trainamento...
~$ sphinxtrain run
Logs do treinamento...
● Arquivo <nome da base>.html
○ links para os logs de cada fase do treinamento
○ indicações de erros
○ resultado da avaliação do modelo
Resumindo...
● Executar
~$ ./scripts/setupam.py -s <base raw> <modelo>
● Copiar restante dos arquivos
● Executar
~$ sphinx_train setup <modelo>
● modificar parâmetros
● Executar
~$ sphinx_train run
Observações
● Locutores incompatíveis
○ áudios e transcrições em inglês
● Palavras fora do dicionário
○ quinta-feira
○ fim-de-semana
Resultados
Modelo acústico Sphinx
Referência
● http://cmusphinx.sourceforge.
net/wiki/tutorialam
Dúvidas e contato
E-mail: gabrielfa@dcomp.ufs.br

Mais conteúdo relacionado

Mais procurados

Lua em transmissões ao vivo
Lua em transmissões ao vivoLua em transmissões ao vivo
Lua em transmissões ao vivoLeandro Moreira
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linuxguilhermeoki
 
Apostila de comandos linux resumidos (universidade católica de brasília)
Apostila de comandos linux   resumidos (universidade católica de brasília)Apostila de comandos linux   resumidos (universidade católica de brasília)
Apostila de comandos linux resumidos (universidade católica de brasília)SENAC RIO
 
Python e Linux para a criação de ferramentas para pentest
Python e Linux para a criação de ferramentas para pentestPython e Linux para a criação de ferramentas para pentest
Python e Linux para a criação de ferramentas para pentestEdson Celio
 
InterCon 2016 - Software as a service usando Go como principal linguagem: os ...
InterCon 2016 - Software as a service usando Go como principal linguagem: os ...InterCon 2016 - Software as a service usando Go como principal linguagem: os ...
InterCon 2016 - Software as a service usando Go como principal linguagem: os ...iMasters
 
Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)Cesar Augusto
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de ProgramasFrederico Madeira
 
Python 3 + apache hadoop
Python 3 + apache hadoopPython 3 + apache hadoop
Python 3 + apache hadoopEduardo Mendes
 
Cap1 exercicios comandos linux resolucao part i
Cap1 exercicios comandos linux   resolucao part iCap1 exercicios comandos linux   resolucao part i
Cap1 exercicios comandos linux resolucao part iportal_Do_estudante
 
Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandosAndreiaOliveira94
 
Todo o conhecimento da humanidade na palma de uma mão
Todo o conhecimento da humanidade na palma de uma mãoTodo o conhecimento da humanidade na palma de uma mão
Todo o conhecimento da humanidade na palma de uma mãoMárcio Ramos
 
Ficha de trabalho_so_6_m4_-_linux_comandos
Ficha de trabalho_so_6_m4_-_linux_comandosFicha de trabalho_so_6_m4_-_linux_comandos
Ficha de trabalho_so_6_m4_-_linux_comandosomaildoruifilipe
 
Lab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantLab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantPedro Fernandes Vieira
 
Personalizando o ambiente do usuário
Personalizando o ambiente do usuárioPersonalizando o ambiente do usuário
Personalizando o ambiente do usuárioIvani Nascimento
 

Mais procurados (20)

Lua em transmissões ao vivo
Lua em transmissões ao vivoLua em transmissões ao vivo
Lua em transmissões ao vivo
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linux
 
Shell Scipt - Comandos
Shell Scipt - ComandosShell Scipt - Comandos
Shell Scipt - Comandos
 
Apostila de comandos linux resumidos (universidade católica de brasília)
Apostila de comandos linux   resumidos (universidade católica de brasília)Apostila de comandos linux   resumidos (universidade católica de brasília)
Apostila de comandos linux resumidos (universidade católica de brasília)
 
Python e Linux para a criação de ferramentas para pentest
Python e Linux para a criação de ferramentas para pentestPython e Linux para a criação de ferramentas para pentest
Python e Linux para a criação de ferramentas para pentest
 
InterCon 2016 - Software as a service usando Go como principal linguagem: os ...
InterCon 2016 - Software as a service usando Go como principal linguagem: os ...InterCon 2016 - Software as a service usando Go como principal linguagem: os ...
InterCon 2016 - Software as a service usando Go como principal linguagem: os ...
 
Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)
 
MongoDB
MongoDBMongoDB
MongoDB
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de Programas
 
Python 3 + apache hadoop
Python 3 + apache hadoopPython 3 + apache hadoop
Python 3 + apache hadoop
 
Linux shell
Linux shellLinux shell
Linux shell
 
Soa#cap4.1 gestor de pacotes
Soa#cap4.1   gestor de pacotesSoa#cap4.1   gestor de pacotes
Soa#cap4.1 gestor de pacotes
 
Cap1 exercicios comandos linux resolucao part i
Cap1 exercicios comandos linux   resolucao part iCap1 exercicios comandos linux   resolucao part i
Cap1 exercicios comandos linux resolucao part i
 
Comandos Shell
Comandos ShellComandos Shell
Comandos Shell
 
Ficha de trabalho so 6 m4 linux comandos
Ficha de trabalho so 6 m4   linux comandosFicha de trabalho so 6 m4   linux comandos
Ficha de trabalho so 6 m4 linux comandos
 
Web m
Web mWeb m
Web m
 
Todo o conhecimento da humanidade na palma de uma mão
Todo o conhecimento da humanidade na palma de uma mãoTodo o conhecimento da humanidade na palma de uma mão
Todo o conhecimento da humanidade na palma de uma mão
 
Ficha de trabalho_so_6_m4_-_linux_comandos
Ficha de trabalho_so_6_m4_-_linux_comandosFicha de trabalho_so_6_m4_-_linux_comandos
Ficha de trabalho_so_6_m4_-_linux_comandos
 
Lab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantLab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrant
 
Personalizando o ambiente do usuário
Personalizando o ambiente do usuárioPersonalizando o ambiente do usuário
Personalizando o ambiente do usuário
 

Semelhante a Treinamento com SphinxTrain

Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Leo Amorim
 
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaAdequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaLucas Brasilino
 
Desmistificando o Pinguim
Desmistificando o PinguimDesmistificando o Pinguim
Desmistificando o PinguimDiego Rubin
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Novidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Novidades no OpenBSD 4.3 - Leonardo Menezes VazNovidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Novidades no OpenBSD 4.3 - Leonardo Menezes VazTchelinux
 
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Marlon Willrich
 
Slide minicursocalourosufpa2010
Slide minicursocalourosufpa2010Slide minicursocalourosufpa2010
Slide minicursocalourosufpa2010Diego Damasceno
 
Semana da computacao - Linux Day
Semana da computacao - Linux DaySemana da computacao - Linux Day
Semana da computacao - Linux DayFábio Albuquerque
 
Swift na linha de comando
Swift na linha de comandoSwift na linha de comando
Swift na linha de comandoTales Andrade
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxguest7a481e8
 
Linguagem de Programação
Linguagem de ProgramaçãoLinguagem de Programação
Linguagem de Programaçãomoiplabs
 
Introdução ao Linux - aula 03 e 04
Introdução ao Linux - aula 03 e 04Introdução ao Linux - aula 03 e 04
Introdução ao Linux - aula 03 e 04Renan Aryel
 
Desenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga Neves
Desenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga NevesDesenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga Neves
Desenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga NevesTchelinux
 
Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009
Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009
Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009Marcelo Veiga Neves
 

Semelhante a Treinamento com SphinxTrain (20)

Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1
 
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaAdequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
 
Desmistificando o Pinguim
Desmistificando o PinguimDesmistificando o Pinguim
Desmistificando o Pinguim
 
Slackware Linux
Slackware LinuxSlackware Linux
Slackware Linux
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Novidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Novidades no OpenBSD 4.3 - Leonardo Menezes VazNovidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Novidades no OpenBSD 4.3 - Leonardo Menezes Vaz
 
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
 
Slide minicursocalourosufpa2010
Slide minicursocalourosufpa2010Slide minicursocalourosufpa2010
Slide minicursocalourosufpa2010
 
Minicurso Linux
Minicurso Linux Minicurso Linux
Minicurso Linux
 
Semana da computacao - Linux Day
Semana da computacao - Linux DaySemana da computacao - Linux Day
Semana da computacao - Linux Day
 
Swift na linha de comando
Swift na linha de comandoSwift na linha de comando
Swift na linha de comando
 
Introdução Linux
Introdução LinuxIntrodução Linux
Introdução Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Linguagem de Programação
Linguagem de ProgramaçãoLinguagem de Programação
Linguagem de Programação
 
Linux Ubuntu
Linux   UbuntuLinux   Ubuntu
Linux Ubuntu
 
Introdução ao Linux - aula 03 e 04
Introdução ao Linux - aula 03 e 04Introdução ao Linux - aula 03 e 04
Introdução ao Linux - aula 03 e 04
 
Desenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga Neves
Desenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga NevesDesenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga Neves
Desenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga Neves
 
Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009
Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009
Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009
 

Treinamento com SphinxTrain

  • 1. Sphinx ⇔ Voxforge Pt-Br Treinando um modelo acústico para o toolkit CMU Sphinx com o corpus de fala Voxforge
  • 2. O que precisamos para treinar? ● Arquivos de áudio ○ e suas respectivas transcrições ○ Arquivos .raw, .sph, .wav ○ <s> amanhã chove forte </s> ● Dicionário fonético ○ e um alfabeto fonético ○ mapeamento palavra ⇔ sequência de fonemas ● Modelo Linguístico ○ necessário para a avaliação do modelo
  • 3. CMU Sphinx Toolkit ● Pocketsphinx ○ reconhecedor leve (em C) ● Sphinxbase ○ biblioteca de suporte ao Pocketsphinx ● Sphinx4 ○ reconhecedor flexível e customizável (em Java) ● Sphinxtrain ○ ferramenta de treinamento de modelo acústicos ● Sphinx3 ○ reconhecedor desatualizado (em C) ● CMUclmtk ○ toolkit para o treinamento do modelo linguístico
  • 4. Pré-requisitos... ● Perl ○ ActivePerl no Windows ○ Linux ~$ sudo apt-get install perl (debian-based) ~$ sudo yum install perl (RPM repo-based) ● Python ○ ActivePython no Windows ○ Linux ~$ sudo apt-get install python (debian-based) ~$ sudo yum install python (RPM repo-based)
  • 5. Agora vamos instalar... ● baixe os pacotes .tar.gz … ○ sphinxbase-0.8 ○ pocketsphinx-0.8 ○ sphinxtrain-1.0.8 ● extrair os pacotes e entrar no diretório… ~$ tar -zxf <pacote-x.x> ~$ cd <pacote-x.x>/ ● executar os comandos... ~$ ./autogen.sh ~$ ./configure ~$ make ~$ make install
  • 6. Variáveis de ambiente... export PATH=/usr/local/bin:$PATH export LD_LIBRARY_PATH=/usr/local/lib export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
  • 7. Estrutura das pastas ❏ etc ❏ nome_db.dic ❏ nome_db.phone ❏ nome_db.lm.DMP ❏ nome_db.filler ❏ nome_db_train.fileids ❏ nome_db_train.transcription ❏ nome_db_test.fileids ❏ nome_db_test.transcription ❏ wav ❏ speaker_1 ❏ file_1.wav ❏ speaker_2 ❏ file_2.wav
  • 8. Voxforge ● Repository voxforge Pt - 16kHz, 16bit ● Pacotes .tgz para cada locutor ○ etc ■ prompts ○ wav ■ arquivos .wav
  • 9. Preparando os diretórios... ● baixar e executar scripts ~$ git clone https://github. com/gabrielaraujof/voxforge2sphinxPtBr.git scripts ~$ chmod +x scripts/setupam.py ~$ ./scripts/setupam.py -s <base extraida> voxforge ● Copiar os arquivos (disponível aqui) ○ voxforge.dic (**converter para iso-8859-1) ○ voxforge.phone ○ voxforge.filler ● Converter e copiar o modelo linguístico ○ voxforge.lm.DMP (formato ARPA aqui)
  • 10. Configurar Sphinxtrain... ● De dentro da pasta configurada, executar… ~$ sphinxtrain -t <nome do modelo> setup ● Editar parâmetros de treinamento… ○ arquivo etc/sphinx_train.cfg $CFG_HMM_TYPE $CFG_INITIAL_NUM_DENSITIES $CFG_FINAL_NUM_DENSITIES $CFG_N_TIED_STATES ● Executar o trainamento... ~$ sphinxtrain run
  • 11. Logs do treinamento... ● Arquivo <nome da base>.html ○ links para os logs de cada fase do treinamento ○ indicações de erros ○ resultado da avaliação do modelo
  • 12. Resumindo... ● Executar ~$ ./scripts/setupam.py -s <base raw> <modelo> ● Copiar restante dos arquivos ● Executar ~$ sphinx_train setup <modelo> ● modificar parâmetros ● Executar ~$ sphinx_train run
  • 13. Observações ● Locutores incompatíveis ○ áudios e transcrições em inglês ● Palavras fora do dicionário ○ quinta-feira ○ fim-de-semana
  • 16. Dúvidas e contato E-mail: gabrielfa@dcomp.ufs.br