从语音报告中提取一个值的 Praat 脚本

Praat script to extract one value from voice report

我有一个 praat 脚本,其中为一个对象创建了一个 pitch 对象和一个点过程。然后将这 2 个与我的初始对象 returns 结合起来,得到语音报告。我只想提取某些字段的值并将它们保存在文件中,但我找不到方法。是否可以或者我应该只生成报告然后用另一种编程语言编写脚本来提取它们?

我的脚本看起来像那样,我打算将它放在一个 for 循环中以 运行 用于多个对象。

sound = selectObject: 1
pitch = To Pitch (cc)... 0.01 50 15 no 0.03 0.45 0.01 0.35 0.14 300
plus sound
pulses = To PointProcess (cc)
plus sound
plus pitch
voiceReport$ = Voice report... 0 0 50 300 1.3 1.6 0.03 0.45

使用 extractWord$()extractLine$()extractNumber() string functions

它们分别从字符串(在本例中为 voiceReport$)中提取指定字符串后面的单词、行或数字。您可以使用指定的字符串来标识您想要的语音报告中的字段。

这是一个例子:

synth = Create SpeechSynthesizer: "English", "default"
sound = To Sound: "This is some text.", "no"
pitch = To Pitch (cc)... 0.01 50 15 no 0.03 0.45 0.01 0.35 0.14 300

selectObject: sound, pitch
pulses = To PointProcess (cc)

selectObject: sound, pulses, pitch
voiceReport$ = Voice report... 0 0 50 300 1.3 1.6 0.03 0.45

total_pulses = extractNumber(voiceReport$, "Number of pulses:")

writeInfoLine: "Found ", total_pulses, " pulses"

removeObject: synth, sound, pitch, pulses