Скачать презентацию A Simplified System for Analyzing Stop Consonant Acoustics Скачать презентацию A Simplified System for Analyzing Stop Consonant Acoustics

c742a2b42d6dd7c98c7786a8a5f8ab69.ppt

  • Количество слайдов: 31

A Simplified System for Analyzing Stop Consonant Acoustics By Zach Polen Advisor: Helen Hanson A Simplified System for Analyzing Stop Consonant Acoustics By Zach Polen Advisor: Helen Hanson

Background Current study among Hanson (Union College), Shattuck-Huffnagel(MIT) and Demuth(Brown) is being conducted to Background Current study among Hanson (Union College), Shattuck-Huffnagel(MIT) and Demuth(Brown) is being conducted to look at medial stops in kids. Medial stops in this case are the consonants g, t, p, k, d and b Why? Trying to develop models of speech development in children

What purpose does this serve? n Provides insight into how language is stored and What purpose does this serve? n Provides insight into how language is stored and processed in the brain n Investigates how speech utterances are planned and produced n Possible applications to diagnose and treat speech disorders n Speech recognition and speech synthesis

Labeling Speech Events In Children’s Speech Utterances Labeling Speech Events In Children’s Speech Utterances

Compute Durations From Labeled Data Vowel Duration Onset noise Voice Bar Vowel Final Noise Compute Durations From Labeled Data Vowel Duration Onset noise Voice Bar Vowel Final Noise

Analysis n Compare Across n Subjects (10 children/mothers) n Voicing ( voiced/ voiceless n Analysis n Compare Across n Subjects (10 children/mothers) n Voicing ( voiced/ voiceless n Place of Articulation (location on the tongue)

Current Method Current approach uses several programs in order to get required data. Acoustic Current Method Current approach uses several programs in order to get required data. Acoustic Recording Excel Data to. TXT Script extracts labels/time s Text. Grid Formed in Praat MATLAB statistical analysis Excel computes durations/a verages Output to Excel/Word

Current Process Explained 1. The first step is taking the acoustic data and analyze Current Process Explained 1. The first step is taking the acoustic data and analyze it using Text. Grids in Praat. This needs to be repeated for as many files as you have 2. The Computation/Measurement script has to be ran for as many different measurements as you are looking for. In order to do so you have to know which acoustic labels need to be subtracted from each other in the Text. Grids just formed above. You also have to insert these values manually. (Created by research student at MIT) 3. The Averages and Standard Deviations then have to be found in Excel for each type of measurement you are looking for and which acoustic tokens you want to account for. (Done by Summer Research Student at Union) 4. The data needs to be put into a form MATLAB can read in, so in this case you take an Excel file and convert it to a text file. (Done during Summer Research by myself ) 5. The data is read into MATLAB and put into a form in MATLAB so that it can run the statistical analysis. (Done during Summer Research by myself ) 6. The data is not stored/saved in MATLAB so we have to take the data and tables and output them into either Word or Excel.

Problems with Current Method n Piece-meal method; although it works, leaves a lot of Problems with Current Method n Piece-meal method; although it works, leaves a lot of room for human error. Examples: n Uniform labeling system not enforced n Requires numerous conversions vs. data formats n Excel analysis not automated n Confusing/Complex

Researcher’s Requests -Simplify system (time, process, # programs) -Reduce opportunity for human error -Enforce Researcher’s Requests -Simplify system (time, process, # programs) -Reduce opportunity for human error -Enforce label uniformity

Design Considerations 1. Semi-automate labeling of speech events using Praat software 2. Import the Design Considerations 1. Semi-automate labeling of speech events using Praat software 2. Import the Praat data into a MATLAB database 3. Perform the statistical analysis of data in MATLAB 4. Have the system flexible enough so that it can be used for other studies

Projected Block Diagram Acoustic recordings Labels/ti me Labeling Analysis/Com putations Tables of Statistics/Du rations Projected Block Diagram Acoustic recordings Labels/ti me Labeling Analysis/Com putations Tables of Statistics/Du rations

Design Alternatives n Current piece-meal system n Single program that: n n Label waveforms, Design Alternatives n Current piece-meal system n Single program that: n n Label waveforms, read in data, analyze data, output statistics Hybrid system n Praat for labeling acoustic waveforms n MATLAB for extracting/analyzing/outputting data

Final Design: Implement Hybrid Process n Completely redoing entire system would require more time. Final Design: Implement Hybrid Process n Completely redoing entire system would require more time. n Why we chose to use MATLAB: n Experience n Most familiar programming language for both student/advisor n Users have access

Design n First we had to decide how we wanted to save the data Design n First we had to decide how we wanted to save the data in MATLAB. n We decided that we wanted to create a database structure. n This way the data could be conveniently stored and accessed

Breaking Down the Titles n From the textgrid filenames we were able to get Breaking Down the Titles n From the textgrid filenames we were able to get a lot of classification information for our database: n ID n Playsession n Word n Token n Place n Sound/type n Voicing

Getting Text. Grid Information n Ran a succession of while loops n Outer most Getting Text. Grid Information n Ran a succession of while loops n Outer most loop contained a for loop which went through all the records n First while loop found the number of tiers n The next while loop then processes each tier (which has another 4 while loops embedded) n n First finds name of tier Second finds number of points in tier Third finds label of the speech event Fourth finds the time associated with that label

Cycle Through Records Loop Directory of Records Text. Grid # Tiers While Loop Breakdown Cycle Through Records Loop Directory of Records Text. Grid # Tiers While Loop Breakdown Number Tiers Processed While Loop Name Tier Size While Loop Name Point Num Points Time at Point Process Loop

Troubleshooting problems Problem with the manual labeling is even if using the exact same Troubleshooting problems Problem with the manual labeling is even if using the exact same format you can still make mistakes. In order to account for this we had checks in MATLAB that would make all the words lower case (if label was supposed to be v 1_begin and you had V 1_BEg. In MATLAB would auto correct), removed symbols like “? ”(if you had made the mistake of say V 1 -? begin MATLAB would correct to v 1_begin) and made sure all “-” were “_”.

How to save our data? n We wanted to dynamically save our data n How to save our data? n We wanted to dynamically save our data n Allows for data on the spot n This way we don’t just get last result of each loop n Get the data saved for each iteration of the for loop n Data still accessible and usable later n Saving was not dependant on using our method but could be done with other studies

The Answer? An “eval” statement!!! This was harder to conceptualize because you do not The Answer? An “eval” statement!!! This was harder to conceptualize because you do not necessarily see what it is doing as clearly as a longer code which could save it. The eval statement takes a bunch of strings/numbers and executes them the way you have it written out. Sample: eval([Dur. Type{p} '_avg' '. ' alist{m} '. ' slist{i} '. ' vlist{n} '. ' plist{l} '=' 'mean(SAVP); '])

Another great thing about eval! We could have saved the data and created our Another great thing about eval! We could have saved the data and created our database using a bunch of switch statements, or for loops, etc… But had we done it this way it would be specific to our study The eval lets you have your list of whatever durations/events you want and from that list executes each specific one. So you could have the label names a, b , c and I could have d, e, f and either way the eval will correlate and find the desired measurements

Duration Computation Using a for loop and our saved database structure we then used Duration Computation Using a for loop and our saved database structure we then used if statements to derive computations What if speech events weren’t marked? Then we found out the unique labels for subject, age, voicing and place (what we want to average across)

Duration Computations Cont. We wanted to average across token in subject group: Needed to Duration Computations Cont. We wanted to average across token in subject group: Needed to find where subject and age intersected Found where subject, age, voicing intersected: averaged durations across place Found where subject, age, voicing, place intersected: averaged durations across token Dynamically saved using eval statements

Duration Computations Cont. We then wanted to average across subject in age group: Found Duration Computations Cont. We then wanted to average across subject in age group: Found where age, voicing intersected: averaged across subject/place Found where age, voicing, place intersected: averaged across subject

Complications What if there was no events for a given duration? find locations remove Complications What if there was no events for a given duration? find locations remove locations Why?

What else we’d like to get done… n Create a script which outputs durations What else we’d like to get done… n Create a script which outputs durations in a neatly formatted table n Create simple GUI that allows for user to pick which durations they want formatted in table n Using our durations create a script to run standard deviations and statistical (ANOVA) analysis n Praat script which automatically puts in the labels wanted for textgrid (eliminates hand error of writing labels, and keeps all labeling uniform)

Advantage of Our Method n We said we want to reduce time without reducing Advantage of Our Method n We said we want to reduce time without reducing accuracy and hopefully even increase accuracy! n Our process reduces time which can be seen from the block diagram. There are two steps the user must take versus 6 steps in the old process. n Accuracy improves because there is less manual involvement and more automation. There also checks in the code which eliminate previously made errors so the accuracy is even more improved. n Data does not go from program to program so less chance of a copying error. Formula’s for statistical analysis are also already input so the user does not have to worry about making a mistake on those in Excel. n All the user has to do is label their textgrids and the outputs they are looking for will be obtained.

Future Work n Developing an automated labeling script n Simplify MATLAB code into a Future Work n Developing an automated labeling script n Simplify MATLAB code into a series of functions

Acknowledgements Acknowledgements

Questions? Questions?