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

Treinamento com SphinxTrain

  • 1.
    Sphinx ⇔ VoxforgePt-Br Treinando um modelo acústico para o toolkit CMU Sphinx com o corpus de fala Voxforge
  • 2.
    O que precisamospara 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 ○ ActivePerlno 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... exportPATH=/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 voxforgePt - 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... ● Dedentro 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
  • 14.
  • 15.
  • 16.
    Dúvidas e contato E-mail:gabrielfa@dcomp.ufs.br