Analysis Notes for vsaGeneralize2

Instructions for analyzing vsaGeneralize2

General info

Two main tasks that requires formant tracking in vsaGeneralize2 are: 1) the vsaPerturbation task and 2) the bite block task. 

For the vsaPerturbation task, the experiment contains blocks in which participants read aloud words. Participants are trained on bead, booed, bod, bad. They also spoke these generalization words: bid, bed, bud, bayed, bode, bide. 

For the bite block task, participants read heed, hood, hod, had. 

You will need to complete the formant tracking for these two tasks for each participant that you are assigned.

The dataset for the vsaPerturbation task is in: smng/experiments/vsaGeneralize2/acousticdata/sp###/. The bite block dataset is in smng/experiments/vsaGeneralize2/somatodata/biteblock/sp###/

There are multiple vowels for each task. You will analyze based on a vowel-by-vowel basis. Please see the steps for each task below. 

vsaPerturbation task 

Formant analysis steps

1. Load in data

  1. Within MATLAB, navigate to the data folder for your participant (smng/experiments/vsaGeneralize2/acousticdata/sp###/).
  2. Double click the expt.mat file (should show up on the current folder window in Matlab) to load in the expt.mat file.

2. Initial audio check

Run check_audio, following the instructions in step 2 of the General Analysis Guide.

3. Create trial index for each vowel

For each word, make a variable that contains the trial numbers where that word was said. To do this, enter the following commands in Matlab

  • clear beads bads booeds bods bids bayeds beds bodes buds bides
  • beads = expt.inds.words.bead
  • bads = expt.inds.words.bad
  • booeds = expt.inds.words.booed
  • bods = expt.inds.words.bod
  • bids = expt.inds.words.bid
  • bayeds = expt.inds.words.bayed
  • beds = expt.inds.words.bed
  • bodes = expt.inds.words.bode
  • buds = expt.inds.words.bud
  • bides = expt.inds.words.bide

***You will repeat step 4 and 5 for each word***

4. Initial analysis with audioGUI & set all trials of a specific word to adjusted parameters 

  1. Find parameters that work for formant tracking for each word. 
    • Use the command audioGUI([],word,[],[],0) and replace word with which word you plan to analyze, e.g. audioGUI([],beads,[],[],0) then follow the instructions in step 3 of the General Analysis Guide
    • Look at about 10-20 trials to find good settings. Adjust the amplitude threshold, LPC order, and preemphasis to your liking.
    • Click End.
    • It will ask you if you want to overwrite wave_viewer_params.mat. Select Yes

  2. Apply parameters to all trials of the same word
    • In the command line, type waverunner([],word,[],0,{'nlpc', 'ampl_thresh4voicing', 'preemph', 'ms_framespec_form'}), where word refers to the specific word you are tracking e.g., waverunner([], beads,[],0,{'nlpc', 'ampl_thresh4voicing', 'preemph', 'ms_framespec_form'})  . Please refer to the instructions in step 4 of the General Analysis Guide

5. Check all trials

  1.  Do fine-tuned analysis of each trial of the same word
    • Use the command audioGUI([],word,[],[],0),where word refers to the specific word you are tracking, then follow the instructions in step 5 of the General Analysis Guide
    • When in doubt, screenshot the trial and ask Hung-Shao Cheng on Slack for more information.

6. To pick up where you left off

  1. You must know what word and which trial you were on
  2. Complete step 3
  3. If you were on the first trial of that word item, then you can just run audioGUI([], word, [], [], 0) but switch out "word" with the actual word. For example, audioGUI([], beads, [], [], 0) 
  4. If you were in the middle of that word item, then in the command line, type find(word == trial#) and replace "word" with the word you are analyzing and replace trial# with the trial you left off on; e.g. find(beads == 436) 
    • The number it gives back is the index in the word structure of the trial you were on, for example, 143
    • In the command line, type audioGUI([],word(index#:end),[],[],0) and replace word with the word you are analyzing and replace index# with the number from the previous section. For example, audioGUI([],beads(143:end),[],[],0) 
  5. Also, keep in mind that for each new participant, the word to trial to index relationship is different because it is randomized

7. Check_dataVals

  1. Run gen_dataVals_from_wave_viewer to generate dataVals.
  2. Run check_dataVals to complete step 7 of the General Analysis Guide
    • Correct trials which fall into the error categories and need fixing.
    • Use the "reload_dataVals" button 
    • When you are done, click "reload_dataVals" (and "Overwrite") one last time, then exit the GUI.

8. Document your tracking progress

  1. When you are done or have to leave the data, go to the Data Analysis Tracking sheet
  2. Select the experiment sheet that you are working on (at the bottom of the page)
  3. Fill in the correct cell or cells for the data you have analyzed

Bite block task

1. Load in data

  1. Within MATLAB, navigate to the data folder for your participant (smng/experiments/vsaGeneralize2/somatodata/biteblock/sp###/).
  2. Double click the expt.mat file (should show up on the current folder window in Matlab) to load in the expt.mat file.

2. Initial audio check

Run check_audio, following the instructions in step 2 of the General Analysis Guide.

3. Create trial index for each vowel

For each word, make a variable that contains the trial numbers where that word was said. To do this, enter the following commands in Matlab

    • clear heeds whods hads hods
    • heeds = expt.inds.vowels.iy
    • whods = expt.inds.vowels.uw
    • hads = expt.inds.vowels.ae
    • hods = expt.inds.vowels.aa

***You will repeat step 4 and 5 for each word***

4. Initial analysis with audioGUI & set all trials of a specific word to adjusted parameters 

  1. Find parameters that work for formant tracking for each word. 
    • Use the command audioGUI([],word,[],[],0) and replace word with which word you plan to analyze, e.g. audioGUI([],heeds,[],[],0) then follow the instructions in step 3 of the General Analysis Guide
    • Look at about 10-20 trials to find good settings. Adjust the amplitude threshold, LPC order, and preemphasis to your liking (Please note that after the 8th trial for each word, participants started producing the word while biting down a tongue depressor so their production may sound a bit different from their baseline production (trial 1 to 8), you should still be able to find a parameter that track well for both baseline production and bite-blocked production).
    • Click End.
    • It will ask you if you want to overwrite wave_viewer_params.mat. Select Yes

  2. Apply parameters to all trials of the same word
    • In the command line, type waverunner([],word,[],0,{'nlpc', 'ampl_thresh4voicing', 'preemph', 'ms_framespec_form'}), where word refers to the specific word you are tracking e.g., waverunner([], heeds,[],0,{'nlpc', 'ampl_thresh4voicing', 'preemph', 'ms_framespec_form'}) . Please refer to the instructions in step 4 of the General Analysis Guide

5. Check all trials

  1.  Do fine-tuned analysis of each trial of the same word
    • Use the command audioGUI([],word,[],[],0),where word refers to the specific word you are tracking, then follow the instructions in step 5 of the General Analysis Guide
    • When in doubt, screenshot the trial and ask Hung-Shao Cheng on Slack for more information.

6. To pick up where you left off

  1. You must know what word and which trial you were on
  2. Complete step 3
  3. If you were on the first trial of that word item, then you can just run audioGUI([], word, [], [], 0) but switch out "WORD" with the actual word. For example, audioGUI([], beads, [], [], 0) 
  4. If you were in the middle of that word item, then in the command line, type find(word == trial#) and replace word with the word you are analyzing and replace trial# with the trial you left off on; e.g. find(heeds == 10)
    • The number it gives back is the index in the word structure of the trial you were on, for example, 5.
    • In the command line, type audioGUI([],word(index#:end),[],[],0), but replace "word" with the word you are analyzing and replace index# with the number from the previous step. For example, audioGUI([],heeds(10:end),[],[],0)
  5. Also, keep in mind that for each new participant, the word to trial to index relationship is different because it is randomized

7. Check_dataVals

  1. Run check_dataVals to complete step 7 of the General Analysis Guide
    • Correct trials which fall into the error categories and need fixing.
    • Look for outliers in goodTrials which might not actually be good
    • Use the "reload_dataVals" button 
    • When you are done, click "reload_dataVals" (and "Overwrite") one last time, then exit the GUI.

8. Document your tracking progress

  1. When you are done or have to leave the data, go to the Data Analysis Tracking sheet
  2. Select the vsaGeneralize2 tab at the bottom of the page
  3. Fill in the correct cell or cells for the data you have analyzed



Keywords:
analysis, notes, vsa, gen, generalize, vowel, space, area, formants 
Doc ID:
135764
Owned by:
Hung-Shao C. in SMNG Lab Manual
Created:
2024-02-29
Updated:
2025-08-11
Sites:
Speech Motor Neuroscience Group