utilização sphinx3

Post on 30-Sep-2015

8 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Como utilizar o Sphinx

TRANSCRIPT

  • 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

top related