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

时间:2016-01-18 15:34:23

标签: report extract voice praat

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

我的脚本看起来像那样,我打算将它放在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

1 个答案:

答案 0 :(得分:2)

使用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