2015年02月14日

Praatスクリプト:オブジェクトの削除

前回の記事(「Praatスクリプト:オブジェクトの選択」)の続き。大量のオブジェクトをオブジェクトリストにため込んでいくと、いつしかメモリ不足に陥ってしまう。これを避けるため、処理が済んだオブジェクトは、次の処理に進む前に削除するとよい。スクリプト内でのオブジェクトの削除にはremoveObjectを用いる(のがモダンなやり方)。removeObjectの引数にはオブジェクトIDを指定する(オブジェクトIDの取得方法は前回の記事を参照)。


# オブジェクトID=tgIDのオブジェクトを削除(tgIDは変数)
removeObject: tgID


前回取り上げたselectObjectと同様、複数のオブジェクトの指定が可能。


# オブジェクトIDがtgIDおよびsndIDであるオブジェクトを削除(tgID, sndIDは変数)
removeObject: tgID, sndID


また、selectObjectと同様、"オブジェクトタイプ オブジェクト名"での指定も可能。しかし、上の例のようにオブジェクトIDでの指定の方が扱いやすいと思われる。


# "オブジェクトタイプ オブジェクト名"での指定;使い勝手はよくない
removeObject: "TextGrid A01F0055-L"


昔のPraat(5.3.47およびそれ以前)では、オブジェクトの削除にRemoveというコマンドを使用していた。これは選択されているオブジェクトを削除するコマンドで、多くの場合select(オブジェクトを選択するための昔のコマンド)とともに用いられた(Removeコマンド自体は引数を取らない)。これに対しremoveObjectは、削除したいオブジェクトを引数に指定するだけでよく、削除対象とするオブジェクトをあらかじめ選択しておく必要はない。昔を知るものにとって、これは便利!



posted by ken at 08:39| Comment(0) | Praat | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。