我希望允许一个praatscript打开praat对象行。这将允许我打开praat,然后自动允许脚本将对象加载到对象窗口中。
例如,脚本
run_something.praat 1.wav 1.TextGrid 0.1 0.2可以打开praat,然后在音频文件"1.wav“中将编辑器打开到0.1和0.2,这对我来说很容易。
我只是不能事先打开普拉特插入我需要的东西。
现在,我的脚本如下所示:
form Info
text Sound
text Textgrid
real Start
real End
endform
if sound$ != "" and textgrid$ != ""
Read from file: sound$
Read Strings from raw text file: textgrid$
@read_lab()
selectObject: 1, 3
View & Edit
editor = 3
editor: editor
Select: start , end
Zoom to selection
endeditor
endif当然,它会告诉我视图和编辑不能工作,因为GUI没有打开。我不能使用环境,因为它必须在windows和linux上工作。
发布于 2017-06-28 17:38:46
您可以使用--open选项启动Praat .打开你想要的文件。这将在GUI模式下启动Praat,打开指定的文件(和/或脚本):
praat --open sound.wav annotation.TextGrid script.praat但是,如果您想以编程方式向Praat实例发出命令(=不单击任何内容),您可能必须使用森普拉特,它应该可以在运行普拉特的所有平台上使用。
请注意,该页中的编译指令至少对Linux来说有点过时:我能够在我的计算机上用
gcc -std=gnu99 -o sendpraat -DSTAND_ALONE -DUNIX \
`pkg-config --cflags gtk+-2.0 glib-2.0` \
sendpraat.c \
`pkg-config --libs gtk+-2.0 glib-2.0`有了sendpraat,您就必须启动Praat的GUI实例,然后在一个单独的语句中发送脚本的执行:
sendpraat 0 praat \
'runScript: "path/to/your/script", "1.wav", "1.TextGrid", 0.1, 0.2'使用sendpraat的说明可以在普拉特手册上找到。第一个参数是以秒为单位的超时(如果到那时操作尚未完成,则为死),然后是程序的名称,然后是要按顺序运行的命令列表。
据我所知,没有一种简单的方法可以运行单个脚本,在一个步骤中打开Praat 的GUI版本,使该实例执行命令。但我可能错了。
发布于 2019-04-11 18:16:49
对于那些正在与sendpraat作斗争的人:
尝试:
sendpraat praat 'execute "pathtoyourscript"'https://stackoverflow.com/questions/44804843
复制相似问题