0

我正在尝试制作一个从文本网格(音素)的每个间隔中提取抖动和闪光值的 praatscript。

我在遍历间隔之前定义了所有必要的对象,然后在每个间隔调用 jitter 或 shimmer 。所有 jitter 函数都可以正常工作,但 shimmer 函数会产生错误:

“命令“获取微光(本地)...”不适用于当前选择。”

我无法弄清楚这是什么原因。我看不出抖动适用于选择而不是微光的原因。抄本如下。

select Sound 'thisSound$'
To Pitch (ac): 0, 100, 15, "yes", 0.03, 0.45, 0.01, 0.35, 0.14, 500
select Sound 'thisSound$'
To PointProcess (periodic, cc)... 100 500
select Sound 'thisSound$'
To Harmonicity (cc)... 0.01 100 0.1 1

# Loop through each interval on the phoneme tier.
for thisInterval from 1 to numberOfPhonemes
    # Get the label of the interval
    select TextGrid 'thisTextGrid$'
    thisPhoneme$ = Get label of interval: 1, thisInterval
    
    # Jitter measurements
    select PointProcess 'thisSound$'
    meanlocaljitter = Get jitter (local)... thisPhonemeStartTime  thisPhonemeEndTime  0.0001 0.02 1.3

    select PointProcess 'thisSound$'
    meanlocalshimmer =  Get shimmer (local)... thisPhonemeStartTime thisPhonemeEndTime 0.0001 0.02 1.3 1.6

我试过不重新选择 PointProcess。我也尝试过其他的微光功能变体但没有成功。我不明白为什么如果抖动命令可以,微光命令不能在选择上运行?

谢谢你的帮助!

4

1 回答 1

0

对于 shimmer 命令,您需要选择一个声音对象和一个点处理对象。

因此,在运行 shimmer 命令的行之前添加如下内容:

selectObject: "Sound 'thisSound$'", "PointProcess 'thisSound$'"
于 2021-08-13T15:26:29.887 回答