2015年02月13日

Praatスクリプト:オブジェクトの選択

Praatスクリプトで複数のオブジェクトを操作する際、現在どのオブジェクトが選択されているかに注意することが重要(オブジェクトタイプによって可能な操作は異なる)。意図するオブジェクトが選択されていない場合、まずそのオブジェクトを選択する必要がある。このとき、selectObjectというコマンドを使うのが現代的(補足:以前はselectというコマンドが使われていた)。オブジェクトの指定方法は二つ:


selectObject: "TextGrid A01F0055-L"    ; …(a) オブジェクトタイプとオブジェクト名で指定
selectObject: 1                        ; …(b) オブジェクトIDで指定


(b)の方法はあまり知られていないようだが、(a)よりも簡単なので、こちらの方をお勧めしたい。オブジェクトIDはオブジェクト生成時に付与されるユニークな数字で、GUIではオブジェクトリストの左側に表示される。

objlst.png
(この例では、オブジェクトID=11、オブジェクトタイプ=LongSound、オブジェクト名=A01F0055-Lのオブジェクトが選択されている)

スクリプト内でオプジェクトIDを取得するには、オプジェクトID用の変数と、オブジェクトを生成するPraatコマンドとを「=」で結ぶ。例えば次のようにすると、左辺の変数(tgID)にオプジェクトIDが代入される。


tgID = Read from file: tgFile$


以下使用例:


form obj manipulation
    sentence tgFile D:/TextGrid/A01F0055-L.TextGrid
    sentence sndFile D:/wav/A01F0055-L.wav
endform

tgID = Read from file: tgFile$
sndID = Open long sound file: sndFile$

# この段階では、LongSoundオブジェクト(最後に生成されたオブジェクト)が
# 選択されている。TextGridオブジェクトを選択するためには…

selectObject: tgID
# (ここでTextGridオブジェクトに対して何らかの処理)

# 以下コメントアウト
#selectObject: tgID, sndID   ; TextGridとLongSoundを同時に選択
#View & Edit                 ; TextGridEditor起動


上のスクリプトのコメントアウト部にあるように、selectObjectでは複数のオブジェクトを指定することができる。


selectObject: tgID, sndID


(補足:以前のPraatでは、複数のオブジェクトを選択するのに、selectコマンドとplusコマンドを使って一つ一つ処理しなければならず、めんどくさかった。)



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

メールアドレス:

ホームページアドレス:

コメント:

×

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