この記事にはGoogle Adsenseによる広告が含まれています。

はじめに

日本語の「型」と「買った」は音声学的にどう異なるでしょうか?「型」の音声を加工したら,「買った」に近づけることができるでしょうか?

一般に,促音の直後が閉鎖音である場合,促音が入ると閉鎖時間が長くなる傾向にあります。このことをふまえると,「型」の/t/の閉鎖区間を長くするような加工を加えることで,「買った」に近づけられるという予測が成り立ちます。また,閉鎖区間の長さを様々に変え,「型」と「買った」のどちらに聞こえるかという実験ができるでしょう。

閉鎖区間の長さを変えるという加工は,Praat上で以下の手順で行うことができます。

  • A:「型」の音声を[ka],B: [t]の閉鎖区間,C: [t]の破裂以降という三つに切り分ける
  • Bを任意の長さの無音と置き換える
  • A,無音,Cをつなげる

なお,ここでは以下の音声ファイルの最初の発話(「型」)を用いることにします。

音声の切り分け

TextGridの編集

まず,上の音声ファイルを読み込み,最初の発話(「型」)を上に示した三つのパート(A:「型」の音声を[ka],B: [t]の閉鎖区間,C: [t]の破裂以降)に切り分けてみましょう。Praatでの音声の切り分けの方法については「Praatの基本操作(7)音声の切り出し」に説明がありますが,ここでも改めて説明していきます。いくつかの方法のうち,ここではTextGridを利用した方法を用います。

「型」のSoundに対応させるかたちで,一つのInterval TierからなるTextGridを作ってください。ここでは,「型」の[k]の始端,第一モーラの母音の終端(閉鎖区間の始端),閉鎖区間の終端([t]の破裂の始端),第二モーラの母音の終端にboundaryを入れます。そして,[k]の始端から第一モーラの母音の終端までの区間にA,閉鎖区間にB,[t]の破裂から第二モーラの終端までにCというラベルを入力しましょう。(ラベル名は例であって,この通りでなくてもかまいません。)

Move to nearest zero crossing

切り分けるときの境界は,多くの場合,zero crossing(波形の振幅がゼロとなるところ)と合わせるのが理想的です。振幅がゼロでないところで切った場合,プツッという音が聞こえてしまうことがあるからです。境界をzero crossingに合わせるためには,対象となる境界を選択した状態で,上部メニューから Boundary > Move to nearest zero crossing を実行してください。

ここでは四つの境界があるので,その全てについてどうようの作業を行いましょう。

TextGridをもとにSoundを切り分ける

次に,TextGridをもとにSoundを切り分けます。Sound editorはいったん閉じてかまいません。Objectウィンドウ上で当該のSoundとTextGridを選択し,右側に現れるコマンドからExtract > Extract non-empty intervalsを実行します。そのあとに現れる設定画面は初期設定のままでOKを押してかまいません。

そうすると,A,B,Cという三つのSoundオブジェクトが現れます。

無音をつくる

次に,Bと置き換える無音を作ります。オブジェクトウィンドウ上で,上のメニューからNew > Sound > Create Sound from formula… を実行します。

数式(formula)を入力する画面が現れるので,formulaのところに(既に何か書いてあったら消した上で)0と入力しましょう。無音の波形は y = 0 で表せるので,このように入力するのです。100 msの無音を作るのであれば,End timeに0.1と入力します。Nameは分かりやすいようにsilence100としましょう

同様にして,200 ms,300 msなど様々な長さの無音を作ることができます。

Soundオブジェクトをつなげる

次に,A,無音,Cをつなげます。Soundオブジェクトをつなげる場合,対象となる複数のSoundオブジェクトを選択した上で,右側に現れるコマンドからCombine > Concatenateを実行します。ただし,オブジェクトリスト上の配列順につながることになります。したがって,順番を変えるためには工夫が必要です。

たとえば,次のような手順をとることで,意図した順番につなげることができます。まず,AのSoundオブジェクトを選択し,下側のメニューからCopy…を実行します。

同様に,既に作成してある無音とCもコピーします。こうすることで,A,無音,Cの順にオブジェクトが並びます。

これらを三つを選択して,右側のコマンドから Combine > Concatenate を実行します。

こうすることで,三つのオブジェクトを意図したとおりにつなげることができます。以下の図は,このようにして無音区間を挿入したものをSoundEditorで表示させたものです。

スクリプトによる音声刺激の作成

閉鎖時間を変化させた音声を人工的に作る手順は,ここまでで説明した通りです。

音声知覚実験などではしばしば,パラメターを少しずつ変化させた複数の音声刺激を作ることがあります。例えば上の例でいえば,閉鎖時間を0.10, 0.11, 0.12, …, 0.29, 0.30 (秒)のように変化させ,合計30個の音声刺激を作るといった具合です。このとき,上に示した手順を手作業で行ったら,かなりの時間がかかってしまいますし,それだけでなく,途中でミスをしかねません。

スクリプトを書くと,一度に30個の音声刺激を作成するということが可能になります。ここで説明したような音声刺激をスクリプトによって作成する方法は,「スクリプト(2):応用例:無音区間の挿入」のページで説明しています。