2017-06-28 78 views
1

我想允許praatscript打開praat對象行。這將允許我打開praat,然後自動允許腳本將對象加載到對象窗口中。如何從praatscript打開praat

例如腳本

run_something.praat 1.wav 1.TextGrid 0.1 0.2 

可以打開普瑞特然後打開音頻文件「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上工作

+0

我不認爲你可以在腳本中打開Praat,但是可以在運行腳本之前從終端打開它。 – Stefano

+0

它仍然給我同樣的錯誤,如果我打開praat在一個終端,並在另一個腳本runt腳本 – badner

+0

錯誤:命令「查看和編輯」不適用於當前選擇。 腳本行245沒有執行或完成: «查看並編輯» – badner

回答

2

您可以使用--open選項啓動Praat以打開您想要的文件。這將在GUI模式下啓動普瑞特,與指定的文件(和/或腳本)開放:

praat --open sound.wav annotation.TextGrid script.praat 

但是,如果你想發出普瑞特編程該實例的命令(=沒有你點擊任何東西),你可能必須使用sendpraat,這應該可以在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可用,你就必須開始一個GUI實例普瑞特的但是你喜歡,然後在另一份聲明中,把你的腳本執行:

sendpraat 0 praat \ 
    'runScript: "path/to/your/script", "1.wav", "1.TextGrid", 0.1, 0.2' 

Instructions for using sendpraat都可以在普瑞特手冊。第一個參數是以秒爲單位的超時(=如果動作未完成,則死亡),然後是程序名稱,然後是按順序運行的命令列表。

據我所知,沒有簡單的方法來運行一個腳本,它將一步打開一個GUI版本的Praat 使該Praat實例執行命令。但我可能是錯的。

+0

它給了我一個窗體中的錯誤。我假設必須有一個特定的方式來傳遞參數與sendpraat,但我找不到任何文檔。 – badner

+0

未知變量: «selective_revision.praat 腳本行1未執行或未完成: «selective_revision.praat» 腳本「/home/cshulby/.praat-dir/message」未完成。 Praat:郵件沒有完全處理。 – badner

+0

我也試過這個:sendpraat praat「runScript:\」plugin_htklabel/selective_revision.praat \「」「/home/cshulby/Desktop/rf_selecionadas/wav/rf_selecionadas0001.wav」「/ home/cshulby/Desktop/rf_selecionadas/lab/rf_selecionadas0001 .lab「」0.1「」0.2「 – badner