INATEL - Instituto Nacional de Telecomunicações


INATEL - Instituto Nacional de Telecomunicações - Mestrado em Telecomunicações - Aluno: Ramon Mayor Martins
[Meus passos na pesquisa do Mestrado para Reconhecimento Automatico de Voz]


quarta-feira, 5 de novembro de 2014

Matriz Full Covariance nos experimentos HTK

matriz full covariance, isto envolve utilizar as macros do HTK.
Fiz de 3 maneiras: Usando matriz cov diagonal (macro <diagC> ), usando matriz cov full (macro <fullC>) e usando uma matriz covariância inversa (macro <invCovar>). Ainda tem um metodo chamado - matriz de decomposicao de cholesky (macro <LLTCovar>) que coloquei para rodar agora.

Em anexo os resultados em .txt

Resumo dos resultados:

<diagC> WER% 7.71
<fullC> WER% 7.62
<InvCovar> WER% 25.54%

Estudo do programa GMM do professor Ynoguti (INATEL)

-Estudo do programa GMM do professor Ynoguti [ok]
-Adequação dos .mfc extraídos no HTK para o programa GMM [ok]
-Definição do experimento [ok]
-Inicio da simulação para encontrar o alpha ótimo para cada locutor

Preparação SCRIPT para busca do alpha ótimo

-Somente utilizarei o HCopy (Faz a extração de características seguindo o alpha determinado), HParse(Constroi uma rede de palavras), HVite(Faz o reconhecimento e entrega a máxima verossimilhança) no HTK
-Preparei o script para fazer a busca de 13 alphas em cada locutor
-Utilizei alphas de 0.88 até 1.12
-Serão 50 locutores (25 boys e 25 girls)
-Preparei o dicionário de palavras, para o HVite fazer o reconhecimento de uma palavra conhecida já.
-Utilizo o HMM (hmmdefs) q foi encontrado na baseline

18/10 [funcionando ok]

Método busca alpha ótimo utilizado por Raquel (INATEL)

[Passos utilizados pela Raquel]

1- Escolha do Alpha ótimo
  • -Faz para todos locutores uma varredura do seu melhor alpha (o melhor alpha é aquele que obtiver a máxima verossimilhança P(O|L) na varredura dos alphas).
  • -L será o HMM pré-treinado anteriormente para a baseline.
  • -Para cada locutor será buscado dentro de uma faixa de alphas de 0.88 até 1.12 (se , se tratar de adultos), andando de 0.02 em 0.02.
  • -Raquel percebeu que o número de locuções não influencia na escolha do alpha
  • -Raquel utilizou 4 locuções por locutor
2- Guarda do .mfc
  • Uma vez obtido os melhores alphas, os locutores com o respectivo alpha, guardar-se-á os .mfc
3- Treino e Teste Final
  • Faz um treino e teste completo utilizando esses .mfc

4- Baseline comparada com KTH

 A Baseline utilizada será a seguinte (comparada com os resultados do KTH)

-ExpB4 Adult Child(2reest,-p100,-t3000,32mix,trifones)
[WER achado 5.11% vs KTH 3.17%]

 -ExpB8 Male Child(2reest,-p100,-t3000,32mix,trifones)
[WER achado 38.58% vs KTH 46.73%]

-ExpB12 Female Child(2reest,-p60,-t3000,32mix,trifones)
[WER achado 3.47% vs KTH não fez esse experimento]

3- Comparação com Mats Blomberg KTH Suécia - FONETIK 2011

[Testes realizados entre 08/10 ~ 11/10]

-Melhor penalty encontrado -p100 [será usado na baseline]
-Refinado os treinos com adultos e testes com crianças [será a baseline]

 -ExpB1 Adult Adult (2reest,-p 60,-t 3000,32mix,trifones)
[WER achado 0.64% vs KTH 0.55%]

-ExpB2 Adult Male (2reest,-p 60,-t 3000,32mix,trifones)
[WER achado 0.8% vs KTH 0.76%]

-ExpB3 Adult Female(2reest,-p60,-t 3000,32mix,trifones)
[WER achado 0.48% vs KTH 0.35%]

-ExpB4 Adult Child(2reest,-p60,-t3000,32mix,trifones)
[WER achado 5.44% vs KTH 3.17%]
-ExpB4 Adult Child(2reest,-p100,-t3000,32mix,trifones)
[WER achado 5.11% vs KTH 3.17%]

-ExpB1 Male Adult (2reest,-p 60,-t 3000,32mix,trifones)
[WER achado 9.64% vs KTH 6.44%]
 ExpB1 Male Adult (2reest,-p 100,-t 3000,32mix,trifones)
[WER achado 9.38% vs KTH 6.44%]

-ExpB2 Male Male (2reest,-p 60,-t 3000,32mix,trifones)
[WER achado 0.94% vs KTH 0.58%]

-ExpB3 Male Female(2reest,-p60,-t 3000,32mix,trifones)
[WER achado 18.17% vs KTH 12.19%]
ExpB3 Male Female(2reest,-p90,-t 3000,32mix,trifones)
[WER achado 17.53% vs KTH 12.19%]

-ExpB4 Male Child(2reest,-p60,-t3000,32mix,trifones)
[WER achado 39.74% vs KTH 46.73%]
-ExpB4 Male Child(2reest,-p100,-t3000,32mix,trifones)
[WER achado 38.58% vs KTH 46.73%]

-ExpB1 Female Adult (2reest,-p 60,-t 3000,32mix,trifones)
[WER achado 6.16% vs KTH não fez esse experimento]

-ExpB2 Female Male (2reest,-p 60,-t 3000,32mix,trifones)
[WER achado 12.05% vs KTH não fez esse experimento]

-ExpB3 Female Female(2reest,-p60,-t 3000,32mix,trifones)
[WER achado 0.38% vs KTH não fez esse experimento]

-ExpB4 Female Child(2reest,-p60,-t3000,32mix,trifones)
[WER achado 4.17% vs KTH não fez esse experimento]
-ExpB4 Female Child(2reest,-p60,-t3000,32mix,trifones)
[WER achado 3.47% vs KTH não fez esse experimento]

2- Comparação com Mats Blomber KTH Suécia - FONETIK 2011

[Refinamento do Sistema HTK]
Experimento Treino Adulto - Teste Adulto
KTH 0.55% x default  0.64%

04/10/13:
-Melhores penaltys insertion error [Melhor encontrado entre -p 60 e -p 80]
-Usando reestimação só no 8mix em (3 e 4) para melhorar 16 e 32 [piorou com 3, não funcionou com 4]
-Testar com meu proto e o melhor caso de penalty [melhorou]
-Teste de 32mix vindo logo depois de 2mix [piorou]
-Aumentei 1 reestimação a mais no 1mix [piorou]

05/10/13:
-Tirei uma reestimação do 1mix, mantive o melhor penalty encontrado [obtive o mesmo resultado, mas reduz um processo da carga computacional]
-Tirei 2 reestimações do 1mix [não funcionou]
-Voltei com meus configs [melhorou 0.01]
-Testei o prunning -t do HERest [com -t 250.0 deu 99.28%, com -t 600.0 deu 99.32%, com -t 3000 deu 99.34%]
-Testei o prunning -t do HVite [-t 250.0 e -t 600 , não mudou]
-Treinei com as config do KTH e testei com config default [piorou]
-Testei para ver se dava certo colocar no HERest -p -60.0 e ao mesmo tempo -p 10.0 [piorou]

06/10/13:
-Testando com 64mix [piorou]
-Testando com -t 3000 no HERest [melhorou 99.36%]

07/10/13:
Teste de prunning
-Testando HERest com -t 10000.0 150.0 1000 [nada mudou]
-Testando HERest com -t 3000.0 150.0 10000.0 [nada mudou]
-Testando HERest com -t 3000.0 10000.0 10000.0 [nada mudou]


1- Comparação com Mats Blomberg KTH Suécia - FONETIC 2011

Comparação de Resultados com o artigo de Mats Blomberg da KTH Suécia, apresentado na FONETIK 2011

[Model space size scaling for speaker adaptation - Mats Blomberg - Speech, Music and Hearing, KTH/CSC, Stockholm- 2011 ]
http://www.speech.kth.se/prod/publications/files/3597.pdf

-Sistema replicado [ok]

Métodos para achar o alpha ótimo

-Estudando os métodos para achar o alpha otimo:


The main objective of VTLN is to find an optimal warping factor to warp the
frequency axis of the speech signal so that variations in formant frequencies of speakers enunciating
the same sound is reduced. [Umesh - Indian Academy of Sciences,2011]

Scripts corrigidos e experimentos em andamento:

-Scripts corrigidos e upados no Google Code;
-30 experimentos usando Monofones, planilha no Google Docs ;
-Experimentos usando Trifones e Tied-State rodando;
-Estudando artigo:
[[D.R Sanand, S.Umesh , VTLN Using Analytically Determined Linear-Transformation on Conventional MFCC , IEEE 2012]

Resolvido problema com Tied State

Resolvido o problema do Tied-State
Funcionando perfeitamente!

Solução do problema: Editei um arquivo de configuração carregando esses 2 parametros e uso no HVite.

pag 43 do htkbook
The required form of word-internal network expansion can be
forced by setting the configuration variable 
FORCECXTEXP to true and ALLOWXWRDEXP to false.

[lecture5.pdf - Hasegawa e Borys - UIUC]
Your performance may still not be wonderful, but it should be better than you obtained without parameter tying.

Ajustes no Script Triphone e Tied State

  • Testes com Triphones e Short Pause. Funcionando perfeitamente!
  • Vários ajustes no script_HTK
  • testando Tied-State

Create Short Pause e Fixing Silent Models

Resolvendo o problema do "sp" nos hmmdefs
Incluindo esse detalhe no script_HTK que usa triphones.

http://www.ee.columbia.edu/ln/rosa/doc/HTKBook21/node29.html

http://www.voxforge.org/home/dev/acousticmodels/linux/create/htkjulius/tutorial/monophones/step-7


rotinas shell:
cat hmmdefs | sed -n '497,590p' >> hmmdefs2

ou

awk 'NR>=497 && NR<=590' hmmdefs >> hmmdefs2

Bases em 11 e 16 kHz

Gerado as bases em 11 e 16 kHz para testes posteriores

Protótipo para 3, 8 e 12 estados

Criado arquivo "proto" para usar 3, 8 e 12 estados:

.hed para 8 16 e 32 gaussianas na mistura

Criado os arquivos .hed para 8, 16 e 32 misturas.
Treino e teste com Adultos.

Programa C para .mlf

Criei um programa em C para gerar o .mlf com as transcrições de teste e treino de CHILDRENS (boys e girls) no TIDIGITS.
Agora farei treinos e testes com CHILDRENS.

Próximos experimentos

!!!Treinar com Male e Testar com Children [COM VTLN
[VTLN Using Analytically Determined Linear-Transformation on Conventional MFCC - D. R. Sanand and S. Umesh - IEEE 2012]
http://ieeexplore.ieee.org

Treinar com 8/11/16KHz e Testar com 8/11/16 KHz
[Speech Recognition at Multiple Sampling Rates - Hirsch,Dobler -Ericsson Eurolab Deutschland - Eurospeech 2001]
http://dnt.kr.hsnr.de/papers/eurospeech01.pdf

Treinar com Male/Woman/Children e Testar com Male/Woman/Children
[Acoustic-Phonetic Speech Parameter for Speaker-Independent Speech Recognition -Deshmukh,Wilson,Juneja - University of Maryland, Department of Electrical ]
http://terpconnect.umd.edu/~juneja/icassp_digits.pdf

Treinar com 1/2/4/8/16/32 mix gaussian
[Approximate Test Risk Bound Minimization Through Soft Margin Estimation - Li,Yuan,Lee IEEE, 2007]
http://www2.isye.gatech.edu/~myuan/papers/sme.final.pdf

Treinar com diferentes conjuntos de locutores Male/Woman/Children [COM VTLN]
[Model space size scaling for speaker adaptation - Mats Blomberg - Speech, Music and Hearing, KTH/CSC, Stockholm- 2011 ]
http://www.speech.kth.se/prod/publications/files/3597.pdf

Estudo VTLN

Filter Bank Analysis
http://www.ee.columbia.edu/ln/rosa/doc/HTKBook21/node54.html

VTLN
http://www1.icsi.berkeley.edu/Speech/docs/HTKBook/node61_mn.html

Warp Factor for VTLN

Warp Factor for VTLN

Implementation of Vocal Tract Length Normalization A Study of Methods
http://ssli.ee.washington.edu/people/bwidmer/VTL_Talk/VTL_Talk.PDF


On Extending VTLN to Phoneme-specific Warping in Automatic Speech Recognition
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.148.5074&rep=rep1&type=pdf

Repositório Google Code

Criei um repositorio no Google Code (htk-inatel) para guardar scripts , arquivos fixos e de configuração do HTK, documentos e resultados:

Link: http://code.google.com/p/htk-inatel/

Estudo

Revisão e resumo dos 3 Problemas Controle do HMM

Ref: http://www.inf.pucrs.br/peg/pub/tr/TI1_Luciana.pdf