Praat脚本:如何提取彼此对应的不同层的间隔?
Praat scripting: How to extract intervals of different tiers corresponding to each other?
我有一个包含 2 层的 TextGrid 文件,一层对应于单词,另一层对应于音节。我已经在我的 table 中创建了一列音节,现在我需要创建一个包含单词的列,其中每个音节应对应于它所属的单词。所以结果应该是这样的:
例如这是我的句子。
This
is
my
sentence
sentence
(不明白的地方我可以尽量解释的更透彻)
这就是我目前所拥有的。它有效,但需要一些修改。
writeInfo: ""
selectObject: "TextGrid example"
num = Get number of intervals: 2 #for the syllable tier
number = Get number of intervals: 1 #for the word tier
for m from 1 to num
ends = Get end time of interval: 2, m
for n from 1 to number
word$ = Get label of interval: 1, n
endw = Get end time of interval: 1, n
if ends == endw
appendInfoLine: word$
endif
endfor
endfor
这应该有效。它循环遍历每个音节,得到对应音程在词层上的标签。它假定没有空间隔。如果您需要做进一步的分析,您可以使用 writeFile
和 appenFileLine
并写入文件而不是信息 window.
writeInfo: ""
selectObject: "TextGrid example"
num = Get number of intervals: 2 #for the syllable tier
for m from 1 to num
syllable$ = Get label of interval: 2, m
syllable_start = Get start time of interval: 2, m
word = Get interval at time: 1, syllable_start
word$ = Get label of interval: 1, word
appendInfoLine: "'word$','syllable$'"
endfor
我有一个包含 2 层的 TextGrid 文件,一层对应于单词,另一层对应于音节。我已经在我的 table 中创建了一列音节,现在我需要创建一个包含单词的列,其中每个音节应对应于它所属的单词。所以结果应该是这样的:
例如这是我的句子。
This
is
my
sentence
sentence
(不明白的地方我可以尽量解释的更透彻)
这就是我目前所拥有的。它有效,但需要一些修改。
writeInfo: ""
selectObject: "TextGrid example"
num = Get number of intervals: 2 #for the syllable tier
number = Get number of intervals: 1 #for the word tier
for m from 1 to num
ends = Get end time of interval: 2, m
for n from 1 to number
word$ = Get label of interval: 1, n
endw = Get end time of interval: 1, n
if ends == endw
appendInfoLine: word$
endif
endfor
endfor
这应该有效。它循环遍历每个音节,得到对应音程在词层上的标签。它假定没有空间隔。如果您需要做进一步的分析,您可以使用 writeFile
和 appenFileLine
并写入文件而不是信息 window.
writeInfo: ""
selectObject: "TextGrid example"
num = Get number of intervals: 2 #for the syllable tier
for m from 1 to num
syllable$ = Get label of interval: 2, m
syllable_start = Get start time of interval: 2, m
word = Get interval at time: 1, syllable_start
word$ = Get label of interval: 1, word
appendInfoLine: "'word$','syllable$'"
endfor