Praatの基本操作(2):TextGridの利用

このページで使うサンプルファイルは以下の通りです。右上に表示されるアイコンをクリックするとGoogle Driveを開くことができます。

Praatには様々な種類のオブジェクトがあります。オブジェクトというのは,オブジェクトリストに現れるもので,今まではSoundというオブジェクトのみを扱ってきました。ここでは,TextGridというオブジェクトを新たに利用してみます。

TextGridというのは,簡単にいえば,Soundの特定の時間をマークし,そこに文字列で情報を付与するものです。

(1)TextGridオブジェクトをつくる

TextGridオブジェクトをつくるための最も一般的な方法は,Soundオブジェクトからつくるというものです。まずSoundオブジェクトを一つ用意しましょう。たとえば,前回つかったta-da.wavを利用してみましょう。

まず,Soundオブジェクトを選択します。そして,右側のボタンのうちのAnnotateを押し,To TextGrid...を選択します。以下のようなウィンドウが現れるはずです。

ここで,All tier names:の部分を,たとえば, tokenにかえ,Which of these are point tiers?の部分は空欄にします。

このようにしてOKを押すと,オブジェクトリストにはTextGridオブジェクトが加わります。

さて,TextGridは,一つ以上のtier(層)から構成されるオブジェクトです。tierには,interval tierとpoint tierという2種類があります。上でAll tier nameにtokenと入力したことで,tokenという名前のtierが作成されました。Which of these are point tiers?を空欄にしたということは,tokenをpoint tierにしない(interval tierにする)ということを意味します。

(2)Interval tierの編集

オブジェクトウィンドウ上でSoundオブジェクトとTextGridオブジェクトの両方を同時に選択し,右側のボタンからEditを押してみてください。以下のようなウィンドウが現れるはずです。

次に、以下のように一つ目の単語のあたりを選択します。そしてEnterキーを押します。

上のように,token tierにおいて,選択した範囲の始端と終端に境界が挿入されるはずです。この境界で挟まれた区間には,テキストを入力することができます。たとえば,ta1と入力してみましょう。

このように,interval tierは,境界(boundary)を付与し,境界に挟まれた区間(interval)にラベルを付与することができるようになっています。

さて,上と同様にして,6つの発音それぞれ(これを「トークン」と呼ぶことがあります)に対して境界をつけ,テキストを入力してみましょう。

境界の位置をずらしたかったら、移動させたい境界をクリックし(選択状態の境界は赤い線になります)、ドラッグすることで移動できます。

また、一度入力した境界を削除したいときは,削除したい境界を選択した状態で上部のメニューからBoundary > Removeを選びます。ショートカットのAlt-Backspaceでも同じことができます。

(3)トークンの切り出し

TextGridを利用すると、長い音声ファイルの一部分を切り出してSoundオブジェクトにしたり、保存したりすることができます。

上で作成したTextGridのうちの切り出したいトークンの部分をクリックしましょう。その上で、上部のメニューから Sound > Extract selected sound (time from 0)... を選択すると、選択部分が独立したSoundオブジェクトとして、オブジェクトウィンドウに追加されます。

また、トークンを選択した上で File > Save selected file as WAV file... を選ぶと、選択部分を独立したファイル(WAV形式)として保存できます。

(4) Point tier

次にPoint tierの利用方法についてみていきます。

ここでは,前回学んだVOTを例にとり、破裂音のどこで破裂が生じ,どこで声帯振動が開始しているかを記録する上で、TextGridのPointTierを利用しましょう。

オブジェクトウィンドウに戻り、TextGridオブジェクトの作成をあらためてやってみます。先ほどと同様、Soundを選択した状態で、Annotate > To TextGrid... と進み、以下のように入力しましょう。ここでは、All tier namesにtokenのほかにeventと入力し、Which of these are point tiersにeventと入力します。これにより、eventという名前のPointTierを作ることができます。

今回は、スペクトログラムの下に層が二つできます。左の方の1という数字の脇に指印があるのを確認してください。これは,1つめのtierがアクティブになっている(つまり,編集できる状態になっている)ことを意味しています。(もし2のほうに指印がついていたら,1の周辺をクリックして1の脇に指印が来るようにしてください。)確認したら,先ほどのようにtoken tierにトークンの境界を入れ、テキスト(ラベル)を入力しましょう。

次に、2番目の層のどこかをクリックし,赤い指印が2番目の層を指すようにしてみてください。そして,破裂と声帯振動開始の時刻にラベルを付与していきます。(必要に応じてスペクトログラムを拡大するとやりやすいかもしれません。)一つ目のトークンの破裂の時刻にカーソルをあて,Enterを押してみてください。そして,そこに何かラベルを入力しましょう。たとえば,破裂(burst)の頭文字をとってbと入力してみましょう。

point tierはこのように,時刻に対してラベルを付与できるようになっています。

同様にして,声帯振動(voice)の開始点にvというラベルをふりましょう。

上のように,典型的な無声破裂音ではbがvより前に,典型的な有声破裂音ではvがbの前にラベルされるはずです。このようにして,全てのトークンに対してbとvのラベルをふっていきましょう。

TexGridオブジェクトを用いると,このようにして音声に対してラベルをふり記録をすることができます。

ラベルにカーソルをあてれば,上のほうに赤い字で時刻(上の例では1.005959,つまり,このSoundオブジェクトの始点を0としたとき,1.005959秒後という意味)が表示されます。個々のトークンについて,vの時刻からbの時刻を引くという計算をすれば,VOTの値を知ることができます。

    補足:こういうふうに一つ一つ計算するのはめんどくさいと感じるかもしれません。スクリプトを書くことで,時刻を求め引き算をするという作業を自動化することができます。スクリプトに関する説明はこちら

(5)TextGridの保存と読み込み

記録したTextGridは保存しておくと,後で改めて分析をするときに便利です。

上で編集したTextGridは閉じてしまってもかまいません。情報はTextGridオブジェクトの中に残っています。このTextGridオブジェクトを保存すれば,後で改めて開くことができます。

オブジェクトリスト上のTextGridオブジェクトを選択しましょう。そして,上部メニューからSave -> Save as text file...を選択します。これによって保存することができます。

保存したTextGridを読み込むときは,同じく上部メニューからOpen -> Read from file...を選択し,保存してあるTextGridを選択します。