Praat による音声分析入門:音声を「見て」みよう Introduction to Praat: Let's take a look at sounds
担当: 山本 勝巳(流通科学大学) *当日の WS では時間の制約もあり,予定していたほどの実作業を体験いただくことができませんでした。 以下の内容で擬似体験いただけましたら幸いです。作業ごとの□にチェックを入れながら読んでいただく と,いいかと思います(Dec/01/'14 作成: ver. 1.1.4)。 □1. Praat を用いた音声分析手順 STEP 1: 音声ファイルの読み込み STEP 2: 分節 STEP 3: 探索・処理 STEP 4: データの書き出し・視覚化 分析の再現性を重視したり共同作業が必要な場合にはこのようなパスになるかと思います。 なおSTEP 2 での分析は Editor 上で,STEP 3 での分析は Dynamic menu から行うことを
想定しています。いくつかの音響特徴の分析ではこの2 つで出てくる数値が異なる可能性
があります(FAQ: Pitch analysis http://goo.gl/R65La)。
また,音声加工を行う場合には事前に音響分析が必要だと考えてください。
2. はじめに:
□(1) Praat とは: ToBI: ToBI Annotation Environments(ToBI Annotation Environments http://goo.gl/Od3sT )での紹介
Pros: ・currently the standard tool for speech processing ・better documented
・there are many useful script libraries
・has an embedded scripting language that facilitates many tasks Cons: ・both its user interface and its scripting language are non-standard, unintuitive, and often inconsistent
・□script とは:ユーザが望む処理を一括して行うためのマクロのよう なものと考えてください。
□引用について:
Boersma, Paul & Weenink, David (2014). Praat: doing phonetics by computer [Computer program]. Version 5.4.01, retrieved 9 November 2014 from http://www.praat.org/
といった表記が望ましい(FAQ: How to cite Praat http://goo.gl/XEo0o)。 3. 実際の操作 STEP 1: Praat の起動・いろいろなファイルの読み込み・終了 □(1) Praat の起動・終了 □起動: Praat のアプリケーションアイコンをクリックして起動。 □終了: Praat のトップメニューから Quit を選びます。 *この時オブジェクトウィンドウにファイルが残っていると,保存するかどうか確認されま す(confirm Quit: You have objects in your list! Do you still want to quit Praat?という メッセージが出ます)。保存の必要がなければ[OK]を押して終了してください。
□*今回は全てオリジナルファイルがありますから,ここでは[OK]を押していったん終了し てみます。
□(2) 改めて Praat を立ち上げて,STEP01 フォルダ内の以下のファイルを読み込んでみま す。[Open] - [Read from file...]です。
□sample01_sentence.wav
□sample01_sentence_stereo.wav □sample01_sentence.Pitch □sample01_sentence.Intensity
*shift キーを押しながら選択すると連続する複数ファイルを,Ctrl キー(Windows), command キー(Mac)を押しながらファイル選択をすると離れた場所の複数ファイルを, それぞれ選ぶことができます。 □(3) 無事読み込めると Object ウィンドウに □Sound sample01_sentence □Sound sample01_sentence_stereo □Pitch sample01_sentence □Intensity sample01_sentence という4 つのファイル名が現れます(順序はこの限りではありません)。 (4) Sound sample01_sentence_stereo はステレオ音声です。
□確認方法: Sound sample01_sentence_stereo ファイルを選択した状態で,右の Dynamic menu から[View & Edit]を押してみてください。新しくウィンドウが開いて,上部に音声
波形が2 つ表示されます。音声分析にはステレオ音声は不向きなので,以後の処理のため
にPraat 内でいったん mono に変換してみます。
□方法: Sound sample01_sentence_stereo ファイルを選択して Dynamic menu から Convert - > Convert to mono
□Object ウィンドウに Sound sample01_sentence_stereo_mono という新しいファイルが できてるのを確認してください。
□(5)ここまでの作業が済んだら次のステップに進む前にいったん全てのファイルを選択し て左下の[Remove]ボタンを押して Object ウィンドウをすっきりさせておきます。
STEP 2: 音声を読み込んで分節する
□(1) STEP02 フォルダ内の以下のファイルを読み込んでみます。[Open] - [Read from file...]です。 □sample02_words.wav □sample02_words_sample.TextGrid □sample03_LongSentences.wav □sample03_LongSentences.TextGrid □Object ウィンドウに □Sound sample02_words □Sound sample03_LongSentences □TextGrid sample02_words_sample □TextGrid sample03_LongSentences という4 つのファイル名が現れたのを確認してください(順序はこの限りではありません)。 □(2) Sound sample02_words という Sound オブジェクトを選んで Annotate -> To TextGrid…
□(3) ウィンドウが開いて All tier names と Which of these are point tiers?ときか れるので,All tier names に segments words と入れます。各層の間は半角スペース)。 Which of these are point tiers?には,ブランクのままにします。
*今回は利用しませんが,Pitch 最高時点のような 1 点をマークする場合には,tier に pitch を加えて新規作成の上,次の行でpoint tiers に指定します。
□(4) Sound sample02_words という Sound オブジェクトと TextGrid sample02_words と いうTextGrid オブジェクトの 2 つを選択して View & Edit
□(5) Annotation 用のウィンドウが新規に開きます。
□*先ほど入力した segments, words という tier(s)名が赤で囲んだ部分に表示されているこ とを確認してください。
□*Tier の追加・削除・名前の変更は Tier メニューから行えます。
□このウィンドウ内では左下の[all], [in], [out], [sel], [bak]というボタンで波形全体・Zoom In・Zoom Out・選択部分の表示・選択の Undo が可能です。試してみてください。
□音声を聞くには下の[Total duration], [Visible Part]やその上の線で区切られた部分をク リックします。試してみてください。
□(6) このウィンドウで View - Show analyses... から必要な情報(今回は Show spectrogram・Show pitch・Show intensity・Show formants にしましょう)にチェック を入れてOK。
今回はpit, bit, tit, dit, kit, git, fit, vit という 8 つの発話の合成音声を用意しました。 □(7) 一つ目の pit 全体が収まるように[in]や[sel]で準備します。
□(8) 単語の最初と最後はどちらの tier にも区切りが必要ですから,ポイントを決めたら Boundary -> Add on all tiers とします。
*入力した Boundary を削除するには,削除したい Boundary を選択して Boundary -> Remove。
□(9) 色が変わっている tier が “selected tier” です。words tier を選択して,選択された 状態にしてください。
□TextGridEditor 画面のメニュー下に文字入力用ウィンドウが開いているので,pit と入力 します(矢印で示したスペース)。
□(10) 次に segments tier を選択して,自分なりの基準で[p]の終了・[i]の終了・閉鎖・[t] を決定して,Boundary -> Add on selected tier してからテキストを入力してみてください。 *IPA の利用については「Help」メニューから Phonetic symbols で検索してください(フ ォントのインストールが必要です)。
*表示している音響特徴を手がかりとする場合には,次のようにすると選択部分の数値を表 示させることができます。
□(a) Pitch - Pitch listing / Get pitch / Get minimum pitch / Get maximum pitch / Move cursor to minimum pitch / Move cursor to maximum pitch
□(b) Intensity - Intensity listing / Get intensity
formant / Get third formant / Get fourth formant / Get formant... (入 力するのは「第X フォルマントの部分」)
□(d) Spectrum -
□(11) ラベリングデータの保存: このウィンドウの File -> Save TextGrid as text file…で適当な場所に適当な名前で保存してください。
*他の 7 つの単語についても同じような作業をしてみるといいと思います。 □なお,改めてObject ウィンドウから sound sample02_words, TextGrid
sample02_words_sample という 2 つを選択して View & Edit すると WS 担当者が大ざっ ぱにannotation したものが表示されます。ご自身で区切られたものと見比べてみてくださ い。 □(12) ここまでの作業が済んだら次のステップに進む前にいったん全てのファイルを選択 して左下の[Remove]ボタンを押して Object ウィンドウをすっきりさせておきましょう。 □*ご自分で作成した TextGrid データが保存されていることを確認してください。 □(13) もう一度 STEP02 フォルダ内の sample03_LongSentences.wav・ sample03_LongSentences.TextGrid という 2 つのファイルを開きます。これらは Object ウィンドウ内ではSound sample03_LongSentences・TextGrid sample03_LongSentences という名前で表示されます。
(14) 先ほどと同じように 2 つのファイルを選択して,View & Edit。 *このように長い音声の場合,分析結果が表示されません。
□[in]ボタンを何回か押して短い範囲にするか,
□View -> Show analyses...から Longest analysis (s): を大きな数字に変更します。 □(15) [all]ボタンを押して,annotation を確認すると 5 つの文と間の空白部でできている ことが分かります。
□確認したらこのウィンドウを閉じます。
Extract non-empty intervals…/ Extract intervals where…でファイルに書き出
します。*必要に応じて使い分けてください。
□今回は文と文の間の空白を抜くためにExtract non-empty intervals...を選びます。 □(17) ウィンドウが開くので Tier number に希望の tier を番号で指定します。今回は Sentence レベルの tier しか作っていないので 1 と入力します。また今回は Preserve times のチェックは外しましょう。*下の図とは設定が異なります。
*なお,Preserve times にチェックすると通しの時間軸情報が利用されます。チェックして 書き出したデータとチェックせずに書き出したデータについて以下のステップで時間情報 の探索結果が異なることを確認するといいと思います。
□(18) 新しく Sound Sentence1, Sound Sentence2, Sound Sentence3, Sound Sentence4, Sound Sentence5 という 5 つのファイルが Object ウィンドウに入りました。上で開いてお いたSound sample03_LongSentences, TextGrid sample03_LongSentences という 2 つの ファイルを選択して左下から[Remove]しておきます。
STEP 3: 分節した音声に対する処理・探索
ここでは,STEP 2 で書き出した Sound Sentence1 を使って duration, pitch, intensity の 情報を確認します。
□(1) Duration: Objects ウィンドウに開かれた Sound Sentence1 を選択して Query - > Query time domain… > 必要な情報を選択
Get start time: セグメントの開始点 Get end time: セグメントの終了点 Get total duration: セグメントの長さ
□(2) Pitch: Objects ウィンドウに開かれた Sound Sentence1 を選択して Analyse periodicity - > To pitch...
#オプション指定可(Time step (s)が 0.0 だと 10ms ごとに計算します。Pitch floor, Pitch ceiling について Praat の Help では男性: 75 - 300 Hz・女性: 100 - 500 Hz を推奨していま す)。
*ピッチ抽出のデフォルトは 10ms ごと(変更可)で,分析窓長は中心から前後に 20ms ず つの計40ms ですから,あまり短いセグメントに対する F0 抽出は効率が悪くなります。src: Script for listing F0 statistics goo.gl/uFfacn
□でき上がったPitch Sentence1 を選択して Query - > 必要な情報を選択
Get mean...: 平均ピッチ値 Get minimum...: ピッチの最低値 Get maximum...: ピッチの最高値
Get time of minimum...: 最低値の時間情報 Get time of maximum...: 最高値の時間情報
□(3) Intensity: Objects ウ ィ ン ド ウ に 開 か れ た Sound Sentence1 を 選 択 し て To Intensity…
#オプション指定可
□でき上がったIntensity Sentence1 を選択して Query - > 必要な情報を選択
Get minimum...: Intensity の最小値 Get maximum...: Intensity の最大値
Get time of minimum...: 最小値の時間情報 Get time of maximum...: 最大値の時間情報
*以上見たように基本的には 1 アクションに対して 1 リザルトが返ります。 *ここで簡単に答え合わせ。WS 担当者の手元での一部音響特性の抽出結果を並べておきます。 セグメント(文)の開始点: 0 sec セグメント(文)の終了点: 8.897 sec セグメント(文)の長さ: 8.897 sec F0 の最低値: 77 Hz F0 の最高値: 208 Hz F0 最低値の時間情報: 4.028 sec F0 最高値の時間情報: 4.823 sec *同様に Sentence[2-5]についても処理を行ってみるといいと思います。
次のステップに進む前にSentence[1-5], Pitch Sentence1, Intensity Sentence1 以外のファ イルを[Remove]しておきます。
STEP 4: 視覚化
音声の特徴を図示します。ここではまずPitch を例にします。
□(1) 描画ウィンドウ上で枠を広げて適当な大きさのフレームを決めます。
ウィンドウでは特に変更はしません。
*同じように作成した他の object を描画することもできます。
*音声波形と Annotation データを描画する時にはフレームを決めてから,STEP 2 で作成 したAnnotation データを表示して,File -> Draw visible sound and Textgrid を選びます。 □(3) 希望する図ができたら描画ウィンドウで File -> Save as EPS file -> Save as EPS file...(Mac),File -> Save as Windows metafile...(Windows)として適当なファイル名 で保存します。
□(4) Word などの別アプリケーションで作成した文書に挿入することができます。 Tips: 同一の Sound オブジェクトの 2 つの時間軸情報(Pitch と Intensity 等)を 1 枚に収 めるには: 今回は Sentence1 の Pitch と Intensity を 1 枚に収めてみます
□(1) 描画スペースを指定して,1 つめの音響特性(今回は Pitch)を普通に描画。 □(2) Pen > Dotted line に変更します。
□(3) 2 つめ(今回は Intensity)を指定する前に Margins > Text right…で Intensity (dB) と入力します(Far にチェック)。
□(4) Intensity を描画します(Garnish のチェックは外した方がよい)。
□(5) Margins > Marks > Marks right… で以下のように指定します: Number of marks: 6, Write numbers にチェック,Draw ticks・Draw dotted lines のチェックを外す。 Tips: 異なる Sound オブジェクトの Pitch 情報を 1 枚に収めるには: 今回は Sentence1 と Sentence3 の描画を 1 枚に収めてみます
□(1) Object ウィンドウで Sentence1, Sentence3 をそれぞれ選んで[Info]ボタンをクリック してTotal duration を確認します(Sentence1: 8.897 sec, Sentence3: 14.011 sec)。 □(2) Sentence1, Sentence3 からそれぞれ Pitch オブジェクトを作ります。
□(3) Pitch Sentence1 を選んで Draw...。次の設定画面で Time range (s): 0.0 15.0
とします。*時間軸を最長のものに合わせます。 □(4) Pen > Dotted line に変更します。
□(5) Pitch Sentence3 を選んで Draw...。次の設定画面で Time range (s): 0.0 15.0
となっているのを確認(Garnish のチェックは外します)。
これで0-15 秒の範囲で 2 つのピッチ曲線が描画されます。発音練習の Before & After とい った報告に利用できると思います。