目前分類:語言學 (4)

瀏覽方式: 標題列表 簡短摘要

「𠊎」這個字,記得以前電腦打不出來的。現在竟然在網路上找到這個字,真是神奇。 

hambao 發表在 痞客邦 留言(0) 人氣()

由於耳不聰,目不明,很早我就立志不走「鼻屎」(P-side)這條路。(註一) 但是,你越怕什麼,就越容易遇到什麼。這學期,因緣際會開了一門發音訓練的課,雖然非常praaticalpractical,不需講啥理論。但也逼得我必須重新複習一下生疏的東西。

為了方便錄音,我找到了一個聲音處理軟體叫做Audacity,這個軟體很早以前有玩過,還記得是某次灌好Linux後,自己跑出來的軟體。所以它是一個跨平台的免費軟體,符合我的原則。Audacity除了錄音之外還可以做一些簡單的處理與分析,如change pitch/tempo/speed等等。

我唸了一個句子:On the weekend, the women go swimming in the swift, deep river.

  

Audacity的畫面如下:

on_the_weekend 2010928 下午 022006.jpg

Audacity當然還有很多功能,但畢竟不是專門處理語音,因此我只把它當作錄音軟體。

要處理語音,不用說,大家都知道有一個軟體叫做Praat。

Praat基本上是「鼻屎」語言學家必學的軟體,連非鼻屎派的也都知道。我把上面的那個錄音檔,匯入到Praat,得到以下的畫面:

1. Sound on_the_weekend 2010928 下午 022212.jpg

上面的是波形,下面的頻譜圖(spectrogram),Praat可以把一些重要的參數畫出來,像藍色的線是音高。我的這段錄音,音高約在90~170Hz之間變化。

紅色的部分是formants,也就是能量集中帶。Formants決定vowel quality。以下列出幾個時間點的formants:

wEEkend
Time_s   F1_Hz   F2_Hz   F3_Hz   F4_Hz
0.512218   327.671498   2163.634744   2497.146275   3364.106964

wOmen
Time_s   F1_Hz   F2_Hz   F3_Hz   F4_Hz
1.354822   391.330121   1418.933525   2526.755759   3203.807963

swIm
Time_s   F1_Hz   F2_Hz   F3_Hz   F4_Hz
2.099258   377.002864   1953.664496   2540.734118   3290.762233

In
Time_s   F1_Hz   F2_Hz   F3_Hz   F4_Hz
2.475566   371.524212   2067.427939   2780.121056   3259.077666

swIft
Time_s   F1_Hz   F2_Hz   F3_Hz   F4_Hz
2.954133   511.865369   1338.213079   2627.497484   3463.958248

dEEp
Time_s   F1_Hz   F2_Hz   F3_Hz   F4_Hz
3.342712   319.967800   2096.235492   2894.332831   3368.986163

rIver
Time_s   F1_Hz   F2_Hz   F3_Hz   F4_Hz
3.678117   445.844917   1794.250034   2717.489189   3487.130861

我們發現,出現在wEEkend與dEEp中的長音[iy],有相近的F1,F2,取其平均約為320Hz/2100Hz。出現在swIft與rIver的短音[I],也有相近的F1,F2,約為480Hz/1600Hz。wOmen離短音[I]有點遠,swIm離更遠,In則離最遠,反而更像[iy]。因此我本次的錄音,In/swIm/wOmen這幾個字念得太像長音[iy]。不過事實上,這些參數都還是時間的函數,我們每個母音都只取一點,其實是太過於簡化。不過做為展示用,這樣應該是夠的。

這樣量化的數據,相信比純粹用聽力,來得有說服力。不過語言不愧是人類心靈的產物,perception跟production有時並非homomorpheous。這就不是我的重點了。

註一:P-side指的是語言學中的語音學(phonetics)與音韻學(phonology)兩個部門。

hambao 發表在 痞客邦 留言(1) 人氣()

主修語言學的學生,不論願不願意,畫句法樹(syntax tree)都是不可免的經驗。以前要畫句法樹,要不是用Word裡面爛爛的繪圖功能(真的很爛,圖跟文字的相對位置無法固定),就是另外用其他的繪圖軟體如Visio來畫,再貼到Word裡面。之 前有一個不錯的字形叫做Arborwin,原本大家用得很開心的,後來才知道是有版權的字形,要付費的。本人對於要付費的軟體一概深惡痛絕,當然是馬上移除。之後反正也少有機會畫到樹,一直到現在...

這學期開了一門句法學,免不了要畫樹,很幸運地找到一個畫樹的線上服務:

http://ironcreek.net/phpsyntaxtree/

用以下簡單的表示式就可以把樹畫出來:

[S [NP John] [VP [V loves] [NP Mary]]]

看起來還不錯:

syntax_tree(2).png

表示式很簡單,就是[Cat Node1, (Node 2, Node 3, ...)]。原則上就是左方括號的右邊是節點名稱(句法範疇Cat),而兩個方括號內的所有子結點(Node1, Node2, ...)都會放在這個節點底下。這個表示式當然是可以iterate,所以基本上任何句法樹都能畫。想玩的朋友多畫個幾次就可以熟悉了。

對於堅持要把S叫做IP或TP或是堅持要加上一堆functional categories的鄉民們來說,這個線上服務也是可以輕鬆辦到。可惜似乎不接受中文,因此請自行用拼音表示。

不論是跟論文奮戰的鄉民們,或是跟學生奮戰的老師們,您還在土法煉鋼畫句法樹嗎?別人都把輪子造好了,就開心用吧!

hambao 發表在 痞客邦 留言(1) 人氣()

最近開始認真玩Python,雖然基本架構跟其他語言大同小異,但要玩出心得也不是那麼容易。被Python吸引其實是因為NLTK (Natural Language ToolKit)這個套件是建構在Python上的,其實就是用在自然語言處理。我的專業雖然不在此,但興趣一直都在的。小學生到底要學多少漢字?哪些是常用漢字?哪些是罕用漢字?一個成人生活上要用到多少漢字?就因為漢字無所不在,這樣的問題一直困擾著我。雖然從語言學的角度,漢字不是語言的基本單位,鄭錦全老師也說「詞涯八千」而非「字涯八千」,我還是認為漢字的定量研究非常重要。

研究漢字,不是要贊同漢字本位,反而是要破除迷思。活在漢字圈中,我們常常遇到「這個字怎麼唸?」的問題,至於這個字日常生活會不會用則不是那麼重要。有些字或許從小到大沒見過,或許只出現在康熙字典。研究這些罕見字的讀音,當然有其趣味,但這個趣味或許可以當作傳統漢學研究或是茶餘飯後的題材,而不用放到正規教育中。我有一個很極端的原則:「只要這個字我不會唸,它就是不重要的。」當然我不會唸不代表其他人也不會唸,但是不同人之間的差異,並不重要。重要的是,一個字如果在一個語言社群(linguistic community)中的大多數人都不認識,的確沒啥實用性,則學習這個字的唸法,就沒實用上的意義了。(註一)

日本於1946年公布當用漢字表,共計1850字。這個措施試圖對漢字的使用,做出限制。當然,對漢字做出限制,多少會影響到文化的傳承,但這就必須與語言的工具性取得平衡。語言是載體,也是工具,不過也有人把它當遺產,或是神主牌。不同的態度會產生不同的想法,不同的想法會產生爭論,爭論在沒有風度的人來說,就會產生衝突或是肢體暴力。這暫且不表。回到日本的當用漢字表,我很好奇的是,台灣自戰後對於語言政策的態度,除了強制性的國語政策外,是否有對漢字做出限制或規範?

我是一個老師,開學前從網路上印下來的學生點名單上總有幾個修課同學的名字出現亂碼或空白,留給我課堂上給同學填補。我一直很好奇,電腦都流行那麼久了,為何父母親在幫小孩取名字的時候不會先在電腦上打打看?後來我想了一下,二十年前雖然有電腦了,但畢竟還不是那麼普遍,自己當年還不是帶著磁片到計中打作業?此外,台灣人特愛算命,取名字也不例外,加上金木水火土五行的考量,最後的結果就是取了一些非常用字的名字。非常用字有兩種,一種電腦打不出來,造成行政人員困擾,另一種電腦打得出來,但不見得唸得出來,造成老師點名的困擾。老師不見得都是國學淵博,卻要在課堂上接受漢字能力考試。以前我還會努力查發音,現在都懶了,就等上課的時候問學生。

回到漢字問題本身,廣泛的漢字包含台灣與香港的正體(繁體)字,中國與新加坡的簡化(簡體)字,以及日本漢字。這些漢字大多數完全一樣,在Unicode中就可以給予同樣的編碼,有些各自語言特有的漢字,如日文「栃木(とちぎ)」是東京北方的一個縣名,第一個漢字是日文特有,因此中文也無法發音,這些漢字當然在Unicode都有自己的編碼。另外有些漢字,在不同語言中看起來很像,但實際上各有各的特殊寫法,所以會有一些false friends(這大概就是郭董說的「魔鬼藏在細節裡」吧!)。(註二) 像是日文的「温」跟中文的「溫」,不仔細看還真看不出不同。這些假朋友當然要給予不同的編碼。因此,Unicode基本上解決了不同字體(正體字、簡化字、日文漢字)在同一文件當中呈現的問題。

再回到Python,原來我是在Python 2.6當中執行NLTK的,這個版本對於Unicode的支援還不完整,因此雖然Python提供了一些轉換函式,但用了幾次後我就放棄了,因為這又牽涉到作業系統編碼,終端機編碼等問題。後來因緣際會,跑去裝了Python 3.1,沒想到所有Unicode的問題迎刃而解,因為Python 3可以說是Unicode-native,不論是漢字或是英文字母或數字,都視為一樣的符號,用len()去計算string或list的長度時,直接給你正確答案。總算找到處理漢字的理想環境了。(從漢字的角度來看,應該說:第一次有被尊重的感覺。)

不過可惜的是,兩個版本的Python沒有backward compatibility。因此,目前兩個版本並存且同時維護。也因此,NLTK只適用於Python 2,Python 3上面無法使用。有一好沒兩好,但兩個問題比較起來,Unicode比較困擾我,所以當然是跳到Python 3,自己寫些簡單的函式來處理問題囉!

註一:語言社群(linguistic community)是一個社會語言學術語,指一群分享相同語言特徵如詞彙/語音/語法等的人的組合。語言社群假設內部是均質(homogeneous)的,但很明顯地,這個假設過度簡化。台灣是一個語言社群,這個語言社群的主要語言是華語,但跟同樣以華語為主的中國有所區別,台灣的語言社群所使用的語言包含了漢語(特別是河洛語、客語)成分、南島語成分,以及日語成分。以語言社群來指台灣相信比較沒有爭議,特別當使用國家來稱呼台灣時,有些人會跳腳。

註二:false friends,法語faux amis,指的是兩個語言中,看起來或聽起來相似,但卻意義不同的兩個詞。這兩個語言可以是有血緣關係的語言如英語與德語,英語的gift,跟德語的Gift是false friends,前者是「禮物、天賦」之意,後者是「毒藥」之意。這個詞也可以用在無血緣關係(但是有鄰居關係)的語言如漢語與日語,中文的「勉強」跟日文的「勉強(べんきょう)」看起來很像,意義卻風馬牛不相及,也是false friends的例子。不過此處講的比較像是「異體字」,然而異體字一般是指同一個語言當中的類似字形,但此處牽涉到兩個不同的語言,因此還是用false friends稱之。

hambao 發表在 痞客邦 留言(0) 人氣()