Friday, August 21, 2009

用praat做聲調

最近有人問我怎樣用praat做四聲調。我想了兩個辦法,不過都有點麻煩。

一看到問題時第一個想到的就是,理論上第一聲很簡單,就是一個固定調的pure tone啊,但是其他聲除了從pitch曲線去手動調或用script取代以外,我就不會用公式直接做了。


問題:

: 請問用praat可以做出四聲的頻率變化嗎

: 想做出四個音檔
[略]
: 音檔內容單純只需要聽到四聲頻率變化喔
: 不要含任何字喔 (ex:蝦(一聲).好(三聲))


我的回覆:

我不知道沒有母音音質的話,這個聲音要怎麼被聽到。
我先說看看我可能會怎麼做,你可以再看看有沒有其他人會回應。
可能其他人會有更好的辦法。

你可以從new / sounds / create a sound from formula
輸入公式,praat就會幫你做出一個音,
以200Hz高的平調來說,不要母音的公式應該是1/2*sin(2*pi*200*x)
在praat幫你做出來的音那裡,選periodicity / to pitch
就會跑出一個pitch object,這個pitch object就是一個200Hz的平的pitch曲線
然後你可以選擇讓praat幫你play來聽聽看。

但是我其實不會其他調的公式,數學不好,可能要研究很久,
所以我也可能會用下面這個辦法:
先錄一個母音或單音節,比方說ka之類的。
然後用一個script(我手邊沒有,但你可以上yahoo的praat users找)
把這個音節的pitch tier調成你要的曲線。
比方說整個音節都200Hz,就會出來平調。
至於contour tones的話可以間隔一段時間,比方說1ms,代入一個Hz值。
如果最後你不要那個聲音,只要那個調的話,
可以從periodicity / to pitch,把pitch曲線拿出來,存成一個檔,
這就是只有調的曲線,然後你可以選擇讓praat幫你play pulses或hums來聽。

4 comments:

  1. 剛剛手癢,所以想說來試看看能不能找到簡單一點的方法,結果發現可以做出母音的四個聲調,可以參考看看。
    New -> sound -> create sound from vowel editor
    可以自己決定想要用哪個母音,要多長的duration,和onset f0的值,斜率可能就要自己算一下,我試過幾次,連三聲都可以做出來喔!

    ReplyDelete
  2. Yi-Chu好厲害!

    我也是先找到這個,很好玩。不過我沒有做三聲,你做的三聲聽起來好嗎?

    不過對方要沒有母音音質,我就不知道有沒有更簡單的做法了==。

    ReplyDelete
  3. 我自己亂試,不知道算不算去掉母音音質了。

    先量出真實的母音pitch,在vowel editor做出和真實pitch相去不遠的母音。並算出整段pitch的平均值(pitch -> get pitch)
    做出母音的聲音之後,在praat object 右邊找到synthesis的filter,輸入平均的pitch值,然後聲音就會變得不一樣了。

    但是這個做法沒有任何根據,哈

    ReplyDelete
  4. 那我也來亂入一個看到你說filter想到的。
    可以看pitch最高多少,把以上的能量都low-pass filter掉。這樣可以合理說filter掉至少第二共振峰以上的能量,聽起來就會嗯嗯阿阿的了。哈哈。也是一樣沒有任何根據。XDDD

    ReplyDelete