5/19/10
1
Praat Scripting Praatの基礎からスクリプティングの入り口まで
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
Praatとは
• 音響音声解析用のソフトウェア – 音声の録音・保存 – 音の高低(Pitch) – 音の強さ(Intensity) – フォルマント(Formant) – スペクトル(Spectrum) – 注釈(TextGrid) – etc. ⇒スクリプトにより自動化・高度化
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
5/19/10
2
音声の録音・保存 - 1 • 必要なもの
– Praat本体 – マイク – プリアンプ(入力が低い場合)
↓マイク
↓電源
[コンピュータのマイク入力]
[コンセント]
↑プリアンプ
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
音声の録音・保存 - 2
↑中央、右にどちらかに設定
↓ゲイン調整
• MIC INはピンに応じて使い分ける。(どちらでもOK)
• 入力時にPEAKランプがつかないようにゲインを調整する。
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
5/19/10
3
音声の録音・保存 - 3 Praat Object Window内の
“New->Record mono Sound…”
をクリック。
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
Praat Object Window
音声の録音・保存 - 4
SoundRecorder Windowが生成されるので、左下にある[Record]を押して録音を開始し、[Stop]で録音を終了する。
この際、Meterが緑の範囲に収まるようにプリアンプのゲインを調整する。
録音が終了したら[Name]を設定し、[Save to list & Close]を押す。
※ 音が小さすぎてもNG!
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
5/19/10
4
音声の録音・保存 - 5
Object listに音声データが入ったら、“Write->Write to WAV file…” を使い、保存する。
ここが Object list
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
ファイルの読み込み ファイルの読み込みは
“Read->Read from file…” から行う。
録音時間が1時間に達するような長いファイルを開く際は
“Read->Open long sound file…” を利用する。
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
5/19/10
5
Edit画面 Editボタンを押すと、オブジェクトの詳細を見ながら解析・編集作業を行うことができる。(図1)
画面が分割されていない場合やスペクトルが表示されていない場合は、メニューバー内の “Spectrum->Show spectrogram”をチェック。
任意のエリアをドラッグし、左下にある[sel]を押すと、選択したエリアが拡大表示される。(図2)
任意のエリアをドラッグし、Ctrl-xで選択エリアを削除できる。
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
↑[sel]ボタンはここにある
音の高低(Pitch) - 1 “Pitch->Show pitch”にチェックをつけると、Pitchが水色の線で表示される。単位:Hz(図1、図2)
“Pitch->Pitch settings”でPitchの表示幅を変更できる。 適当な値は解析対象によって異なるが、75Hz – 500Hzの設定でほぼ問題ない。録音者の性別や声の高さによって変更することもある。(図3)
↑Pitch
図2
図1
図3 Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
5/19/10
6
音の高低(Pitch) - 2 任意の点をクリックすると、その点におけるPitchが下の画面の右端に表示される。(図1) “Pitch->Get Pitch”を行うと、より詳細な値を見ることができる。(図2、図3)
図1
図2
図3
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
音の高低(Pitch) - 3 任意の区間をドラッグすると、その区間におけるPitchの平均値が表示される。Get pitchも同様に平均値の詳細な値を表示する。(図1)
“Pitch->Get minimum pitch/Get maximum pitch”を行うと、その区間におけるPitchの最小値/最大値を取得できる。(図2赤枠)
“Pitch->Pitch listing”を行うと、一定時間ごとのPitchを羅列表示する。(図2青枠、図3)
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
図1
図2
図3
←F0 = Pitch
5/19/10
7
音の高低(Pitch) - 4 “Pitch->Extract visible pitch contour”を行うと、見えている範囲(ズームしていればその範囲だけ)の音調曲線をPitchオブジェクトとして抽出する。(図1、図2)
Object listで任意のSoundオブジェクトを選択した状態で、“Periodicity->To Pitch…”を行うと、Soundオブジェクト全体から音調曲線を抽出する。(図3)
この際に必要となる設定値は基本的に、Time step: 0.0 Pitch floor:75.0 Pitch ceiling 500.0で良い。録音者の性別や声の高さによって変更することもある。
※スクリプトを使った解析では、Sound, Pitch, Intensity, Formant, TextGrid等のオブジェクトを生成し、それらを組み合わせて処理を行うことにより、高度な解析を行うことができる。
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
図1
図2 ↑Pitch オブジェクトが生成された。
図3
音の強さ(Intensity) 操作はPitchとほぼ同じ。
• Show intensity: Intensityの表示(黄色い線)
• 任意の点をクリック:値の表示。単位:dB(緑色)
• Get intensity:詳細値表示
• Intensity settings…:範囲設定(推奨:0 - 100)
• Intensity listing:一定時間ごとの値を表示
• ドラッグによる平均値表示は無い • Extract … contour: Intensityオブジェクト生成
• Praat Object Window->To Intensity…:同上
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
↑Intensity
※これはObject Window
5/19/10
8
フォルマント(Formant) フォルマント:特に母音の解析における重要な要素
操作はPitchとほぼ同じ。
• Show formants: Formantの表示(赤い点) • 横方向に数本の線になっている事に注目 • 下からF1, F2…と呼ぶ。
• F3, F4もあるが、F1とF2が特に重要である。
• 詳細は「音声学概説」等を参照のこと。
• Formant listing:F1~F4の値の表示。単位:Hz • Formant解析は複数の値を同時に取得する必要がある為これが便利。
• 分割画面では赤色で数値を表示。場所は左端。
• Extract … contour: Formantオブジェクト生成
• Praat Object Window->Formants & LPC->To Formant (burg)…:同上
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
F1 F2
F3
※これはObject Window
注釈(TextGrid) - 1
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
TextGridをうまく活用することで、Soundオブジェクトの内容が分かりやすくなるだけでなく、スクリプト使用時に音ごとに解析処理内容を変えると
いったことが容易になる。
TextGridは1つ以上のtierから構成される。 tierは複数の注釈(annotation)から構成される。 tierには、時間的な幅のある注釈を書き込める“interval tier”と、ある一点における注釈を書き込める“point tier”の2種類がある。
“Annotate->To TextGrid…”でTextGridオブジェクトを生成する。 設定画面では1行目に全てのtierの名前を半角スペースで区切って入力し、2行目には、そのうちpoint tierであるものの名前を入力する。
interval tier
point tier
5/19/10
9
注釈(TextGrid) - 2
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
SoundオブジェクトとTextGridオブジェクトの両方を選択(Ctrlで追加選択)した状態でEditボタンを押すと、SoundとTextGridが統合された画面が表示される。(図1)
tierにある ○ をクリックすると、boundaryを作ることができる。(図2)
interval tierにおいては2本のboundaryで囲まれた範囲が注釈エリアになり、point tierにおいてはboundaryがある場所自体が注釈ポイントになる。
注釈エリア/ポイントの内容は、編集したい箇所を選択後、画面上にあるボックスで入力する。(図3)
※tierの名前および注釈内容では特殊記号(発音記号等)が使用できます。詳細はPraat Manual(Ctrl-M)のsymbolの項目を参照のこと。
“please”に注釈をつけた例
図2 図1
図3
注釈(TextGrid) - 3
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
tierを追加するには、メニューバーのTierから追加したいtierに応じて “Add interval tier…”“Add point tier…”を選択。
tierのリネーム、削除等もTierメニューで行える。(図1)
設定項目のPositionは画面左の数字に対応します。(図2)
一番下にStop-Cというinterval tierを追加したところ。(図3)
Position
図1
図2 図3
5/19/10
10
注釈(TextGrid) - 4
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
TextGridオブジェクトはSoundオブジェクトと同様に、ファイルとして書き出しておくと良い。
Edit画面でCtrl-sをするか、Object Windowで TextGridオブジェクトを選択した状態で “Write to text file…”をクリックして保存する。
(PitchやIntensity等も、 “Write to text file…”で出力可能。拡張子は“.Pitch” “.Intensity”等。)
スクリプト - 1
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
スクリプトに記述する命令は、GUIに表示されているもの(つまりこれまで学んできたもの)と殆ど同じ。 文字列操作の方法やif文、ループ文などの書き方さえ覚えれば「スクリプトを書く」こと自体はわりと簡単。
「Object listにある[Sound untitled]の下記の情報を解析し、その内容を表示するスクリプト」の例を右に示す。 ・全体の時間
・Pitchの最大値/最小値/平均値 ・Intensityの最大値/最小値 ※ Sound untitledは既に録音され、listにあるとする。 ※ スクリプトはPraat->Open Praat script…で開く。(下図)
実行結果
5/19/10
11
←Praat Info Windowにある、以前の表示をクリア。
←操作したいObjectを選択。
↑変数の宣言もシンプル。
Objectを複数選択し、Object listから削除。
printlineや文字列操作等の際は、 変数をクォーテーションで囲む。
スクリプト - 2
Copyright © 2010 Junichi Fujinuma, University of Aizu CLR Phonetics Lab All Rights Reserved
おなじ
おなじ
おなじ
値の取得にはTo pitch…/ To Intensity…等によるオブジェクト生成が必要なことに注意。(一度やればOK)
リファレンス
Praat: doing phonetics by computer (公式) http://www.fon.hum.uva.nl/praat/
Mietta’s Praat scripts http://www.helsinki.fi/~lennes/praat-scripts/
Praat Script Archives (University of Iowa) http://www.psychology.uiowa.edu/students/toscano/scriptarchives/
Praat script resources (UCLA) http://www.linguistics.ucla.edu/faciliti/facilities/acoustic/praat.html
Kyuchul Yoon’s Praat Script Archive (Ohio State University) http://www.ling.ohio-state.edu/~kyoon/praat/
Johan Frid – A byteful of air | Praat http://person2.sol.lu.se/JohanFrid/webapps/pmwiki/index.php/Praat/Praat
Praat-Py: Extend Praat for Python Scripting http://razor.occams.info/code/praat-py/