我有一个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
答案 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