如果你在台灣或香港用語音輸入寫中文,大概都遇過同一件事:你講的是很自然的一句話,回來的字卻總帶著一股不對勁——某些字是簡體,某些用詞明明看得懂、卻不是你會用的講法。這不是你的口音問題,也不是麥克風的問題。它反映的是一個少有人講明的現實:多數語音辨識模型的預設輸出是簡體中文,而把簡體「轉」成繁體這一步,如果做得天真,會在你每天要送出去的文字裡留下細微卻明顯的裂縫。這也是為什麼很多人覺得在 Mac 上用中文語音輸入老是差一口氣。要弄懂為什麼、以及怎樣才算做對,得先看清這根本不是換字型的事。
簡體輸出是預設,不是意外
大部分中文語音模型是在以簡體中文為主的資料上訓練的,所以它們的「原生」輸出就是簡體。對簡體使用者,這剛好;對繁體使用者,這是每一句話都要面對的落差。工具為了「支援繁體」,常見的做法是在最後補一道逐字轉換——把簡體字一個一個換成對應的繁體字。問題是,繁簡之間並不是乾淨的一對一。同一個簡體字可能對應多個繁體字,得看語境才知道要哪一個:「发」到底是「發」(發生)還是「髮」(頭髮)?「里」是「裡」(裡面)還是「里」(公里)?一個只看字、不看意思的轉換器,會穩定地在這些地方猜錯。
這不只是字,是詞
就算每個字都轉對了,還有更深一層:繁體中文世界用的詞,本來就和簡體世界不一樣。「軟體」不是「软件」、「資訊」不是「信息」、「螢幕」不是「屏幕」、「網路」不是「网络」。這些不是同一個詞的兩種寫法,而是不同社群長年用出來的不同詞彙。一個把簡體語彙逐字轉成繁體字的工具,會產出一種很怪的東西:字是繁體的,選詞卻是簡體圈的——讀起來像是一個外地人在很努力地寫台灣或香港的中文。對本地讀者,這一眼就看得出來。
為什麼這是建模選擇,不是最後一道手續
把繁體做對,意味著在「把聲音變成字」的那一刻,就直接解析到寫作者真正使用的那套正字法和詞彙,而不是先轉成一個簡體預設、再指望善後。差別在於資訊什麼時候還在。當模型還握著整句話的意思時,它有足夠的脈絡判斷 fā 這個音在這裡該是「發」還是「髮」、這個概念在台灣語境裡該落成「軟體」而不是「软件」。等到只剩一串簡體字、意思已經被丟掉,任何逐字轉換都只是在猜。真正的繁體支援,是建在流程前端的一個選擇,不是黏在後面的一道手續。
台灣、香港,也不是同一種繁體
再往下一層:繁體中文本身也不是鐵板一塊。台灣和香港雖然都用繁體字,用詞與習慣卻有實在的差異——同一個外來概念,兩地常常各有各的慣用譯法與說法。一個把「繁體」當成單一目標的工具,會對其中一地的使用者持續給出略微外地的文字。做得細的做法,是認得使用者實際所在的語境,把輸出對準那一種繁體,而不是給一個「泛繁體」的平均值——那個平均值,往往兩邊讀起來都不夠道地。
怎麼判斷一個工具的繁體是不是真的
功能列表上的「繁體中文」不會告訴你它是原生解析、還是最後硬轉。一次真正的實測會。用你平常的講法、講一段有專有名詞、有你們產業慣用詞的話——最好還帶點你日常會用的英文詞(中英混講的難題是另一個常見的破口)——然後讀回來的結果。字是不是你會寫的字?詞是不是你會用的詞?還是你得回頭把「软件」改成「軟體」、把幾個猜錯的字挑出來重選?如果你發現自己在做的,正是那種挑字改詞的功夫,那你手上的就是一個把簡體善後外包給你的工具。真正做對繁體的語音輸入,第一次回來的,就該是一段你可以直接送出去的繁體中文。若想先弄懂各種語音打字做法的全貌,這份語音打字完整指南是不錯的起點。