江 荻,劉匯丹,吳 兵
(1. 中國社會科學院 民族學與人類學研究所,北京 100081; 2. 中國科學院 軟件研究所,北京 100190;3. 上海師范大學 語言研究所,上海 200234; 4. 西南民族大學 計算機學院,四川 成都 610015)
國際音標是記錄世界各國語言讀音的標音符號系統(tǒng),也是教學母語和非本族語或外國語言的標音符號。國際音標廣泛地用于詞典標音、記錄語言和方言的讀音,也普遍用于語言學、人類學、病理語言矯正、聲學語音科學、語言信息處理、排版印刷技術等基礎學術或工程應用研究領域[1]。
國際音標軟件設計主要涉及輸入法和字體[2-3]。本文以藍蝶國際音標輸入法系統(tǒng)(形類,2.0版)*藍蝶國際音標輸入法系統(tǒng)是公益性軟件,純粹由學者及合作者個人研制開發(fā),技術上有一定局限,但目的是服務社會與學界。藍蝶1.0(音類)于2008年元月發(fā)布,藍蝶2.0(形類)于2010年5月發(fā)布,藍蝶2.5(英文版)于2010年10月發(fā)布。[4]為基礎,介紹開發(fā)適用于記錄或標記中國各種語言的國際音標軟件,討論國際音標軟件和字庫開發(fā)的原理和技術問題,目的是服務于學界和學者。
根據(jù)國際語音學會擬定的音標符號和Unicode匯集的音標或音標作用的符號,其表示元輔音的音標數(shù)目約為200余個(未包括組合型符號),輔助讀音附加符號約120余個(尚未計算中國學者使用的約450個五度制聲調符號)。面對如此龐大的音標符號數(shù)量,鍵盤輸入方法勢必采用編碼輸入法。這是由音標集合數(shù)量決定的輸入法原則,也意味著音標輸入法不可能按照英文字母與鍵盤對應方法制定。所謂輸入編碼,指利用現(xiàn)有鍵盤設計出鍵鈕組合代碼,通過擊鍵轉換成機內(nèi)字符代碼并實現(xiàn)輸入目的。國際音標輸入編碼操作反映了兩個集合的映射,一個是被編碼的音標符號集合,一個是音標符號的編碼集合。由于音標符號數(shù)量較大,這兩個集合會呈現(xiàn)出一對多和多對一的映射關系,分別產(chǎn)生重碼現(xiàn)象和二義性現(xiàn)象。具體表現(xiàn)在輸入過程中存在人工選擇音標字符的操作,制約了快速和連續(xù)輸入的預期。
由于音標集合與音標編碼集合之間的復雜映射關系是一種客觀存在,可能的解決辦法是通過其他技術設計和編碼思想來“跳過”或“繞開”有沖突的映射。第3節(jié)討論的高頻優(yōu)先輸入設計就是典型的“繞開”策略。這里我們主要討論輸入編碼的設計思想,以及有關國際音標分類的方案,合理的分類對輸入編碼具有根本性的指導作用。
常見的國際音標分類是按照語音性質和語音功能分類,通常分為四大類:元音符號,輔音符號,聲調符號,附加符號[1]。每一類又可按照不同特征進一步的下位分類,例如元音可分前元音,后元音,央元音,或者高元音,低元音,中元音等等。我們設計的藍蝶國際音標輸入系統(tǒng)1.0是按照語音音類分類的,這種分類對使用者語言學水平有較高要求,造成用戶面的受限性。具體表現(xiàn)為音標符號的鍵盤布局不夠直觀,部分音標設置的鍵位不夠合理,用戶一時不容易找到音標所在鍵盤位置。
另一種可能的編碼思想是按照國際音標字形設計鍵盤布局。國際音標字形基本源自西方拉丁字母,二者存在同源性,這是國際音標字形與計算機鍵盤字母字形可以對應關聯(lián)的基礎,把經(jīng)過變化和改造的國際音標字形分別歸入相應的計算機鍵盤鍵位可以幫助記憶,喚起聯(lián)想,便于操作。以下是藍蝶國際音標形類輸入法制定的字形相似原則,并根據(jù)記憶代價分為兩大類。
(A) 基本不需要記憶的音標分布鍵位。這一類指結合日常知識,通過解釋規(guī)則而無需特別記憶的音標。以下基本字形指26個拉丁字母字形,變形字形歸入相應基本字形類。
(1) 字形等同26個拉丁字母(英文)鍵位的音標直接輸入。

(5) 大寫字形(即小型大寫字母)與小寫音標字母歸入同類。例如[A]歸入[a]。
(9) 彎頭字形指基本字形頂端有一個彎曲的鉤型筆畫,例如[]歸入[h],[]歸入[b]。
(10) 鉤尾字形指基本字形末尾有一個縱向豎勾,例如[?]歸入[s]。
(B) 需要略加記憶的音標分布鍵位。國際音標的變音符號、韻律符號等不能按照字形編碼分布鍵位,藍蝶音標采用集中類別的辦法安排鍵位,并利用各個類別的漢語表達的拼音首字母分配鍵位。這一類使用之初略需記憶,又分為常用、選用和備用三類。
(B1) 常用附加符號
(15) 鼻化符號放在B鍵位(“鼻”的拼音首字母b, shift+b)。
(16) 緊音符號放在J鍵位(“緊”的拼音首字母j, shift+j)。
(17) 濁音和清音符號放在Z鍵位(“濁”的拼音首字母z, shift+z)。
(18) 長音、半長音和輕聲符號放在C鍵位(“長”的拼音首字母c, shift+c)。
(19) 送氣符號按照國際語音學會規(guī)則使用上標小字符,因此放在H鍵位(shift+h),用表示(清送氣和濁送氣)。該學會不建議用舊式符號“‘ ”。
(B2) 選用附加符號
(20) 五度制聲調符放在W鍵位(“五”的拼音首字母w,shift+w)。
(21) 圈畫聲調符號放在Q鍵位(“圈”的拼音首字母q,shift+q)。
(22) 上標附加符號放在S鍵位(“上”的拼音首字母s, shift+s),例如西方式聲調符號,成音節(jié)符號,連音符號,短音符號等。
(23) 下標附加符號放在X鍵位(“下”的拼音首字母x, shift+x),例如音節(jié)性、非音節(jié)性、連音、更圓、略展、偏前、偏后、偏高、偏低、擦化、齒化、舌尖性、舌頁性、舌唇性、咽化、央化、中央化、氣嗓聲、啞嗓聲、囁聲等。
(24) 連讀變調描述符號放在L鍵位(“連”的拼音首字母l, shift+l),有分隔變調符,交替符,次類調符,次次類調符,右上左括號,右下交替符,右下分隔號,右下左括號,右下右括號等。
(25) 日常(平行)進格符號:出現(xiàn)在音標字母左右側表示某類讀音價值的符號,放置在R鍵位上(“日”的拼音首字母r,shift+r),這類符號都是非疊置進格型符號,包括交替符、小韻律段(短頓)、大韻律段(長頓)、降階、升階、全上升、全下降,柔聲、高聲、哨聲等,數(shù)量較多。
(26) 右上標符號(不同于上標符號):出現(xiàn)在音標字母右上角表示某類讀音價值的上標符號,放置在K鍵位上(shift+k),這類符號都是非疊置進格型符號,包括重音符、連字符、分音節(jié)符、唯閉符、卷舌符、外擠氣符、弱送氣符等,數(shù)量較多。
(27) 右下標符號(不同于下標符號):出現(xiàn)在音標字母右下角表示某類讀音價值的下標符號,放置在M鍵位上(shift+m),這類符號都是非疊置進格型符號,包括次重音、連字符、卷舌符、短停頓、中—長停頓、長停頓等,數(shù)量較多。
(B3) 備用附加符號
(28) 非洲倒吸氣音整類放在F鍵(“非”的拼音首字母f,shift+f)。
(29) 輔音右上標(進格)附加符號,放在V鍵位(“輔”的拼音首字母V←F,shift+v),這些符號實際已經(jīng)分布于上述各功能類別,此處集中放置是為了多提供一種輸入方法。
(30) 元音右上標(進格)附加符號,放在Y鍵位(“元”的拼音首字母y,shift+y),這些符號實際已經(jīng)分布于上述各功能類別,此處集中放置是為了多提供一種輸入方法。

(32) 組合符號,國際標準組織(ISO/IEC)和統(tǒng)一碼聯(lián)盟(Unicode)發(fā)布的編碼標準包括部分組合符號,例如元音基本字形上下添加附加符號的音標,輔音組合形成的音標,輸入設計上,這些字符可以多提供一種輸入選擇,不需要記憶,甚至不一定使用。這些符號是字體文件中已經(jīng)組合的符號:


Windows 系統(tǒng)輸入法的原理如圖1所示。用戶在使用輸入法的時候,鍵盤驅動程序將鍵盤事件傳送給操作系統(tǒng)的user.exe,user.exe再將鍵盤事件傳導給輸入法管理器IMM(Input Method Manager,簡稱IMM),IMM再將鍵盤事件傳給輸入法,輸入法根據(jù)用戶編碼字典,翻譯鍵盤事件為對應的字符(串),然后再反傳到user.exe中,user.exe再將字符(串)傳給當前應用程序,從而完成輸入。Windows操作系統(tǒng)從最初的95、98發(fā)展到現(xiàn)在的XP、Vista、Windows 7等,操作方式和用戶體驗都有不小的變化,但是輸入法的原理卻幾乎沒有任何改變。在編程實現(xiàn)的時候,只需要編寫一個動態(tài)鏈接庫,實現(xiàn)標準IME接口函數(shù)即可。藍蝶輸入法基于此框架實現(xiàn),理論上可以安裝在所有版本的Windows操作系統(tǒng)上。

圖1 Windows 系統(tǒng)輸入法原理圖
藍蝶輸入法支持連續(xù)的音標輸入,不需要在輸入每個字符的時候都按空格鍵或者回車鍵,可以直接敲打其他字母鍵進行連續(xù)輸入,前一個鍵的第一個候選字符會被輸入到編輯器中去,這將極大地提高輸入速度。
藍蝶輸入法采用高頻優(yōu)先的動態(tài)鍵盤技術。在一段較短的時間內(nèi),如果一個音標字符被輸入了三次以上,它將被自動調整到第一個候選位置。由于國際音標字符總量有數(shù)百之多,而每個用戶實際使用的音標字符只有幾十個,藍蝶輸入法的這種高頻優(yōu)先的動態(tài)鍵盤技術將使輸入法最大程度地適應用戶的使用習慣。在最初使用的時候,用戶需要使用數(shù)字鍵選擇候選音標,隨著使用的增多,高頻的音標都大多被調整到第一候選位置,將不需要使用數(shù)字鍵進行選擇,輸入速度自然越來越快。
藍蝶輸入法使用兩個表實現(xiàn)高頻優(yōu)先的動態(tài)鍵盤技術,一個是鍵盤映射表,另一個是高頻音標表。鍵盤映射表實現(xiàn)鍵盤向國際音標的映射,如圖2所示,每個Key對應多個國際音標符號,用戶在敲擊鍵盤時,輸入法查找鍵盤映射表,并將候選音標按順序顯示在候選窗口中,供用戶選擇。鍵盤映射表采用HASH表實現(xiàn),同其他查找方式相比,HASH查找具有最小的時間復雜度,查找速度最快。高頻音標表記錄了最近使用的M個音標,并按照使用頻次從高到低排序。高頻音標表的更新采用最近最久未使用的原則,每次有新的音標要添加到表中時,總是最后一個音標被替換掉。若高頻音標表中的某個音標使用頻次大于三次,將觸發(fā)鍵盤映射表中對應Key的候選音標重排序,該音標將被調整到第一候選位置。

圖2 鍵盤映射表

圖3 高頻音標表

圖4 藍蝶輸入法效果圖
藍蝶輸入法與漢字輸入法調用方法一樣,不必贅言。進入藍蝶音標輸入狀態(tài)之后,又有國際音標和英文兩種輸入狀態(tài),用戶只需單擊Shift鍵即可在兩種狀態(tài)之間切換,方便用戶輸入英文鍵盤設置的固有符號,例如“%、&、+、g”等等。輸入法狀態(tài)條和候選窗口的設計美觀大方。圖4顯示了藍蝶輸入法的使用效果。幫助文件(通過點擊輸入條上的“扳手”調出)采用標準的chm電子書格式制作,包括輸入法的介紹、輸入法的詳細安裝指南、使用說明,并附有國際音標使用樣例和相關知識,內(nèi)容翔實。幫助文件的排版格式布局合理,符合普通用戶閱讀習慣。
藍蝶輸入法的安裝程序采用Windows標準的安裝向導模式,將所有要安裝的文件打包為一個安裝文件,用戶只需要啟動安裝程序,跟隨向導用鼠標點擊幾下即可完成輸入法和字庫的安裝,安裝之后,藍蝶輸入法自動出現(xiàn)在用戶當前的輸入法列表中,可以直接使用。
藍蝶國際音標字庫設計時,包含了Macintosh Roman和Windows Unicode BMP系統(tǒng)平臺,且為系統(tǒng)平臺添加了English語言,設定字體名稱為IeaUnicode,字形樣式為SIL Regular[5]。
藍蝶國際音標字形以SIL參與修定的Unicode5.2中的標準字形為依據(jù),這種字形美觀大方。目前大多數(shù)音標字體也同此種字形接近。在設計音標字庫中,優(yōu)先考慮的是字形的整體結構,根據(jù)綜合分析,音標字形的結構設計為4部分,如圖5所示。音標字形的整體寬高比例約為1∶1.94。

圖5 音標字形結構圖
音標字形主體部分是圖中粗線框內(nèi)部分,即圖中標①處,如音標a////設計在這個位置。音標字形的上部位于x-Height到CapHeight之間,即圖中標②處,主要用于設計大寫字母A-Z和其他音標如i//j/,/等等(主要占據(jù)①②部分)。音標字形的底部位于Baseline到WinDescent之間(圖中標③處),主要用來設計某些下疊加符號及類似ɡ//j///?/f//p//這些音標延伸的底部。音標字形的頂部位于CapHeight到WinAscent之間(圖中標④處),主要用于放置某些上疊加符號類似?/ě/?/ó/ǚ這些音標字形的上疊加符號。
實際設計音標字形時(如圖5所示),并非很嚴格到各部分不能超出一些,因為還涉及到許多視覺心理等等方面的因素。
首先是視覺均衡原則,讓所有字符在視覺上對齊,就不能采用同樣的物理大小。例如,為使同重心位置的圓形看起來和矩形同樣大小,圓形就必須向下略超出基線(Baseline)。如果圓形和矩形物理尺寸一樣,圓形看上去就會比矩形小;同樣三角形的(三個角)高度就必須大于矩形。否則,三角形看起來就要比矩形小很多。具體設計時,考慮到了線條主體的流線型,這涉及到筆畫的走向,充分利用字形Hinting技術,使得音標在小字號時也能美觀清晰。

字體風格的統(tǒng)一性涉及到各音標字形的筆畫粗細、彎角、筆鋒、高矮、胖瘦、黑白對比等較為復雜問題。簡而言之,通過初步嘗試幾套對比,確定一套字形方案,可以確保風格的一致性。
要讓操作系統(tǒng)(如WindowsXP)能正確識別字庫中的文字編碼,需要準確地設定字庫所支持的代碼頁以及Unicode編碼區(qū)塊。藍蝶國際音標字庫支持的代碼頁主要包括:Latin1, Latin2, Cyrillic, Greek, Turkish, Windows Baltic, Vietnamese, JIS, ChinesePRC, Korean Wansung, Chinese Traditional, Macintosh Character Set, OEM Character Set, Arabic, Hebrew, US等。字符范圍主要包括:Basic Latin, Latin-1, Latin-ExtA/B, IPA Extension, Combining Diacritical Mark, Latin Extended Addition, General Punctuation, Superscript & Subscript等區(qū)塊[6]。這樣設計出來的字庫可以解決由于缺少代碼頁或Unicode編碼范圍不對,而在Word中出現(xiàn)輸入音標時亂改變字體名的問題[7]。
在確定字符的整體寬度和字庫全局因子Units/EM等因素的情況下,藍蝶國際音標字庫的行距控制,主要通過三組設置:Typo Ascender /Typo Descender /Typo Line Gap;Win Ascent /Win Descent;Ascender /Descender /Line Gap等來設置。一般可盡量壓縮Typo Line Gap和Line Gap的參數(shù)值測試。我們盡量多地使用不同的文字編輯處理軟件,反復評測字體實際使用中的效果,在不斷測試中確定各參數(shù)值的取值,最終達到風格一致、美觀清晰的目的。
關于字符上下疊加技術,雖然可以利用Kerning Pair技術實現(xiàn),但要實現(xiàn)多個附加符號的疊加難度較大。這時可用OpenType技術來解決這個問題,其特征標記主要通過GSUB(字形替換)和GPOS(字形定位)得到正確的字形和準確的位置,保證音標的正確顯示和打印。其中,字形替換支持單個字替換(一對一)、連字替換(多對一)、多樣替換(一對多)以及上下文替換(一種字形對多種形式)等不同類型的字形替換。字形定位支持單字調整(如上標/下標或空格的寬度的調整)、雙字調整(字距調整)等字形位置的調整。一個音標字符在縱向疊加時,隨著不同字符的組合,該字符的位置、大小、甚至形狀都可能變化,為了顯示和輸出的字形美觀、實用,把變化時規(guī)律性不強的組合字符預先組合在字庫中,用“連字替換”把幾個音標字形構件映射到一個“預組合”的字形上。這就解決同時有多個附加符號的上(下)疊加問題。
最后應該說明的是,藍蝶國際音標已植入最新發(fā)布的Unicode5.2版音標字符,也包含了部分非國際語音學會頒布的Unicode字符,這些字符是為某些語言已在使用但尚未進入國際音標系統(tǒng)的那些音標符號設置的,例如舌尖元音[]、卷舌元音[]、卷舌邊擦音[]、軟腭邊擦音[]等[8]。還有部分未進入國際音標系統(tǒng)且未取得Unicode編碼的字符,例如相當數(shù)量的五度制標調符號,這些符號已根據(jù)國際標準化組織規(guī)定納入自定義編碼區(qū)。
國際音標是任何國家或語言族群都可能使用的符號系統(tǒng),是當代信息化進程中不可或缺的符號體系,也是學者們歸納的中華字符集9類符號中必備的一類符號[9],需要研究和開發(fā)。
[1] International Phonetic Association(Corporate Author). Handbook of the International Phonetic Association: A Guide to the Use of the International Phonetic Alphabet[M]. Cambridge:Cambridge University Press, 1999. 中文版(江荻 譯): 國際語音學會手冊: 國際音標使用指南[M]. 上海: 上海教育出版社, 2008.
[2] SIL international: IPA Transcription with SIL Fonts[EB/OL]. http://www.sil.org/computing/catalog/.2010.
[3] 李龍,潘悟云. 國際音標輸入法及其實現(xiàn)[J]. 語言研究, 2006, 26(3): 67-70.
[4] 江荻. 國際音標輸入系統(tǒng)及字庫[N]. 載: 人文社會科學前沿掃描:語音學與計算語言學篇. 中國社會科學院院報, 2008-06-10(2).
[5] Summer Institute of Linguistics, SIL Fonts Glyph Catalog[M]. Dallas: SIL Printing Arts Department, 1994.
[6] Unicode, Inc. tHE uNICODE sTANDARD, vERSION 5.2.[EB/OL]. http://www.unicode.org/versions/Unicode5.2.0/.
[7] Microsoft Corporation. Input Method Manager(IMM)[EB/OL]. http://msdn.microsoft.com/en-us/library/aa912900(v=MSDN.10).aspx.2010.
[8] 燕海雄,江荻. 國際音標符號的分類、名稱、功能與UNICODE編碼[J]. 語言科學, 2007(6):6: 82-91.
[9] 李宇明. 搭建中華字符集大平臺[J]. 中文信息學報[J], 2003,17(2):1-6.