#! Praat script p2/speakers/statistics.praat # Paul Boersma, April 24, 2001 # Read from file... all.TableOfReal echo Statistics: for region to 2 region$ = if region = 1 then "Scottish" else "Southern" fi call one ship call one sheep call one lid call one lead call one filling call one feeling call one Snicker call one sneaker call all endfor procedure all mdur = (mdur_ship + mdur_lid + mdur_Snicker + mdur_filling) / 4 mf1 = (mf1_ship + mf1_lid + mf1_Snicker + mf1_filling) / 4 mf2 = (mf2_ship + mf2_lid + mf2_Snicker + mf2_filling) / 4 sdurw = sqrt ((sdur_ship^2 + sdur_lid^2 + sdur_Snicker^2 + sdur_filling^2) / 4) sf1w = sqrt ((sf1_ship^2 + sf1_lid^2 + sf1_Snicker^2 + sf1_filling^2) / 4) sf2w = sqrt ((sf2_ship^2 + sf2_lid^2 + sf2_Snicker^2 + sf2_filling^2) / 4) sdurb = sqrt (((mdur_ship-mdur)^2 + (mdur_lid-mdur)^2 + (mdur_Snicker-mdur)^2 + (mdur_filling-mdur)^2) / 3) sf1b = sqrt (((mf1_ship-mf1)^2 + (mf1_lid-mf1)^2 + (mf1_Snicker-mf1)^2 + (mf1_filling-mf1)^2) / 3) sf2b = sqrt (((mf2_ship-mf2)^2 + (mf2_lid-mf2)^2 + (mf2_Snicker-mf2)^2 + (mf2_filling-mf2)^2) / 3) sdur = sqrt ((4 * 49 * sdurw ^ 2 + 3 * 50 * sdurb ^ 2) / 199) sf1 = sqrt ((4 * 49 * sf1w ^ 2 + 3 * 50 * sf1b ^ 2) / 199) sf2 = sqrt ((4 * 49 * sf2w ^ 2 + 3 * 50 * sf2b ^ 2) / 199) mdur$ = fixed$ (1000 * 2 ^ mdur, 1) mf1$ = fixed$ (2 ^ mf1, 0) mf2$ = fixed$ (2 ^ mf2, 0) sdurw$ = fixed$ (sdurw, 3) sf1w$ = fixed$ (sf1w, 3) sf2w$ = fixed$ (sf2w, 3) sdurb$ = fixed$ (sdurb, 3) sf1b$ = fixed$ (sf1b, 3) sf2b$ = fixed$ (sf2b, 3) sdur$ = fixed$ (sdur, 3) sf1$ = fixed$ (sf1, 3) sf2$ = fixed$ (sf2, 3) printline Overall 'region$' /I/: printline mean duration 'mdur$' ms, stdev 'sdur$' ('sdurw$', 'sdurb$') duration doublings printline mean median F1 = 'mf1$' Hz, stdev 'sf1$' ('sf1w$', 'sf1b$') octaves printline mean median F2 = 'mf2$' Hz, stdev 'sf2$' ('sf2w$', 'sf2b$') octaves mdur = (mdur_sheep + mdur_lead + mdur_sneaker + mdur_feeling) / 4 mf1 = (mf1_sheep + mf1_lead + mf1_sneaker + mf1_feeling) / 4 mf2 = (mf2_sheep + mf2_lead + mf2_sneaker + mf2_feeling) / 4 sdurw = sqrt ((sdur_sheep^2 + sdur_lead^2 + sdur_sneaker^2 + sdur_feeling^2) / 4) sf1w = sqrt ((sf1_sheep^2 + sf1_lead^2 + sf1_sneaker^2 + sf1_feeling^2) / 4) sf2w = sqrt ((sf2_sheep^2 + sf2_lead^2 + sf2_sneaker^2 + sf2_feeling^2) / 4) sdurb = sqrt (((mdur_sheep-mdur)^2 + (mdur_lead-mdur)^2 + (mdur_sneaker-mdur)^2 + (mdur_feeling-mdur)^2) / 3) sf1b = sqrt (((mf1_sheep-mf1)^2 + (mf1_lead-mf1)^2 + (mf1_sneaker-mf1)^2 + (mf1_feeling-mf1)^2) / 3) sf2b = sqrt (((mf2_sheep-mf2)^2 + (mf2_lead-mf2)^2 + (mf2_sneaker-mf2)^2 + (mf2_feeling-mf2)^2) / 3) sdur = sqrt ((4 * 49 * sdurw ^ 2 + 3 * 50 * sdurb ^ 2) / 199) sf1 = sqrt ((4 * 49 * sf1w ^ 2 + 3 * 50 * sf1b ^ 2) / 199) sf2 = sqrt ((4 * 49 * sf2w ^ 2 + 3 * 50 * sf2b ^ 2) / 199) mdur$ = fixed$ (1000 * 2 ^ mdur, 1) mf1$ = fixed$ (2 ^ mf1, 0) mf2$ = fixed$ (2 ^ mf2, 0) sdurw$ = fixed$ (sdurw, 3) sf1w$ = fixed$ (sf1w, 3) sf2w$ = fixed$ (sf2w, 3) sdurb$ = fixed$ (sdurb, 3) sf1b$ = fixed$ (sf1b, 3) sf2b$ = fixed$ (sf2b, 3) sdur$ = fixed$ (sdur, 3) sf1$ = fixed$ (sf1, 3) sf2$ = fixed$ (sf2, 3) printline Overall 'region$' /i/: printline mean duration 'mdur$' ms, stdev 'sdur$' ('sdurw$', 'sdurb$') duration doublings printline mean median F1 = 'mf1$' Hz, stdev 'sf1$' ('sf1w$', 'sf1b$') octaves printline mean median F2 = 'mf2$' Hz, stdev 'sf2$' ('sf2w$', 'sf2b$') octaves endproc procedure one word$ rows = Get number of rows n = 0 sumDuration = 0 sumDurationSquared = 0 sumF1 = 0 sumF2 = 0 sumF1squared = 0 sumF2squared = 0 durationColumn = Get column index... Duration f1Column = Get column index... F1 f2Column = Get column index... F2 for row to rows rowLabel$ = Get row label... row rowRegion = Get value... row 1 if rowLabel$ = word$ and rowRegion = region n = n + 1 duration = Get value... row durationColumn duration = log2 (duration) sumDuration = sumDuration + duration sumDurationSquared = sumDurationSquared + duration ^ 2 f1 = Get value... row f1Column f1 = log2 (f1) sumF1 = sumF1 + f1 sumF1squared = sumF1squared + f1 ^ 2 f2 = Get value... row f2Column f2 = log2 (f2) sumF2 = sumF2 + f2 sumF2squared = sumF2squared + f2 ^ 2 endif endfor if n = 0 exit No such labels found. endif mdur_'word$' = sumDuration / n mf1_'word$' = sumF1 / n mf2_'word$' = sumF2 / n sdur_'word$' = sqrt ((sumDurationSquared - n * mdur_'word$' ^ 2) / (n - 1)) sf1_'word$' = sqrt ((sumF1squared - n * mf1_'word$' ^ 2) / (n - 1)) sf2_'word$' = sqrt ((sumF2squared - n * mf2_'word$' ^ 2) / (n - 1)) mdur$ = fixed$ (1000 * 2 ^ mdur_'word$', 1) mf1$ = fixed$ (2 ^ mf1_'word$', 0) mf2$ = fixed$ (2 ^ mf2_'word$', 0) sdur$ = fixed$ (sdur_'word$', 3) sf1$ = fixed$ (sf1_'word$', 3) sf2$ = fixed$ (sf2_'word$', 3) printline 'region$' "'word$'", n = 'n' printline mean duration 'mdur$' ms, stdev 'sdur$' duration doublings printline mean median F1 = 'mf1$' Hz, stdev 'sf1$' octaves printline mean median F2 = 'mf2$' Hz, stdev 'sf2$' octaves endproc