Это мой первый вопрос, и я делаю все возможное, чтобы быть ясным. Я просмотрел сайт, не найдя прежний вопрос, который мог бы мне помочь.Как я могу установить вложенные петли в Praat для обнаружения начала в целом каталоге?
Я пытаюсь получить скрипт обнаружения начала в praat для цикла для всего каталога. Я вложил сценарий обнаружения начала как внутренний цикл в внешний цикл, проходящий через каждый файл в конкретной библиотеке. Однако я не могу заставить его работать. Я получаю только начало первого файла в моем каталоге. Скрипт обнаружения начала хорошо работает сам по себе, и внешний цикл отлично работает с другими командами, например, «получить интенсивность». Может ли кто-нибудь увидеть, что я делаю неправильно?
Вот что я сделал:
form Get Intensity
sentence Directory .\
comment If you want to analyze all the files, leave this blank
word Base_file_name
comment The name of result file
text textfile intensity_VOT_list.txt
endform
#Print one set of headers
fileappend "'textfile$'" File name'tab$'
fileappend "'textfile$'" 'newline$'
Create Strings as file list... wavlist 'directory$'/'base_file_name$'*.wav
n = Get number of strings
for i from 1 to n
select Strings wavlist
filename$ = Get string... i
Read from file... 'directory$'/'filename$'
soundname$ = selected$ ("Sound")
To Intensity... 100 0
labelline$ = "'soundname$''tab$'"
fileappend "'textfile$'" 'labelline$'
select Intensity 'soundname$'
numberOfFrames = Get number of frames
fileappend "'textfile$'" 'numberOfFrames'
fileappend "'textfile$'" 'newline$'
for i from 1 to numberOfFrames
intensity = Get value in frame: i
if intensity > 40
time = Get time from frame: i
onsetresultline$ = "voice onset time for 'soundname$' is 'tab$''time''tab$'"
fileappend "'textfile$'" 'onsetresultline$'
fileappend "'textfile$'" 'newline$'
exit
endif
endfor
endfor
Я был бы рад за любую помощь. Если вы прочитаете мой вопрос и почувствуете, что он плохо сформулирован, пожалуйста, сообщите мне об этом, чтобы я мог попытаться поправиться. Добросердечно
У вас есть инструкция 'exit' в конце второго цикла' for'. Ваш скрипт существует, как только он встречается с кадром в любом звуке, в котором значение больше 40. Кроме того, вы используете одну и ту же контрольную переменную ('i') дважды. Вам нужно будет использовать разные переменные. – jja