I'm new to Praat scripting and I'm trying to extract Voice Report, but for a specific start/end time in the sound file instead of the whole file. From the handbook, this example is given:
voiceReport$ = Voice report: 0, 0, 75, 500, 1.3, 1.6, 0.03, 0.45
jitter = extractNumber (voiceReport$, "Jitter (local): ")
shimmer = extractNumber (voiceReport$, "Shimmer (local): ")
writeInfoLine: "Jitter = ", percent$ (jitter, 3), ", shimmer = ", percent$ (shimmer, 3)
This runs the voice report for the whole file.
From some other helpful examples, I was able to put together the following script which creates a TextGrid with "silent" and "sounding" tiers. I would like to run Voice Report on each of the sounding rows (beginsound and endsound are the markers).
form analysis
sentence inputFile
endform
sound = Read from file: inputFile$
selectObject: sound
soundname$ = selected$("Sound")
soundid = selected("Sound")
To TextGrid (silences)... 60 0.3 0.1 silent sounding
textgridid = selected("TextGrid")
select 'textgridid'
silencetierid = Extract tier... 1
silencetableid = Down to TableOfReal... sounding
nsounding = Get number of rows
npauses = 'nsounding'
speakingtot = 0
for ipause from 1 to npauses
beginsound = Get value... 'ipause' 1
endsound = Get value... 'ipause' 2
speakingdur = 'endsound' - 'beginsound'
speakingtot = 'speakingdur' + 'speakingtot'
printline sounding 'beginsound' 'endsound'
comment How to run Voice Report between beginsound and endsound?
endfor
From what I understand, Voice Report can be run on either a TextGrid selection, or on a selection of Sound + Pitch + PointProcess objects. I'm not sure how I can add the Voice Report command to my for loop here. Any help/direction is much appreciated. Thanks.