2017-06-28 12 views
1

Je voudrais permettre à un praatscript d'ouvrir la ligne d'objet praat. Cela me permettrait d'ouvrir praat, puis d'autoriser automatiquement le script à charger des objets dans la fenêtre de l'objet.comment ouvrir praat à partir d'un praatscript

par exemple le script

run_something.praat 1.wav 1.TextGrid 0.1 0.2 

pourrait ouvrir praat puis ouvrez l'éditeur à 0,1 et 0,2 dans le fichier audio « 1.wav » < cela est facile pour moi de faire

Je viens Je ne peux pas être ouvert avant d'insérer ce dont j'ai besoin.

droite semble maintenant mon script comme ceci:

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 

Bien sûr, il me dira que View et Edit ne fonctionne pas parce que l'interface graphique est pas ouvert. Je ne peux pas utiliser les environnements car il doit fonctionner sous Windows et Linux

+0

Je ne pense pas que vous puissiez ouvrir Praat depuis un script, mais vous pouvez l'ouvrir à partir du terminal avant d'exécuter le script. – Stefano

+0

il me donne toujours la même erreur si j'ouvre praat dans un terminal et runt le script dans un autre – badner

+0

Erreur: commande "View & Edit" pas disponible pour la sélection en cours. Ligne d'écriture 245 non effectuée ou terminée: «Afficher et modifier» – badner

Répondre

2

Vous pouvez démarrer Praat en utilisant l'option --open pour ... ouvrir les fichiers que vous voulez. Cela va démarrer Praat en mode graphique, avec les fichiers spécifiés (et/ou scripts):

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

Mais si vous voulez donner des ordres à cette instance de Praat programme (= sans vous en cliquant sur quoi que ce soit), vous Il faudra probablement utiliser sendpraat, qui devrait être utilisable sur toutes les plates-formes où Praat fonctionne.

Notez que les instructions de compilation dans cette page sont un peu dépassées pour Linux au moins: j'ai pu compiler sur ma machine avec

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` 

Avec sendpraat disponibles, vous devrez démarrer une instance GUI de cependant que vous préférez Praat, puis, dans une déclaration distincte, envoyez l'exécution de votre script:

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

Instructions for using sendpraat sont disponibles sur le manuel Praat. Le premier argument est un timeout en secondes (= die si l'action n'est pas terminée d'ici là), puis le nom du programme, puis une liste de commandes à exécuter séquentiellement. Pour autant que je sache, il n'existe pas de moyen simple d'exécuter un seul script qui, en une seule étape, ouvrira une version GUI de Praat et pour que cette instance de Praat exécute une commande. Mais j'ai peut-être tort.

+0

Il me donne une erreur dans le formulaire. Je suppose qu'il doit y avoir un moyen spécifique de passer des arguments avec sendpraat, mais je ne trouve aucune documentation à ce sujet. – badner

+0

Variable inconnue: «selective_revision.praat Ligne de script 1 non effectuée ou terminée: « selective_revision.praat » Le script« /home/cshulby/.praat-dir/message »n'est pas terminé. Praat: message non complètement géré. – badner

+0

J'ai aussi essayé ceci: sendpraat praat "runScript: \" plugin_htklabel/selective_revision.praat \ "" "/home/cshulby/Desktop/rf_selecionadas/wav/rf_selecionadas0001.wav" "/ home/cshulby/Bureau/rf_selecionadas/lab/rf_selecionadas0001 .lab "" 0.1 "" 0.2 " – badner