3.04. スクリプト(2)応用例:無音区間の挿入
応用例として,別ページの「無音区間の挿入」をスクリプトで実行できるようにしてみましょう。ここでの作業のうちの,「型」の音声を切り分けて[ka](A)と [t]の破裂以降(C)が手作業で切り出せたところから始めます。オブジェクト名はそれぞれ “A”, “C” としておきます。
また,新しいスクリプトを書くための準備として,Objectウィンドウの上メニューからPraat > New Praat scriptを実行し,スクリプトのウィンドウが立ち上がったらClear historyを実行しておきましょう。
(1)無音の作成
ここで行いたいことは,様々な長さの無音区間を作ることです。まず,「無音区間の挿入」のページの方法にしたがって,手動で100 ms の無音を作りましょう。
New > Sound > Create Sound from formula...
ここでName: silence,End time: 0.1,formula: 0とします。
次に,Praatウィンドウ上でEdit > Paste historyを実行します。すると,Praatウィンドウ上に以下のようにペーストされるはずです。
Create Sound from formula: "silence", 1, 0, 0.1, 44100, "0"
さて,このスクリプトを次のように加工してみましょう。
for i from 0 to 20
duration = 0.1 + i * 0.01
Create Sound from formula: "silence", 1, 0, duration, 44100, "0"
endfor
1行目・2行目・4行目が加わるとともに,3行目において 0.1 をdurationという変数に変えたところに注目してください。ここでは,durationという変数の値がforループの中で0.1, 0.11, 0.12... というようにだんだん大きくなるようにしてあります。
上のスクリプトを実行すると,長さのことなる21個の無音ができるはずです。
(2)オブジェクトの選択
オブジェクトを選択するときは,次のようにスクリプトを書きます。この例は,Aという名前のSoundオブジェクトを選択することを意味しています。
select Sound A
複数のオブジェクトを選択する場合は,二つ目以降のオブジェクトについてplusを使います。
select Sound A
plus Sound C
また,個々のオブジェクトは固有のIDを持っています。例えば,先ほど作ったいくつかのsilenceから一つを選び,オブジェクトウィンドウ下段メニューのInfoというボタンを押すと,Object IDを知ることができます。以下の例では50となっています。
この情報を利用すれば,以下のようにオブジェクトを指定することもできます。
select 50
次に,以下の例をみてみましょう。
b = Create Sound from formula: "silence", 1, 0, 0.1, 44100, "0"
select b
先ほどのsilenceをつくるコマンドの前に, “b =” をつけました。このようにすることで,Soundオブジェクトを新しく作るとともに,そのオブジェクトIDをbという変数に代入することができます。もしIDが50であれば,bには50が代入されるというわけです。その次のselect bでは,上の例でいえば,50というIDを持つオブジェクトを選択することになります。
(3)発展させたスクリプト
以上を応用すれば,先ほどの無音作成スクリプトをさらに発展させ、刺激をまとめて作ることができます。
for i from 0 to 20
select Sound A
a = Copy... A_copy
duration = 0.1 + i * 0.01
b = Create Sound from formula: "silence", 1, 0, duration, 44100, "0"
select Sound C
c = Copy... C_copy
select a
plus b
plus c
Concatenate
Rename... stimulus'i'
endfor