Utilização Sphinx3
-
Upload
dunfrey-aragao -
Category
Documents
-
view
9 -
download
0
description
Transcript of Utilização Sphinx3
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
Instalando,configurandoeexecutando
Sphinx3eSphinxTrain.
OsistemautilizadoseroSphinx,projetadonaUniversidadeCarnegieMellom.OSOutilizadoparataltutorialoLINUXDEBIAN.
UmsistemabaseadoemHMM(ModelosOcultosdeMarkov),comotodososoutrossistemasdereconhecimentodevoz,aprimeiracoisaaserfeitaensinaloascaractersticas(ou parmetros) de um conjunto de unidades de som, e em seguida, usando o queaprendeusobreasunidadesensinadas,encontraraseqnciamaisprovveldeunidadesdesompara umdeterminadosinal de voz. Oprocesso de aprender os rtulos do somchamadotreinamento.Oprocessodeutilizaroconhecimentoadquiridoparadeduzirasequnciamaisprovveldeunidadesdeumdeterminadosinalchamadodecodificao,ousimplesmentereconhecimento.
Sendoassim,vocvaiprecisardestescomponentesdosistemaSPHINXparapoderusar na formaoeparaoreconhecimentodaspalavras. Emoutras palavras, voc vaiprecisardaSPHINXtraineredoSPHINXdecoder.
Voc receber instruessobrecomobaixar, compilareexecutaroscomponentesnecessriosparaconstruirumsistemacompletodereconhecimentodevoz.Ouseja,vocreceberinstruessobrecomousarSphinxTraineSPHINX3.
Componentesfornecidosparaotreinamento
OSPHINXtrainerconsisteemumconjuntodeprogramas,cadaumresponsvelporuma tarefa bemdefinida, e umconjunto de scripts que organiza a ordememque osprogramassochamados.
Otraineraprendeosparmetrosdosmodelosdossonsusandoumconjuntodesinaisdevozcomoamostra.Istochamadodebancodedadosdetreinamento.Aescolhadebasesdedadosdetreinamentotambmserfornecidoavoc.Otrainertambmprecisadainformaosobreosparametrosdasunidadesdesomquevocqueraprender,epelomenosa seqncia em que eles ocorrem em cada sinal de voz no seu banco de dados detreinamento.Esta informao fornecidaaotreinadoratravsdeumarquivochamadotranscriptfile,emqueasequnciadepalavraseossonssemvozsoescritosexatamentecomoocorreuemumsinaldevoz,seguidoporummarcadorquepodeserutilizadoparaassociarestasequnciacomosinaldevozcorrespondente.
O trainer,emseguida,olhaparaumdicionrioquemapeiacadapalavradeumaseqnciadeunidadesdesom,paraobteraseqnciadeunidadesdesonsassociadosacadasinal.Assim,almdossinaisdevoz,tambmserdadoumconjuntodetranscritosparaobancodedados(emumnicoarquivo)edoisdicionrios,umemquepalavraslegtimasnalnguasoseqnciasdeunidadesdesom eoutroemqueossilenciossomapeadosparacorrespondentesunidadesdesomdefalaesilencio.
Vamosnos referir aoprimeirocomoodicionrio do idioma(ou linguistico)e osegundocomoodicionriodepreenchimento.
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
Emresumo,oscomponentesfornecidosavocparaotreinamentosero:
1.Ocdigofontedotrainer2.Ossinaisacsticos3.Oarquivotranscritocorrespondente4.Umdicionriolinguistico5.Umdicionriodepreenchimento
Componentesfornecidosparadecodificao
Odecodificadortambm compostopor umconjuntodeprogramas, queforamcompiladosparadarumnicoexecutvel queir executaratarefadereconhecimento,dadasasentradascertas.Asentradasqueprecisamserdadasso:osmodelosacsticostreinados,umarquivocomondicedosmodelos,ummodelolinguistico,umdicionriodelngua, umdicionrio depreenchimento, bemcomooconjuntodesinaisacsticos queprecisamserreconhecidos.Osdadosaseremreconhecidossocomumentereferidocomodadosdeteste.
Emresumo,oscomponentesfornecidosavocparadecodificaosero:
1.Ocdigofontedodecodificador2.Odicionriolinguistico3.Odicionrioenchimento4.Omodelodelinguagem5.Osdadosdeteste
Almdessescomponentes,voc vaiprecisardosmodelosacsticosquevoc temtreinado para o reconhecimento. Voc ter que fornecer estes para o decodificador.Enquantovoc treinarosmodelosacsticos, otrainervaigerararquivosdemodelodendiceadequadamentenomeados.
UmarquivodemodeloindexsimplesmentecontmidentificadoresnumricosparacadaestadodecadaHMM,quesoutilizadospelotrainereodecoderparaacessarosconjuntos de parmetros para cada estado HMM. Comqualquer conjunto de modelosacsticos, o arquivo de modelo de ndice correspondente deve ser utilizado para adecodificao.
ConfigurandoosistemaVocvaiterquebaixaremontarvrioscomponentesparaconfigurarosistemapor
completo. Desde que voc tenha todo o software necessrio, voc vai ter que fazerdownloaddopacotededados,otrainer,eumdosdecoderSphinx,nestecasousaremosoSphinx3.
Softwarenecessrioantesdecomear
VocvaiprecisardoPerlparaexecutarosscriptsfornecidos,eumcompiladorCparacompilarocdigofonte.
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
Perl
OLinuxgeralmentevemcomalgumaversodoPerl.SevocnotemPerlinstalado,porfavor,instaleo.
CCompiler
SphinxTraineSPHINX3usaoGNUautoconfparadescobrir informaesbsicassobre o sistema, e deve compilar com sucesso na maioria dos sistemas Unix e seusderivados,ecertamenteemLinux.OcdigocompiladousandoocomandomakedoGNUecompiladorCdaGNU(ogcc),disponveisemtodasasdistribuiesLinux.
AlinhadordePalavras
Vocvaiprecisardeumprogramadealinhamentodepalavra,sevocquisermediraprecisododecodificador.Umcomumenteusado,disponvelapartirdoInstitutoNacionaldePadreseTecnologia(NIST),osclite,fornecidocomopartedeseuspacotesquegeranumeros,oupontuaes.Podeserencontradonestelink:http://www.itl.nist.gov/iad/mig//tools/
ConfigurandoosdadosOGrupoSphinxdisponibilizaduasbasesdedadosdeudioquepodemserusados
neste tutorial. Cada um tem suas peculiaridades, e so fornecidas apenas como umaconvenincia. Os dados apresentados no so suficientes para criar um sistema dereconhecimento de voz dealta performance. Eles s so fornecidoscomoobjetivo deajudarvocaaprenderausarosistema.
AsbasesdedadosfornecidassooAN4queincluioudio,masnoumabasededadosmuitopequeno,ondevocpodeescolhersevocdesejaincluiracriaodearquivosde recursos em seus experimentos, e a outra base o RM1 que um pouco maior,resultandoassimnumsistemacomumdesempenholigeiramentemelhor.Oudionofornecido,umavezqueestlicenciadomaterial.
Iniciandoospassos:
1.Crieumdiretrioparaosistema,eentrenodiretrio:
$mkdirtutorial
$cdtutorial
2.Faaodownloaddoaudio(usaremosoAN4),esalveonapastatutorialcriadoapouco:
$gunzipcan4_sphere.tar.gz|tarxf
3.Dumls,paraverificarsesuapastaan4,foigeradacomarquivosesubpastasdentro
$ls.
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
Configurandootrainer
RecuperaoCdigo
SphinxTrainpoderecuperarseusandosubversion(SVN)oubaixandoumarquivo tar.Osvntornamaisfcilparaatualizarocdigocomoasnovasalteraessoadicionadasaorepositrio,masrequerquevocinstalesvn.Oarquivotarmaisprontamentedisponveis.
Nonossocaso,faremosodownloaddoarquivo.tar,usandoolink:http://cmusphinx.org/download/nightly/SphinxTrain.nightly.tar.gz
FeitoodownloaddoSphinxTraineextraionapastatutorial:
$gunzipc/home/usuario/Download/SphinxTrain.nightly.tar.gz|tarxf
4.executeumlseverifiquesuapastadetrabalhotutorial
5.entrenapastaecompileoSphinxTrain
$cdSphinxTrain
$./configure
$make
6.AgoraconfigureoTutorial,aindanapastaSphinxTrain,execute:
$perlscripts_pl/setup_tutorial.plan4
Serretornadoaofinaldaexecuo,algosimilara:
GeneratingSphinxTrainspecificscriptsandconfigfile
Setupforacoustictrainingforan4complete
Configurandoodecodificador
OGrupoSphinx temvriosdescodificadoresdiferentes,cujascaractersticaspodemorientlo na escolha do melhor para sua aplicao. A grosso modo, estes podemserdescritoscomosesegue.
PocketSphinx: Esta uma verso modernizada do Sphinx2, especialmenteotimizadoparasistemasembarcadoseportteis. Eletambmconsomeemmdia20%menosmemriae520%menostempodeCPUdoqueSPHINX2.Noentanto,eleestemdesenvolvimentoativo,demodoqueainterfaceeconjuntoderecursospodeserinstvel.
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
SPHINX3: Usa HMMs contnuos. Ele pode lidar com ambos ao vivo edecodificaoemlote.
SPHINX4:UsaHMMscontnuos.EscritonalinguagemdeprogramaoJava.Eleoferecealtaflexibilidadeegrandeprecisoevelocidadeparapequenastarefas.
Parasuaaplicao,voc podeescolherqualquerumdecodificadoradequadoparavoc,masnestetutorialusaremosSPHINX3comoumdecodificadordebase.umaboaidiaparatestarseumodelocomSPHINX3primeiroparadetectarerrosemfasesiniciais.
SPHINX3Instalao
SPHINX3podeserobtidousandosubversion(SVN)oubaixandoumarquivotar.svntorna mais fcil para atualizar o cdigo comoas novas alteraes so adicionadas aorepositrio,masrequerquevocinstalesvn.Oarquivotarmaisprontamentedisponvel.SPHINX3 tambmest disponvel comoumaversodoSourceForge.net , que o queusaremos.
sphinxbase:http://cmusphinx.org/download/nightly/sphinxbase.nightly.tar.gz
sphinx3:http://cmusphinx.org/download/nightly/sphinx3.nightly.tar.gz
Guardeasparaomesmotutorialdiretrio.Extrairocontedodaseguinteforma:
$gunzipcsphinxbase.nightly.tar.gz|tarxf$gunzipcsphinx3.nightly.tar.gz|tarxf
Compilando7. Entrenapasta
$cdsphinxbase
$./configure
$make
8. Agoraentrenapastadosphinx
$cd../sphinx3
$./configureprefix=`pwd`/buildwithsphinxbase=`pwd`/../sphinxbase
$make
$makeinstall
Depoisdecompilarocdigo,vocterqueconfigurarotutorialcopiandotodososexecutveise scripts relevantesparaamesmareaqueosdados.Assumindoqueoseudiretriodetrabalhoatualtutorial,vocvaiprecisarfazeroseguinte.
Aindanapastasphinx3
$perlscripts/setup_tutorial.plan4
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
FazendoumtestedetreinamentopreliminarEntrenapastaan4
$cd../an4/
Os scripts devemtrabalhardeformaseparada,amenosquevoc est treinandomodelos para o PocketSphinx. Neste caso, voc ter que editar o arquivoetc/sphinx_train.cfg, descomentandoalinhaquedefineavarivel $CFG_HMM_TYPE,fazendodaseguintemaneira:
$geditetc/sphinx_train.cfg
Aoabriroarquivo,faa:
$CFG_HMM_TYPE='.cont.';#SphinxIII
#$CFG_HMM_TYPE='.semi.';#PocketSphinxandSphinxII
(COMENTADA)
EmmquinasLinux,vocpodeconfiguraros scripts paratirarproveitodosvriosprocessadores. Para fazer isso, editar etc/sphinx_train.cfg, altere a linhaquedefine avarivel $CFG_NPARTparacoincidircomonmerode CPUs noseusistema,eeditaralinhadefinindo$CFG_QUEUE_TYPEaoseguinte:
#Queue::POSIXparamltiplasCPUsnamquina
#Queue::PBSusarumPBS/TORQUEemfila
$CFG_QUEUE_TYPE="Queue::POSIX";
(ACRESCENTADO)
Osistemanofuncionadiretamentecomsinaisacsticos. Ossinaissoprimeirotransformadosnumasequnciadevectorescaractersticos,quesoutilizadosemlugardossinaisacsticosreais.Pararealizaressatransformao(ouparametrizao)dedentrododiretrioan4,digiteoseguintecomandonalinhadecomando.
$perlscripts_pl/make_feats.plctletc/an4_train.fileids
Este script ir calcular, para cada sentena, uma seqncia de vetores de 13dimenses (vetores de caractersticas) que consistem nos coeficientes Melcepstrais(MFCCs).Notequealistadosarquivoscontmumalistacomoscaminhoscompletosparaosarquivosdeudio.Umavezqueosdadosestotodoslocalizadosnomesmodiretrioquevoc est trabalhando,oscaminhossorelativos,noabsolutos.Voc podeterquemudarisso,usandooarquivoan4_test.fileids,sealocalizaodosdadosdiferente.Esta
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
etapalevacercade10minutosparacompletaremumamquinarpida,masotempopodevariar.Comoeleestsendoexecutado,vocpodequerercontinuaraleitura.OsMFCCssercolocadoautomaticamenteemumdiretriochamado./feat.Notequeotipodevetordecaractersticasvoccalculadossinaisdefalaparaotreinamentoereconhecimento,foradestetutorial.
Voc pode usar qualquer tcnica de parametrizao e calcular outros MFCCs.SPHINX3eSPHINX4podemusarosrecursosdequalquertipooudimenso.Nestetutorial,noentanto,vocvaiusarMFCCsporduasrazes:a)elessoatualmenteconhecidospararesultarnomelhordesempenhodereconhecimentoemsistemasbaseadosemHMMsobamaioriadascondiesacsticas,eb)estetutorialnosedestinaacopiaroprocessamentodosinalparametrizadoeapenasapontaparaumaplataformapadrodeutilizaoparaafinalidade.Agoravocpodecomearatreinarosistema.
No diretrio de scripts (./scripts_pl), existem vrios diretrios numeradosperlscripts_pl/make_feats.plctletc/ynoguti_train.fileidssequencialmentede00*pormeiode99*.Cadadiretriooutemumdiretriochamadoslave*.ploutemumnicoarquivocomextenso .pl . Sequencialmente percorreremosos diretrios e executaremos tantoa doslave*.Plouonicoarquivopl.
Considerandoquevocestnapasta/an4/Vocpodeexecutardaseguinteforma:
$perlscripts_pl/00.verify/verify_all.pl
$perlscripts_pl/10.vector_quantize/slave.VQ.pl
$perlscripts_pl/20.ci_hmm/slave_convg.pl
$perlscripts_pl/30.cd_hmm_untied/slave_convg.pl
$perlscripts_pl/40.buildtrees/slave.treebuilder.pl
$perlscripts_pl/45.prunetree/slavestatetying.pl
$perlscripts_pl/50.cd_hmm_tied/slave_convg.pl
$perlscripts_pl/90.deleted_interpolation/deleted_interpolation.pl
$perlscripts_pl/99.make_s2_models/make_s2_models.pl
ousimplificarerodarRunAll.pl:
$perlscripts_pl/RunAll.pl
Aorodarocomando,aparecerumaimagemsemelhanteaesta(figura1):
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
Daquiemdiante,vamosnosreferirao script quevoctemqueexecutaremcadadiretriosimplesmentecomoslave*.pl.Emdiretriosondehumarquivo,entendaocomooarquivonico.plpresentenodiretrio.
Osscriptslanaro jobs emsuamquinaquepoderodemoraralgunsminutosnaexecuo. Antes de executar qualquer script, verifique o contedo do diretrio atual.Depoisdeexecutarcadaslave*.plobserveocontedonovamente.Vriosdiretriosserocriados.Essesdiretrioscontmarquivosqueserogeradosnocursodotreinamento.Nestepontovocnoprecisasabersobreocontedodestesdiretrios,emboraalgunsdosnomesdediretriopossamserautoexplicativoevocpoderexplorlos,casoqueira.
Umdosarquivosqueaparecemnoseudiretrioatualumarquivo.html,chamadoporan4.htmlourm1.html,dependendodequalbancodedadosvocestejausando.Estearquivoirconterumrelatriodosjobsexecutados.Verifiqueseo job foiconcluidocomxito.Sentopoderrodaroprximo slave*.pl naseqnciaespecificada.Repitaesteprocessoatquevoctenhaexecutadooslave*.pldetodososdiretrios.
Notequeesteprocessocomearnoscript00*at99*,vocirgerarumconjuntodemodelosacusticos,cadaumdosquaispoderiamserusadosparaoreconhecimento.
Certifiquesetambmquealgunspassossorequeridosapenasparaacriaodemodelossemicontinuo.Sevocexecutarestespassosenquantocriaosmodeloscontinuos,os scripts noirofazernada.Umavezqueestes jobs foremexecutadosem 20.ci_hmmforemconcluidos,voctertreinadoomodelodeContextoIndependente(CI)paraoestadounidades de subpalavras emseu dicionrio. Enquanto os jobs executados do diretrio30.cd_hmm_united forem concluidos, voc ter treinado os modelos de ContextosDependentesdeunidadesdesubpalavras(ostrifonemas)comseusestadosisoladamente.EstessochamadosdemodelosisoladosCDesonecessariosparaconstruirarvoresde
Criado por: Dunfrey Pires Arago
imagem1
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
decisesnaordemdeagruparosestados.
Osjobsem40.buildtreesiroconstruirrvoresdedecisoparacadaestadodecadaunidadedesubpalavra.Os jobs em 45.prunetree vaiselecionarasrvoresdedecisoeamarraraosestados.Apsisso,osjobsem50.cdhmm_tiedvatreinarosmodelosfinaispara os trifonemas em seu corpus de treinamento. Estes so chamados de modelosamarradoCD. OsmodelosamarradosCDso treinadosemvrios estagios. Comeamoscom1Gaussianapor estadodeHMM,aps isto, ns treinamoscom2GaussianasporestadosHMMseassimpordianteatqueonmerodesejadodeGaussianasporEstadoforamtreinados.
Os jobs em 50.cdhmm_tied vo treinar automaticamente todos esses modelosamarradoCDintermedirios.Nofinalde qualquer estgiovoc poder usarosmodelosparaoreconhecimento.Lembresequevocpodedecodificarmesmoquandootreinamentoestiveremandamento,desdequevocestejacertodequevoccruzouoestgioquegeraosmodelosquevocquerparadecodificar.
ComorealizarumadecodificaopreliminarDecodificaorelativamentesimplesdeexecutar.Primeiro,calculacaractersticas
MFCCparatodooconjuntodeteste.ParacalcularMFCCsapartirdosarquivoswave,apartirdodiretriodenvelsuperior,ouseja,an4,digiteoseguintenalinhadecomando:
$perlscripts_pl/make_feats.plctletc/an4_test.fileids
Sercompletadoemalgunsminutos.Vocagorapoderodarodecodificador,usandoocomando:
$perlscripts_pl/decode/slave.pl
Usartodosestescomponentesprovidosparaadecodificao,incluindoosmodelosacusticoseomodelodoarquivoindexoajudaagerarseutreinamentopreliminar,parareconhecimento com os seus dados de testes. Quando o job de reconhecimento completado,oscriptdereconhecimentocomputaaTACADEERRODAPALAVRA(WordErrorRateWER)ouaTAXADEERRODASENTENA(SentenceErrorRateSER).
ObservequeestescriptvemcomumafunobuiltinmuitosimplesquefazocalculodeSER.AmenosquevocutilizamquinasCMU,sevocpretendecomputarataxadeerrosdepalavras(WER)vocirterdefazerdownloadecompilarocodigoparatal.Ummodopopular, usadocomumente nacomunidadedepesquisa o fornecidopeloNIST(maioresdetalhesnaseodoinicioAlinadordePalavras).
Sevoc possuiumprogramaquefazoalinhamento,voc podealteraroarquivoetc/sphinx_decode.cfgeentouslo.Voctemquemudaraseguintelinha:
$DEC_CFG_ALIGN="builtin";
SevocestexecutandoosscriptsnaCMU,alinhaacimaseropadropara:
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
$DEC_CFG_ALIGN=\\"/afs/cs.cmu.edu/user/robust/archive/third_party_packages/NIST_scoring_tools/sctk/linux/bin/sclite";
Quandovoc executar o script dedecodificao, ele ir imprimir as informaessobreaprecisononvelsuperiordapginahtml.paraasuaexperincia.Eletambmircriardoisconjuntosdearquivos.Umdessesconjuntos,comaextenso.match,quecontmashiptesescomosadapelodecodificador,eooutroconjunto,comaextenso.align,quecontmoalinhamentogeradopeloseuprogramadealinhamento,oupelo scriptbuiltin,com os resultados de comparao entre a hiptese decodificador e as transcriesfornecidas.SevocusouaferramentaNIST,oarquivo.htmlirconterumalinhacomoaseguinte,sevocusouan4:
SENTENCEERROR:56.154%(73/130)WORDERRORRATE:16.429%(127/773)
Aseguir,segueumaimagemdemonstrativa(figura2).
Comotreinar,equesteschave(parametros)paraotreinamentoAgora voc pode comear seus prprios testes. Para cada treinamento e
decodificao,vocprecisaprimeirodarlheumnome.Vamosreferiraonomeexperimentodesuaescolhapor$taskname.Porexemplo,osnomesdadosaosexperimentosusandoasduasbasesdedadosdisponveisso an4 erm1 .Suaescolhade $taskname serusadoautomaticamenteemtodososarquivosparaotreinamentoeexecutarreconhecimentoparafcilidentificao.Todososdiretriosearquivosnecessriosparaesteexperimentosero
Criado por: Dunfrey Pires Arago
figura2
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
copiadosparaumdiretriochamado$taskname.Algunsdessesarquivos,taiscomodados,sero fornecidos por voc (talvez copiado a partir de qualquer tutorial/an4 oututorial/rm1).Outrosarquivosseroautomaticamentecopiadasdasinstalaesdotraineroudodecoder.
Umanovatarefacriadaapartirdeumdiretriojexistente,nestecasoreferimosaochamado$taskname.Supondoquevocesttrabalhandoapartirdetutorial/an4,anovatarefaser localizadoem tutorial/$taskname.Lembresedesubstituir $tasknamecomumanomedesuaescolha.
Noexemploaseguir,vamosfazerexatamenteisso:iremoscopiarumaconfiguraodo setup existente an4.Observequeodiretriodetrabalhoatualosetupexistente.Onovosercriadopeloscript:
$cdan4(iremosusar$taskname==ynoguti)
$perlscripts_pl/copy_setup.pltaskynoguti
IstoircriarumanovaconfiguraoparaexecutarnovamenteoSphinxTrain,entoaoexecutarnovamenteodecodificador,omesmousadoinicialmente(nestecaso, an4),edepoiscopiarosarquivosdeconfigurao,localizadosob etc,paraanovaconfigurao,comosnomesdearquivoscorrespondentesiroparaanovapasta.
Lembrequeoscript copy_setup.pl tambmcopiaosdados,localizadosemfeat ewav, para o novo local. Aps isso, voc vai trabalhar inteiramente dentro deste novodiretrio,ondeonossocasoynoguti.
ComeamoscomaformaodosistemausandoosarquivosrecursivosMFCCquejforamcomputadosduranteaexecuopreliminar.
Agoravocdeveseguirosseguintespassosemseqncia.
1. Vamosregularabasededadosparaotreinamento,sevamosusarabasedoan4ouumaoutra base. Neste ponto, voc noprecisa fazer mais nadaa noser paraobservarquenareadereconhecimentodevozumaprticacomumparachamarcada arquivo em um banco de dados de um "enunciado". O sinal de uma"enunciao"podenosernecessariamenteumafrasecompleta.Voc podeveracepstraemqualquerarquivousandoaferramentacepview.
2. Decidequaisunidadesdesonsqueserousadaspelosistemaparaotreinamento.Parafazeristo,olhenodicionariolinguistico,queestemynoguti/etc/ynoguti.diceo dicionario de enchimento, localizado em ynoguti/etc/ynoguti.filler, e note asunidadesdesonsdeste.Umalistadetodosasunidadesnestedicionariotambmescritosnoarquivoynoguti/etc/ynoguti.phone.Estudaremososdicionarioseentodecidiremosseasunidadesdesonssoadequadasparaoreconhecimento.Afimdesercapazderealizarumcomreconhecimento,asunidadesdesonsnodevemserconfusas,emuitoconsistentesparaseremusadasnodicionario.
Almdissochequeoutrasunidades,eostrifonemasqueelespodemformar(paraoqual vocestarconstruindoosmodelosemultimaanalise),estobemrepresentadosnosdados
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
detreinamento.importantequeasunidadesdesomqueestsendomodeladoserbemrepresentadosnosdadosdetreinamento,afimdeestimarosparmetrosestatsticosdesuasHMMsconfivel.Paraestudarassuasfrequnciasdeocorrncianosdados,vocpodeusaraferramentamk_mdef_gen.
Nocasoalteramosafimdeficarmelhordispostoparatrabalhar,segueumexemplodamodificaofeitaem*.dic
algumaspalavrasdoan4originalINGLES
EIGHT EYT
EIGHTEEN EYTIYN
EIGHTEENTH EYTIYNTH
EIGHTH EYTTH
algumaspalavrasdoynogutimodificadoPORTUGUS
acontece akonteesi
aconteceu akonteseu
acordei akorrrdey
acreditam akredditanun
Voc pode reestruturar sua base de dados de unidades de sons nos dicionriospodendoapenasadicionarourefazerasunidadesdesom.Asunidadespodemtersonsdiferentesemumanicaentidade.Porexemplo,vocpodequisermodelarosomde"Z"e"S"comoumaunidadenica(emvezdemantloscomounidadesseparadas).Paramesclaressasunidades,quesorepresentadospelossmbolosZeSnodicionriodelinguagemdado,bastasubstituirtodasasinstnciasdaZeSnodicionrioporumsmbolocomum(quepodeserZ_S,ouumsmbolointeiramentenovo).
Deoutraforma,vocpodeencontrarnodicionriolnguisticoinstnciasdosonsZeSseremsubstituidospelosmboloZparaalgumaspalavraseSparaosoutros.Asunidadesdesomtambmpodeserreestruturadapeloagrupamentodesequnciasespecficasdesomemumnicosom.
Uma vez que voc recriou suas unidades, altere o arquivoynoguti/etc/ynoguti.phone. Certifiquesedequevoc notemespaosvaziosoulinhasespriasnestearquivo.Nestecaso,segueumoutroexemplodecomoeraedecomoficoualgumasletrasmodificadasaoseremfaladas:
an4originalINGLES
AA AE AH AO AW
ynogutimodificadoPORTUGUS
a an e ee en
Considerequeexistemmuitosmaisinformaesnosarquivoscitadosacima.
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
Alternativamente,vocpodeignoraresteprocedimentodeprojetoeusaralistadofonemasedicionrioscomotmsidofornecidoavoc.Vocteraoportunidadedemudaroutrascoisasnotreinamentomaistarde.
Altere tambm o arquivo ynoguti_test.transcription, onde estaro as frasescomumentesditas.Comoporexemplo:
semeleotempofluinumritmosuave(M230509)
(ynoguti/wav/reconhecimento/nomedawav.wav)
Modifiquetambmoarquivoynoguti_test.fileidsqueinformaondeestoosarquivosaseremlidosparaoreconhecimento,porexemplo:
Reconhecimento/M241307
Reconhecimento/M241308
Reconhecimento/M241309
Almdisto,nestemesmopensamento,faaomesmoparaoynoguti_train.transcriptioneynoguti_train.fileids,pormparaotranscriptionseromodoqueamquinairentender,porexemplo:
muytuprazerrrenkonnneselu(F011701)
Muitoprazeremconheclo
3. Depois de ter corrigidoseus diretorios e o arquivo de lista de fonemas, edite oarquivo etc/sphinx_train.cfg em tutorial/ynoguti/ paramudarosparametrosdetreinamento.
$CFG_DICTIONARY=seudicionriotreinamentocomcaminhocompleto(nomudamsevocdecidiunoalterarodicionrio)noalterado.
"$CFG_LIST_DIR/$CFG_DB_NAME.dic";
$CFG_FILLERDICT=seudicionriodepreenchimentocomcaminhocompleto(nomudamsevocdecidiunoalterarodicionrio)noalterado.
"$CFG_LIST_DIR/$CFG_DB_NAME.filler";
$CFG_RAWPHONEFILE=sualistadefonemascomocaminhocompleto(nomudesevocdecidiunoalterarodicionrio)noalterado.
"$CFG_LIST_DIR/$CFG_DB_NAME.phone";
$CFG_HMM_TYPE=estavarivelpodeterosvalores.semi.Ou.cont..Observeospontos"."emtornodapalavra.Use.Semi.sevocesttreinandoHMMssemicontnuos,principalmenteparaPocketsphinx,ou .cont. sevoc est treinandoHMMscontnuos(necessriosparaSPHINX4,bemcomoaescolhamaiscomumparaSPHINX3)alterado
$CFG_HMM_TYPE='.cont.';#SphinxIII
#$CFG_HMM_TYPE='.semi.';#PocketSphinxandSphinxII
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
$CFG_STATESPERHMM=qualquernmerointeiro,masrecomendamos3ou5.OnmerodeestadosemumHMMestrelacionadacomascaractersticasquevariamnotempodasunidadesdesom.Asunidadesdesonsquesoaltamentevariveisnotemponecessitamdemaisestadospararepresentlos.Anaturezada variaono tempode sons tambmparcialmente captadapelo varivel$CFG_SKIPSTATEquedescritoabaixoalteradopara5
$ CFG_SKIPSTATE = definir isso para no ou yes. Esta varivel controla atopologiadosseusHMMs.Quandoajustadoparayes,elepermitequeosHMMspulemestados.Noentanto,notequeatopologiaHMMutilizadonestesistemauma topologia Bakis estrita da esquerda para a direita. Se voc definir estavarivel para no, qualquer estado s pode fazer a transiopara o prximoestado.Emtodososcasos,asautotransiessopermitidas.VocvaiencontraroarquivodetopologiaHMM,convenientementechamadaynoguti.topology,nodiretriochamado model_architecture/ noseudiretriobaseatual(ynoguti)noalterado,deixamosno.
$ CFG_FINAL_NUM_DENSITIES = se voc est treinando modelos semicontnuos, definaeste nmero, bemcomo $CFG_INITIAL_NUM_DENSITIES, a256. Para contnuo, definir $CFG_INITIAL_NUM_DENSITIES para 1 e $CFG_FINAL_NUM_DENSITIES paraqualquernmerode1a8.Indoalmde8norecomendadoporcausadopequenoconjuntodedadosdetreinamentoquevoc tenha sido fornecido. A distribuio de cada estado de cada HMM modeladaporumamisturadegaussianas.Estavariveldeterminaonmerodegaussianas nesta mistura. O nmero de parmetros a ser estimado HMMaumentamedidaqueonmerodeGaussianasnamisturaaumenta.Portanto,oaumentodovalordessavarivelpoderesultarnumamenoravaliaodosdadosparaestimarosparmetrosdecadagaussiana. Noentanto, aumentandoestevalortambmresultaemmodelosmaisfinos,oquepodelevaraummelhorreconhecimento.Portanto,necessrionestepontopensarcuidadosamentesobreovalordestavarivel,mantendoestasduasquestesemmente.Lembresequepossvel superar os problemas de insuficincia de dados, compartilhando asmisturasgaussianasentremuitosestadosHMM.QuandovriosestadosHMMcompartilhamamesmamisturadeGauss,dizsequeestoasercompartilhadaouamarrado.Estesestadoscompartilhadossochamadosdeestadosagrupados(tambmreferidoscomosenones).Onmerodemisturaslheformar,emltimainstnciairserexatamenteigualaonmerodeestadosagrupadosespecificadas,queporsuavezpodesercontroladopeloparametro $CFG_N_TIED_STATESalterado
$CFG_INITIAL_NUM_DENSITIES=1;
$CFG_FINAL_NUM_DENSITIES=8;
$CFG_N_TIED_STATES=definirestenmeroparaqualquervalorentre500e2500.Estavarivelpermitequevocespecifiqueonmerototaldeestadosdedistribuies compartilhadas no seu conjunto final de HMMs treinados (seusmodelosacsticos). Unidossocompartilhadosparasuperar os problemasdeinsuficinciadedadosparaqualquerestadodequalquerHMM.Apartilhafeita
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
detalformaapreservara"individualidade"decadaHMM,emqueapenasosestados com as distribuies mais similares so amarradas. O parmetro$CFG_N_TIED_STATES controla o graudesubordinao. Se for pequeno, umnmeromaiordeestadosdiferentes,possivelmentepodeseramarrado,causandoreduonodesempenhodoreconhecimento.Poroutrolado,seesteparmetromuitogrande,podehaverdadossuficientesparaaprenderosparmetrosdasmisturasgaussianasparatodososestadosagrupados.noalterado
$CFG_N_TIED_STATES=1000;
$CFG_CONVERGENCE_RATIO=definirissoparaumnmeroentre0.10.001.EstenmeroarazoentreadiferenadeprobabilidadeentreacorrenteeaiteraoanteriordeBaumWelchparaaprobabilidadetotalnaiteraoanterior.Notequeaquiataxadeconvergnciadependentedevriosfatores,taiscomoainicializao,onmerototaldeparmetrosaseravaliado,aquantidadetotaldedadosdeformao,eainerentevariabilidadenascaractersticasdosdadosdeformao.QuantomaisiteraesdeBaumWelchvocfornecer,melhorvocvaiaprenderadistribuiodeseusdados.Noentanto,aspequenasalteraesquesoobtidosemiteraessuperioresdoalgoritmoBaumWelchnopodemafetarodesempenhodosistema.noalterado
$CFG_CONVERGENCE_RATIO=0.04;
Depoisdemodificadotodososarquivosnecessrios,faa:
$perlscripts_pl/make_feats.plctletc/ynoguti_train.fileids
Osistemanofuncionadiretamentecomsinaisacsticos. Ossinaissoprimeirotransformadosnumasequnciadevectorescaractersticos,quesoutilizadosemlugardossinaisacsticosreais.Assimvaiconstruirnapastafeats,taisvetores.
Depois de ter feito todas as alteraes desejadas, voc deve treinar um novoconjuntodemodelos.Vocpodefazerissoexecutandonovamentetodososscriptsslave*.pldo diretrios ynoguti/scripts_pl/00* at o ynoguti/scripts_pl/09*, ou simplesmenteexecutandoperlscripts_pl/RunAll.pl.
Comodecodificar,equesteschave(parametros)paraadecodificao1. OprimeiropassoparaadecodificaocalcularascaractersticasMFCC,verifique
estamesmaanlisepreliminar,feitonestetutorial.
2. Voc pode alterar os parmetros do decodificador, afetando os resultados dereconhecimento,editandooarquivoetc/sphinx_decode.cfgemtutorial/ynoguti/.Algunsdosparmetrosinteressantesaseguir:
$DEC_CFG_DICTIONARY=dicionriousadopelodescodificador.Elepodeou
Criado por: Dunfrey Pires Arago
-
GPASV Grupo de Pesquisas e Aplicaes em Sinais de Voz
noseromesmoqueoutilizadoparaatreinamento.Oconjuntodefonemastemestar contido no conjunto de fonemas do dicionrio trainer. O conjunto depalavraspodesermaior.Normalmente,noentanto,odicionriododecodificadoromesmoqueoformador,especialmenteparapequenosbancosdedados.noalterado
$DEC_CFG_FILLERDICT=dicionriodeenchimento.noalterado
$ DEC_CFG_MODEL_NAME= o nomedo modelo. O padro usar o (CD)modelosdeestadoligadosdecontextodependentescomonmerodesenonesenmerodedensidadesespecificadasnaetapadetreinamento.noalterado
$ DEC_CFG_LANGUAGEWEIGHT= o valor da linguagem. Recomendase umvalor entre 6 e 13. Opadrodependedobancode dados quevoc baixou.Lembresequeopesodalinguagemdecidequantoimportnciarelativaquevocvaidarparaasprobabilidadesacsticasreaisdaspalavrasahiptese.Umbaixopeso de linguagem d mais margem de manobra para as palavras comprobabilidadesacsticoselevadosparasesupor.noaltera:13
$DEC_CFG_ALIGN=ocaminhoparaoprogramaqueexecutaoalinhamentodetexto,oubuiltin,sevocnotiverum.noalterado
Voc pode decodificar vrias vezes fazendo mudanas nas variveis acima, semprecisarretreinarosmodelosacsticos,paradecidiroquemelhorparavoc.
Decodificaorelativamentesimplesdeexecutar,comojvimos:$perlscripts_pl/make_feats.plctletc/an4_test.fileids
$perlscripts_pl/decode/slave.pl
O script scripts_pl/decode/slave.pl j calcula a preciso da palavra ou frase quandoterminadecodificao.Eleiradicionarumalinhaparaapginadenvelsuperior.htmlqueseparececomoseguintesevocestiverusandooNISTsclite.
SENTENCEERROR:100.0%(400/400)WORDERRORRATE:96.2%(2527/2628)
Criado por: Dunfrey Pires Arago
Componentes fornecidos para o treinamentoComponentes fornecidos para decodificaoConfigurando o sistemaSoftware necessrio antes de comearPerlC CompilerAlinhador de Palavras
Configurando os dadosConfigurando o trainerRecuperao Cdigo
Configurando o decodificador
Fazendo um teste de treinamento preliminarComo realizar uma decodificao preliminarComo treinar, e questes-chave (parametros) para o treinamentoComo decodificar, e questes-chave (parametros) para a decodificao