删除特定边界的 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