Praat脚本编程中文教程:Form表单输入参数的使用

分类:Praat
 标签:Praat脚本,Praat中文教程,Praat编程
   修改 | 阅读(1954)| 评论(1)

表单的功能是负责数据采集,也就是接受用户输入的数据,一般会以文本框、下拉框、单选按钮、复选按钮等形式展现。

在Praat脚本编写中,我们有很多参数是不能写固定在程序中的,如果我们要修改参数的话就要到程序里面去改代码,那样非常麻烦,所以我们就应该在脚本程序执行前,让用户输出一定的参数,再根据参数来执行我们写的脚本。

下面来看一段简单的代码:

form Play a sine wave
    real tone_Frequency(Hz) 400
endform
Create Sound as pure tone: "note", 1, 0, 0.3, 44100, tone_Frequency, 0.2, 0.01, 0.01
Play
Remove

这个是上一节(子程序procedures的应用)中的一个例子,创建一个正弦波的音频,然后播放、移除它。在这里,频率就由用户进行输入,保存入“tone_Frequency”这个变量中,变量的命名遵循前面(认识数值变量与字符串变量)说的,变量名的单词间不支持空格,所以我们一般会用下划线表示,后面括号里的内容会忽略不计,如上例中的(Hz)不会计入变量名,所以我们在下面看到的变量名只取“tone_Frequency”。

form表单的一般结构:

form 表单名称
    表单内容(格式:表单字段类型 变量名 默认值)
endform

在上述例子中,变量名“tone_Frequency”前面还有一个单词“real”,这是用来标识表单字段类型的,下面我们就来看看常用的表单字段类型有哪些:

real 数值类型。

positive 数值类型,只能是正数,如果您输入0或者负数,脚本会报错误信息。

integer 数值类型,取整数,如果您输入小数,会按四舍五入方式取值。

natural 数值类型,取正整数,如果您输入小数,会按四舍五入方式取值,如果您输入0或者负数,脚本会报错误信息。

word 字符串类型,取一个单词,不支持空格,如您输入“hello world”,那取值时只会取到“hello”,空格后的“world”会被省略。

sentence 字符串类型,可输入整个句子,一般用于短句输入。

text 字符串类型,一般用于长句输入,使用此类型时,文本输入框前面的标签不会显示在表单上。

boolean 布尔类型,在表单上显示为复选框,取值时取到的是数值类型,复选框选中时为1,不选中时为0。

choice 数值或字符串类型,在表单上显示为单选框。取值从1开始,后面有多少个单选项就依次进行编码,此时取值为数值;取值也可以为每个单选项在表单上显示的标签,此时取值为字符串。

button 结合choice使用,用于列举其中的项。

optionmenu 数值或字符串类型,在表单上显示为下拉框。取值从1开始,后面有多少个下拉项就依次进行编码,此时取值为数值;取值也可以为每个下拉项在表单上显示的标签,此时取值为字符串。

option 结合optionmenu使用,用于列举其中的项。

comment 用于显示一行语句,一般用于提示或说明。


对于每一个字段类型就不单独举例了,下面给一个综合的例子:

form 表单示例
    real realVar -123.456
    positive positiveVar 123.456
    integer integerVar -123
    natural naturalVar 123
    word wordVar hello
    sentence sentenceVar hello world
    text textVar 这是一个长文本框
    boolean booleanVar(选中为1,不选中为0) 1
    choice choiceVar 2
        button 单选项1
        button 单选项2
        button 单选项3
    optionmenu optionmenuVar 1
        option 下拉项1
        option 下拉项2
        option 下拉项3
    comment comment类型这里只用于提示
endform
writeInfoLine: "real: ",realVar
appendInfoLine: "positive: ",positiveVar
appendInfoLine: "integer: ",integerVar
appendInfoLine: "natural: ",naturalVar
appendInfoLine: "word: ",wordVar$
appendInfoLine: "sentence: ",sentenceVar$
appendInfoLine: "text: ",textVar$
appendInfoLine: "boolean: ",booleanVar
appendInfoLine: "choiceVar: 选中第",choiceVar,"项,显示为:",choiceVar$
appendInfoLine: "optionmenuVar: 选中第",optionmenuVar,"项,显示为:",optionmenuVar$

上述例子运行时先会出现一个表单,如下图所示:

点击【OK】按钮执行后得到的结果如下(未修改表单数据,全为默认值):

real: -123.456
positive: 123.456
integer: -123
natural: 123
word: hello
sentence: hello world
text: 这是一个长文本框
boolean: 1
choiceVar: 选中第2项,显示为:单选项2
optionmenuVar: 选中第1项,显示为:下拉项1


原创作品,未经授权不可进行转载。



如您觉得本文对您有帮助,可以赞助博主一杯奶茶吗

    


【海阔天空】评论于:2018-5-13 22:08:01    [回复本评论]

你好,我想问一下,我用praat给一段音频打了标签,如何提取音频的标签呢,谢谢

您的昵称:*
QQ登录(无需注册直接登录可进行回复)
您的邮箱:(填写邮箱,如有回复可进行邮件通知)
验证码:
点击刷新