删除特定边界的 Praat 脚本
Praat script to remove specific boundaries
我想知道是否有任何可用的 Praat 脚本可以删除特定层级中两个特定段之间的边界。
例如,如果 Tier1 包含 cars
等词,而 Tier2 包含相应的段 |k|ɑː|r|z|
。如何删除相应目录中所有 TextGrid 文件中 r|z
之间的边界?
提前致谢!
欢迎来到 SO。如果您向我们举例说明您一直在做什么以及为什么它目前不起作用,我们会更容易提供帮助。
是否每个TextGrid 只包含一个词?如果是这样,将其添加到循环文件的脚本中。我在玩具示例中使用了它,但是如果包含该组合的单词数量未知,则会出现问题,因为您将更改要循环的边界数量并最终尝试读取一个间隔不再存在。
# Check all intervals in segment tier:
for i from 1 to numberOfIntervals-1
label$ = Get label of interval... segment_tier 'i'
if label$ = "z"
previous_label$ = Get label of interval... segment_tier 'i'-1
if previous_label$ = "r"
selection_start = Get start point: segment_tier, 'i'
Remove boundary at time: segment_tier, selection_start
endif
# select the TextGrid so we can iterate to the next interval:
select TextGrid 'soundname$'
endif
endfor
在循环到下一个之前,您还需要保存 TextGrid:
select TextGrid 'soundname$'
Save as text file... 'textGrid_directory$''soundname$'.TextGrid
Remove
我想知道是否有任何可用的 Praat 脚本可以删除特定层级中两个特定段之间的边界。
例如,如果 Tier1 包含 cars
等词,而 Tier2 包含相应的段 |k|ɑː|r|z|
。如何删除相应目录中所有 TextGrid 文件中 r|z
之间的边界?
提前致谢!
欢迎来到 SO。如果您向我们举例说明您一直在做什么以及为什么它目前不起作用,我们会更容易提供帮助。
是否每个TextGrid 只包含一个词?如果是这样,将其添加到循环文件的脚本中。我在玩具示例中使用了它,但是如果包含该组合的单词数量未知,则会出现问题,因为您将更改要循环的边界数量并最终尝试读取一个间隔不再存在。
# Check all intervals in segment tier:
for i from 1 to numberOfIntervals-1
label$ = Get label of interval... segment_tier 'i'
if label$ = "z"
previous_label$ = Get label of interval... segment_tier 'i'-1
if previous_label$ = "r"
selection_start = Get start point: segment_tier, 'i'
Remove boundary at time: segment_tier, selection_start
endif
# select the TextGrid so we can iterate to the next interval:
select TextGrid 'soundname$'
endif
endfor
在循环到下一个之前,您还需要保存 TextGrid:
select TextGrid 'soundname$'
Save as text file... 'textGrid_directory$''soundname$'.TextGrid
Remove