############################################################################### # createTextGrid.praat (Written by Kyuchul Yoon, kyoon@kyungnam.ac.kr) # For each file in a subfolder, this script creates textgrids automatically. # User can specify how many interval/point tiers to create. ############################################################################### form Specify parameters word inputFolder_(containing_the_sound_files) wavFolder2 word fileExtension_(with_dot) .wav comment Choose tier type optionmenu tier1: 1 option interval tier option point tier word tier1Name TierName1 optionmenu tier2: 1 option interval tier option point tier option none word tier2Name TierName2 optionmenu tier3: 1 option interval tier option point tier option none word tier3Name TierName3 optionmenu tier4: 1 option interval tier option point tier option none word tier4Name TierName4 optionmenu tier5: 1 option interval tier option point tier option none word tier5Name TierName5 endform # Make a list of files in the subfolder. Create Strings as file list... fileListObj 'inputFolder$'/*'fileExtension$' numFiles = Get number of strings #pause 'numFiles' sound files identified. Continue? #Parse the user choices. if tier1$ = "interval tier" tierNameString$ = tier1Name$ pointTierNameString$ = "" elsif tier1$ = "point tier" tierNameString$ = tier1Name$ pointTierNameString$ = tier1Name$ endif if tier2$ = "interval tier" tierNameString$ = tierNameString$ + " " + tier2Name$ elsif tier2$ = "point tier" tierNameString$ = tierNameString$ + " " + tier2Name$ pointTierNameString$ = pointTierNameString$ + tier2Name$ elsif tier2$ = "none" # Do nothing. endif if tier3$ = "interval tier" tierNameString$ = tierNameString$ + " " + tier3Name$ elsif tier3$ = "point tier" tierNameString$ = tierNameString$ + " " + tier3Name$ pointTierNameString$ = pointTierNameString$ + " " + tier3Name$ elsif tier3$ = "none" # Do nothing. endif if tier4$ = "interval tier" tierNameString$ = tierNameString$ + " " + tier4Name$ elsif tier4$ = "point tier" tierNameString$ = tierNameString$ + " " + tier4Name$ pointTierNameString$ = pointTierNameString$ + " " + tier4Name$ elsif tier4$ = "none" # Do nothing. endif if tier5$ = "interval tier" tierNameString$ = tierNameString$ + " " + tier5Name$ elsif tier5$ = "point tier" tierNameString$ = tierNameString$ + " " + tier5Name$ pointTierNameString$ = pointTierNameString$ + " " + tier5Name$ elsif tier5$ = "none" # Do nothing. endif # Loop through each file. for iFile to numFiles select Strings fileListObj fileName$ = Get string... iFile prefix$ = fileName$ - fileExtension$ textgridName$ = prefix$ + ".TextGrid" Read from file... 'inputFolder$'/'fileName$' Rename... soundObj # Warning!!: First argument should be in " ", but the second argument # doesn't need that double quotes. It took me long to figure that out! To TextGrid... "'tierNameString$'" 'pointTierNameString$' Rename... textgridObj Write to text file... 'inputFolder$'/'textgridName$' select Sound soundObj plus TextGrid textgridObj Remove endfor select Strings fileListObj Remove ############# END OF SCRIPT #################