Как открыть праат из праатскрипта
Я хотел бы позволить praatscript открыть строку объекта praat. Это позволило бы мне открыть praat, а затем автоматически разрешить скрипту загружать объекты в окно объекта.
например скрипт
run_something.praat 1.wav 1.TextGrid 0.1 0.2
мог открыть праат, а затем открыть редактор до 0.1 и 0.2 в аудиофайле "1.wav" <это легко сделать
Я просто не могу открыть праат заранее, чтобы вставить то, что мне нужно.
сейчас мой сценарий выглядит так:
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
конечно, это скажет мне, что View and Edit не работает, потому что GUI не открыт. Я не могу использовать среду, потому что она должна работать на Windows и Linux
1 ответ
Вы можете начать Praat, используя --open
возможность... открыть файлы, которые вы хотите. Это запустит Praat в режиме GUI с открытыми файлами (и / или скриптами):
praat --open sound.wav annotation.TextGrid script.praat
Но если вы хотите выдавать команды для этого экземпляра 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 вам нужно будет запустить экземпляр Praat с графическим интерфейсом, как вы предпочитаете, а затем, в отдельном выражении, отправить выполнение вашего скрипта:
sendpraat 0 praat \
'runScript: "path/to/your/script", "1.wav", "1.TextGrid", 0.1, 0.2'
Инструкции по использованию sendpraat доступны в руководстве Praat. Первый аргумент - это время ожидания в секундах (=die, если действие к тому времени не завершено), затем имя программы, а затем список команд для последовательного запуска.
Насколько я знаю, не существует простого способа запустить один скрипт, который за один шаг откроет версию Praat с графическим интерфейсом и заставит этот экземпляр Praat выполнить команду. Но я могу ошибаться.
Для тех, кто борется с sendpraat:
пытаться:
sendpraat praat 'execute "pathtoyourscript"'