# batch_parse_textgrid_transcripts-allblanklines # TK July 15, 2015 # # A batch processing version of the "parse_textgrid_transcript.praat" script (TK 2009) # incorporating some code from 11.3.2002 Mietta Lennes ("open_all_files_in_folder.praat") # This version modified to include all intervals, even previously unwanted silent ones. # For POS Tagging Process # # Enter the path to a directory in the form and the script will generate individual text files # for each of the .TextGrid files (named the original name plus "_out.txt", saved in the directory) # Nb. It's probably easiest to set the directory name below: form Open all files in directory sentence directory /Users/tsk/Dropbox/current/AAEGrant/POSTaggingProject/TranscriptsforPOS/ endform procedure bubblesort length count = 0 dorepeat= 1 countdown = length repeat if count = 100000 pause This is taking a long time. Hit 100,000 iterations. Possibly an infinite loop. Will pause again at 1,000,000 iterations. elsif count = 1000000 pause This is taking a long time. Hit 1,000,000 iterations. Possibly an infinite loop! Will NOT pause again, you may want to consider aborting. endif countdown = countdown - 1 for i from 1 to countdown ii = i + 1 if start'i' > start'ii' tmp = start'i' start'i' = start'ii' start'ii' = tmp tmp = end'i' end'i' = end'ii' end'ii' = tmp tmp$ = name'i'$ name'i'$ = name'ii'$ name'ii'$ = tmp$ tmp$ = ortho'i'$ ortho'i'$ = ortho'ii'$ ortho'ii'$ = tmp$ endif count = count + 1 endfor until countdown = 1 endproc Create Strings as file list... list 'directory$'* numberOfFiles = Get number of strings for ifile to numberOfFiles filename$ = Get string... ifile if right$ (filename$, 9) = ".TextGrid" Read from file... 'directory$''filename$' outfile$ = replace$ (filename$, ".TextGrid", "_out.txt", 0) outpath$ = directory$+outfile$ numoftiers = Get number of tiers counter = 0 for i from 1 to numoftiers spkr$ = Get tier name... 'i' numofints = Get number of intervals... 'i' for j from 1 to numofints counter = counter + 1 name'counter'$ = spkr$ start'counter' = Get starting point... 'i' 'j' ortho'counter'$ = Get label of interval... 'i' 'j' end'counter' = Get end point... 'i' 'j' endfor endfor call bubblesort 'counter' prvspk$ = "" nxtspk$ = "" for i from 1 to counter st = start'i' en = end'i' spk$ = name'i'$ txt$ = ortho'i'$ if (i > 1) ii = i - 1 prvspk$ = name'ii'$ else prvspk$ = "" endif if (i < counter) ii = i + 1 nxtspk$ = name'ii'$ else nxtspk$ = "" endif if index_regex(txt$, "^\s*$") dur = en - st fileappend 'outpath$' 'i''tab$''spk$''tab$''st:2''tab$'(pause 'dur:2')'tab$''en:2''newline$' else fileappend 'outpath$' 'i''tab$''spk$''tab$''st:2''tab$''txt$''tab$''en:2''newline$' endif endfor Remove endif select Strings list endfor select Strings list Remove