Páginas

domingo, 3 de março de 2013

Kreante la KD deĉenigis MODELO DIFINO DOSIERO

fonto: http://www.speech.cs.cmu.edu/sphinxman/scriptman1.html#3g

Maŝin-instruo kun kontinuaj modeloj

La sekva paŝo estas la KD-deĉenigis trejnado, en kiu HMMs estas trejnitaj por ĉiuj kunteksto-dependa telefonoj (kutime triphones) kiu vidas en la trejnado korpuso. Por la KD-deĉenigis trejnado, ni unue bezonas por generi modelo difino dosiero por ĉiuj triphones occuring en la trejnado aro. Ĉi tiu estas farita en pluraj paŝoj:
    Unue, liston de ĉiuj triphones ebla en la vortprovizo estas generita de la vortaro. Por atingi ĉi kompleta listo de triphones de la vortaro, ĝi estas unua necesa por skribi la liston de telefonoj en la jena formato:
      phone1 0 0 0 0
     phone2 0 0 0 0
     phone3 0 0 0 0
     phone4 0 0 0 0
     ...
    
    La phonelist uzata por la CI trejnado devas esti uzata por generi tion, kaj la ordo en kiu la telefonoj estas listigitaj devas esti la sama. Tuj poste, portempa vortaro estas generita, kiu havas ĉiujn vortojn krom la kompletigo vortoj (vortoj enmetitaj en + + () + +). La eniro
      SIL SIL
    
    devas esti adiciita al ĉi provizora vortaro, kaj la vortaro devas esti ordo en alfabeta ordo. La programo "quick_count" provizita kun la sfinkso-III pako povas nun esti uzata por generi la listo de ĉiuj eblaj triphones de la provizora vortaro. Ĝi portas la sekvaj argumentoj:
    FLAG PRISKRIBO
    -Q deviga flago diri quick_count konsideri tutan vorton paroj dum konstrui triphone listo
    -P formatan phonelist
    -B provizora vortaro
    -O eligo triphone listo
    Jen tipa eliro el quick_count
      AA (AA, AA) s 1
     AA (AA, AE) b 1
     AA (AA, AO) 1 1
     AA (AA, AW) e 1
    
    La "1" en AA (AA, AO) 1 indikas ke tiu estas vorto-interna triphone. Tio ĉi estas carry super el Sfinkso-II. La eliro de quick_count devas esti nun skribita en la jena formato:
      AA AA AA s
     AA AA AE b
     AA AA AO i
     AA AA AW TTT
    
    Ĉi tiu povas esti farita per simple anstataŭante "(", ",", kaj ")" en la eligo de quick_count de spaco kaj presi nur la unuaj kvar kolumnoj. Dum tio, ĉiuj okazoj de "1" devas esti anstataŭita de "i". Al la supro de la rezultanta dosiero la listo de CI telefonoj devas appened en la jena formato
      AA ---
     AE ---
     AO ---
     AW ---
     ..
     ..                                                         
     AA AA AA s
     AA AA AE b
     AA AA AO i
     AA AA AW TTT
    

    Ekzemple, se la eligo de la quick_count stokas en dosiero nomata "quick_count.out", la jena perl komando generos la telefono lerta en la dezirata formo. perl-Nae '$ F [0] = ~ s / \ (| \) | \, / / g; $ F [0] = ~ s/1/i/g; print $ F [0]; if ($ F [0] = ~ / \ s + $ /) {print "i"}; print "\ n" 'quick_count.out La supra listo de triphones (kaj poŝtelefonoj) estas konvertita al la modelo difino dosiero listigas ĉiujn eblajn triphones de la vortaro. La programo uzita de ĉi tiu estas "mk_model_def" kun jenaj argumentoj nombro de ŝtatoj por HMM
    FLAG PRISKRIBO
    -Moddeffn modelo difino dosieron kun ĉiuj eblaj triphones (alltriphones_mdef) esti skribita
    -Phonelstfn Listo de ĉiuj triphones
    -N_state_pm
    En la venonta paŝo ni trovas la nombro da fojoj ĉiu el la triphones listigitaj en la alltriphones_mdef okazis en la trejnado korpuso Por fari tion ni nomas la programo "param_cnt" kiu prenas la sekvaj argumentoj:
    FLAG PRISKRIBO
    -Moddeffn modelo difino dosieron kun ĉiuj eblaj triphones (alltriphones_mdef)
    -Ts2cbfn prenas la valoro ". daŭrigo." se vi konstruas kontinua modeloj
    -Ctlfn kontroli dosieron responda al via trejnado transskriboj
    -Lsnfn transskribo dosiero por trejnado
    -Dictfn trejnado vortaro
    -Fdictfn plenigita vortaro
    -Paramtype skribi "telefono" cxi tie, sen la duoblaj citiloj
    -Segdir / Dev / null
    param_cnt skribas el la grafoj por ĉiu el la triphones sur stdout. Ĉiuj aliaj mesaĝoj senditaj al stderr. La stdout do devas esti direktita al dosiero. Se vi uzas csh aux tcsh estus farita en la jena maniero:
      (Param_cnt [argumentoj]> triphone_count_file)> &!  LOG
    
    Jen ekzemplo de la eligo de ĉi tiu programo
      + + --- Rubo 98
     + Ridi + --- 29
     SIL --- 31694
     AA --- 0
     AE --- 0
     ...
     AA AA AA s 1
     AA AA AE s 0
     AA AA AO s 4
    
    La fina nombro en ĉiu vico montras la nombron de fojoj ke aparta triphone (aŭ plenigita telefono) estas okazis en la trejnado korpuso. Ne ke se ĉiuj eblaj triphones de CI telefono estas listigitaj en la all_triphones.mdef la CI telefono havos 0 grafoj ĉar ĉiuj okazoj de gxi estus mapita al triphone. Tiu listo de rakontita triphones uzas por Shortlist la triphones kiuj okazis minimuma nombro (sojlo) de fojoj. La antaŭselektita triphones aperas en la sama formato kiel la dosiero el kiu ili estis selektitaj. La antaŭselektita triphone listo havas la saman formaton kiel la triphone listo uzita por generi la all_triphones.mdef. La formatan liston de CI telefonoj devas esti inkluzivita en tiu kiel antauxe. Do, en la pli frua ekzemplo, se sojlo de 4 estis uzataj, ni akirus la antaŭselektita triphone lerta kiel
      AA ---
     AE ---
     AO ---
     AW ---
     ..
     ..                                 
     AA AA AO s
     ..
    
    La sojlo estas ĝustigitaj tia ke la tuta nombro de triphones super la sojlo estas malpli ol la maksimuma nombro de triphones ke la sistemo povas trejni (aŭ ke vi volas trejni). Ĝi estas bona por trejni kiel multaj triphones ebla. La maksimuma nombro da triphones povas tamen esti dependa de la disponebla memoro en via maŝino. La loĝistiko rilataj al ĉi estas priskribitaj en la komenco de ĉi manlibro. Notu ke thresholding estas kutime farita tiel redukti la nombron de triphones, por ke la rezultanta modeloj estos sufiĉe malgranda por havi en la komputilo la memoro. Se ĉi tiu ne estas problemo, tiam la sojlo povas agordi al plej malgranda nombro. Se la triphone okazas tro malmultaj fojoj, tamen, (tio estas, se la sojlo estas tro malgranda), tie estos plu sufiĉe da datumoj por trejni la HMM stato distribuoj konvene. Ĉi tio kondukas al malbone taksita KD deĉenigis modeloj, kiu siavice povas tuŝi la decido arboj kiuj devas esti konstruita uzanta tiuj modeloj en la sekva granda paŝo de la trejnado.
    Modelo difino dosiero estas nun kreita por inkluzivi nur tiuj antaŭselektita triphones. Ĉi tiu estas la modelo fino difino dosiero estu uzata por la KD deĉenigis trejnado. La reduktita triphone listo estas tiam la modelo difino dosieron per mk_model_def kun jenaj argumentoj: multaj regnoj por HMM
    FLAG PRISKRIBO
    -Moddeffn modelo difino dosiero por KD deĉenigis trejnado
    -Phonelstfn Listo de antaŭselektita triphones
    -N_state_pm
Fine, do, modelo difino dosiero kiu listigas ĉiujn CI telefonoj kaj vidis triphones estas konstruita. Ĉi tiu dosiero, kiel la CI modelo difino dosiero, asignas unika id estas al ĉiu HMM stato kaj utilas kiel referenco dosiero por manipuli kaj identigi la KD-deĉenigis modelo parametroj. Jen ekzemplo de la KD-deĉenigis modelo difino dosiero: Se vi listigitaj kvin telefonoj en via phones.list dosiero,
SIL B AE T
kaj specifi ke vi volas konstrui tri ŝtataj HMMs por ĉiu el tiuj telefonoj, kaj se vi havas parolo listigitaj en via transskribo dosiero:
<s> BAT A TAB </ s> por kiu via vortaro kaj fillerdict elementoj estas:
  Fillerdict:
 <s> SIL
 </ S> SIL
  Vortaro:
 Al AX 
 BAT B AE T
 TAB T AE B
tiam via KD-deĉenigis modelo difino dosiero aspektos tiel ĉi:
  # Generated by / mk_model_def on Tue Mar 10 14:57:15 2000
 0.3
 5 n_base
 7 n_tri
 48 n_state_map
 36 n_tied_state
 15 n_tied_ci_state
 5 n_tied_tmat                                                                  
 #
 # Kolumnoj difinoj
 # Bazo lft rt p ATTRIB tmat ... stato id La ...
 SIL --- plenigita 0 0 1 2 N
 AE --- n / a 1 3 4 5 N
 AX --- n / a 2 6 7 8 N
 B --- n / a 3 9 10 11 N
 T --- n / a 4 12 13 14 N
 AE BT en / a 1 15 16 17 N
 AE TB en / a 1 18 19 20 N
 AX TT sn / a 2 21 22 23 N
 B SIL AE bn / a 3 24 25 26 N
 B AE SIL eo / de 3 27 28 29 N
 T AE AX eo / al 4 30 31 32 N
 T AX AE bn / a 4 33 34 35 N

 La # linioj estas simple komentojn.  La resto de la variabloj signifi la sekvajn:

   n_base: ne.  de CI telefonoj (ankaŭ nomata "bazo" telefonoj), 5 tie
   n_tri: ne.  de triphones, 7 en ĉi tiu kazo
   n_state_map: Tuta ne.  de HMM statoj (emisiaj kaj ne-emisiaj)
                 La Sfinkso appends ekstran fina ne-emisiaj stato
                 al cxiu HMM, de ĉi tie dum 5 +7 telefonoj, ĉiu precizigita per
                 la uzanto esti modelita per 3-stato HMM, ĉi tiu numero
                 estos 12phones * 4states = 48
   n_tied_state: ne.  de ŝtatoj de ĉiuj telefonoj post stato-interŝanĝo estas farita.
                 Ni ne dividas ŝtatoj en tiu etapo.  Sekve ĉi tiu nombro estas la
                 sama kiel la nombro de emisiaj ŝtatoj, 12 * 3 = 36
 n_tied_ci_state: ne.  de ŝtatoj por via CI telefonoj post stato-interŝanĝo     
                 estas farita.  La CI ŝtatoj ne estas dividitaj, nun aŭ poste.
                 Ĉi tiu nombro estas tial denove la tuta numero de elsendante CI
                 ŝtatoj, 5 * 3 = 15
  n_tied_tmat: La tuta nombro de transiro matricoj estas ĉiam la sama
                  kiel la tuteca nombro de CI telefonoj esti modelita.  Ĉiuj triphones
                  por donita telefono dividas la saman traira matrico.  Ĉi
                  nombro estas tial 5.

 Kolumnoj difinoj: La jenaj kolumnoj estas difinita:
        bazo: nomo de ĉiu telefono
        lft: maldekstra kadro de la telefono (- se neniu)
        rt: dekstra kunteksto de la telefono (- se neniu)
        p: pozicio de triphone.  Kvar pozicio markiloj estas subtenataj:
                b = vorto begining triphone
                kaj = vorto finas triphone
                mi = vorto interna triphone
                s = sola vorto triphone 
        ATTRIB: atributo de telefono.  En la telefono listo, se la telefono estas "SIL",
                aŭ se la telefono estas enfermita per "+", kiel en "+ BANG +", tiuj
               telefonoj estas interpretitaj kiel ne-parolado okazaĵoj.  Tiuj estas
                ankaŭ nomita "plenigita" telefonoj, kaj la atributo "plenigita" estas
                atribuita al ĉiu tia telefono.  La bazo telefonoj kaj la
                triphones ne havas specialajn atributoj, kaj do estas 
                etikedita kiel "n / a", staranta por "neniu atributo"
       tmat: la id de la traira matrico asociita kun la telefono      
  ŝtata id La: la IDS de la HMM ŝtatoj ligita kun ajna telefono.  Ĉi tiu listo
                estas eksigita de la "N", kiu staras por ne-emisiaj
                ŝtato.  Neniu id atribuas al ĝi.  Tamen, ekzistas, kaj estas
                listigita.

Nenhum comentário:

Postar um comentário