【问题标题】:Praat script to extract one value from voice report从语音报告中提取一个值的 Praat 脚本
【发布时间】:2016-01-19 19:01:54
【问题描述】:

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

【问题讨论】:

    标签: report extract voice praat


    【解决方案1】:

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

    【讨论】:

    • 感谢您的帮助。
    • 如果答案有帮助,除了将其标记为已接受(您已经这样做)之外,请考虑对其进行投票。
    • 声望不够,抱歉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    相关资源
    最近更新 更多