syllazh:拿同音字硬顯示到 Linux TTY 的 console 上面

翻資料的時候翻到用 Python 寫的 syllazh 這個東西,可以在 Linux TTY console 上面直接顯示中文,我本來以為是類似 big5con 的東西,看了一下完全不是,syllazh 是直接透過 Linux TTY 搞,所以會受限於 512 字的限制,而 big5con 是切進圖形模式自己處理,所以可以完整顯示 big5 上面的字:

Linux TTY 上的字体可以由一般位于kbd软件包里的setfont工具更换。它最多支持512个字形(glyph),但每个字形可以被映射到多个 Unicode 码位。 所以为了支持显示中文,我必须把成千上万个汉字挤进这个狭小的空间。 幸运的是,现代汉语普通话大约只有400个不同的音节(忽略声调)。于是我针对每个音节,挑选了一个最常用的汉字来代表那最多上百个读音近似的汉字。 这样再加上96个可见的ASCII字符和几个符号,它们就正好装进512字符的限制内了!

然後這邊因為不可能將所有的中文字都塞進去,syllazh 的作法就是找同音字塞,效果就會變成這樣:

這主要還是好玩為主,作者自己也有提到這點:

老实讲,盯着这些同音错字并通过句子来费劲猜测它是什么意思,并不是很愉快的体验。因此我也不期待任何人日常使用它。 现在都2024年了,你应该去用你喜欢的 Wayland 或 X 桌面,而不是TTY。所有主要的图形界面库对中文(以及所有其他语言)的支持都比我这奇技淫巧高到不知哪里去了。

libchewing 更新,0.6.0 釋出

新酷音的 libchewing 專案釋出了 0.6.0,上次的 release 的 0.5.1 是 2016 年了:「Release v0.6.0 · chewing/libchewing」。

This release contains many improvements and bug fixes. It's the first release since 2016. We have started a major rewrite in Rust so we expect to have more frequent releases in the following months.

Contributors to chewing/libchewing 這邊可以看到近期主要是 kanru 的貢獻,然後就如同上面引用的 release note 中提到的,目前朝著 Rust 這邊開始走。

另外一個比較大的改變 (build stage 的) 是把本來用 autotools 的部分換成 cmake 了:

Add several CMake presets for supported configurations [Kan-ru Chen]. #424

CMake minimum version changed to 3.21.0

Autotools build tools are removed. CMake is the recommended way to build libchewing.

整體看起來,這版看起來主要是把這七年多的各種 bugfix 整理起來出一個 release 了,讓各 repository 可以更新一波?

漢字字形的處理

Hacker News 上看到「Your Code Displays Japanese Wrong (heistak.github.io)」這篇,原文是「Your Code Displays Japanese Wrong」。

這個算是 CJK 族群的經典問題,主要的問題是有不同的團體都在使用漢字,但雖然都是 U+5203 的「刃」,在不同的地區的「標準寫法」是不一樣的,像是「國家教育研究院 - 教育部國語小字典-刃」這邊就有 SVG 版本的「圖」可以看:

我在 different-lang.html 這邊把他提到的「刃直海角骨入」給放了進去,指定不同的 lang,像是這樣:

<dt>lang="jp"</dt><dd lang="jp">刃直海角骨入</dd>

如果你的電腦裡面有 Noto Sans CJK 的話,應該可以看出不同的字形。

在 HTML 網頁上可以利用 html 內的 lang 資訊告訴瀏覽器去抓取對應的字形,當然,系統有沒有這個字形又是另外一回事了,不過市場上至少有 open source license 的 Noto CJK 系列,算是個低標的答案可以用。

至於要更多樣的話,應該是要分不同語言下去找...

Google 翻譯的中文詞彙

先前在網路上看到「Google 翻譯修好了沒? Has Google Fixed Translate Yet?」這個網站,看起來是 2021 年的時候建立的,整理出來希望可以改善 Google 翻譯在台灣所使用的中文 (zh-tw) 的翻譯品質,上面列了五十幾個詞彙,記得當時只有一個有修正,其他都還是中國或是香港的用語。

(話說 Google 翻譯的介面好像沒有分台灣跟香港...)

因為看到有英文的說明,就順手丟上 Hacker News:「Has Google Translate been fixed yet? (isgooglefixed.tw)」,還蠻意外的有些關注與討論... 大概是因為這樣,可能讓 Google 內有個整理過資料可以開 issue,過了一個月,上個禮拜陸陸續續被修正了不少詞彙,目前剩下的那幾個比較接近詞彙準確性的問題。

下一個可能是 Google Maps 上面的翻譯問題?就算切到 zh-tw 下還是會出現港式翻譯:

而把 Google Maps 英文版上看到的「Chophouse restaurant」丟進 Google Translate 翻譯是:

Linux 上 fcitx5 的小麥輸入法

Twitter 上看到小麥輸入法宣佈支援 Linuxfcitx5 的消息:

專案在 GitHub 上的「fcitx5-mcbopomofo: 小麥注音輸入法 fcitx5 模組」這邊,因為我自己的 Ubuntu 20.04 桌機還是跑 fcitx 4.x (用酷音輸入法,裝的是 fcitx-chewing 這個套件),暫時先放著好了,但幫忙宣傳一下...

也許可以找機會練習包到 Ubuntu 的 PPA 上面,等有空吧...

Mac 上的小麥輸入法大改版 (2.0,不過目前已經又出 2.0.1 了)

Twitter 上看到 zonble 的推文:

整串可以看「Thread by @zonble on Thread Reader App」這邊,在 GitHub 上面的 release note 也可以參考:「Release 2.0 · openvanilla/McBopomofo」,不過要注意如果要下載的話,記得抓 bugfix 後的版本:「Release 2.0.1 · openvanilla/McBopomofo」。

對我來說最大的進步就是詞庫這塊了,可以直接加進去學習方便不少...

Amazon Transcribe 支援台灣的中文辨識了

Amazon TranscribeAWS 的服務,可以把聲音轉成文字 (speech to text),先前最接近台灣用的中文應該是「Mandarin Chinese (Mainland China)」,兩年前曾經試著用過:「Amazon Transcribe (語音轉文字) 支援中文」,但效果不怎麼樣...

剛剛在「Amazon Transcribe now supports speech to text in 6 new languages - Afrikaans, Danish, Mandarin Chinese (Taiwan), Thai, New Zealand English, and South African English」這邊看到消息,Amazon Transcribe 支援台灣的中文辨識了,晚點可以用同一部影片測試看看...

繁簡轉換的 OpenCC 專案

Twitter 看到這個東西:

翻了一下這邊講的 OpenCC 專案,以目前有提供的 json 檔來看,分的算蠻細的,看起來有對不少種類的漢文 (包括日文使用到的漢字) 都有支援。

這個看起來很適合用在搜尋引擎上... 翻了一下 Elasticsearch 上的情況,看起來目前沒有人有支援,可能要寫個 plugin 之類的掛進去,或是在 index 前先自己處理過再丟進 Elasticsearch 內。

Amazon Transcribe (語音轉文字) 支援中文

AWS 宣佈 Amazon Transcribe (語音轉文字的服務) 支援中文:「Amazon Transcribe Now Supports Mandarin and Russian」。

從給的指令可以看到 --language-code zh-CN,頁面上示範的音檔腔調也是中華民國淪陷地區的腔調,應該是對淪陷地區訓練出來的結果...

我隨便拿了一部影片來測試:「粉嫩多汁健康好吃 松露炸和牛三明治 fried wagyu beef sandwich|Fred吃上癮」。

先下載下來,然後用 FFmpeg 轉成 FLAC 檔,再透過 AWS web console 丟進 transcription jobs 轉...

看起來對台灣在用的腔調適應還是不太好 (我把轉出來的東西丟到文章最後面),不過應該只要另外再拿新的訓練資料就可以出台灣版了...

加裙头加油全都一定要有对哎嗯啊先生走在国外人的感觉呢那那天没有融进了我们邀请到我们的干冰可以踢得哭来到学校那因为干爹在场所以我今天决定挑战间谍因为钢铁说他有一个专利我人去这个专利的特点就是在于说得简由他可以让石材外脆那那但是我觉得我这个人就是反恐因为我还是在青少年呃青少年就是跟叛逆所以干爹说这句话我就要想一下真的吗?感觉你确定吗干爹干爹不说话好男星所以呢我们今天请到了节目里面已经出现很多字的他说你要小姐另外一项呢就是用美国判断及的这两个都是热点然后来做比较那除此之外我要增加他的猪谁敢说我还会有一种机制这个呃七大锅里面她其实还有很多的配备怎么怎么打开而且这是强调这个头衔传啊让我把配件全部制造了这个创的吧这个时候就是穿露的那其实是架构教育的这一套啊我谁干爹那么天所以呃GDP我们就直接用这个好嘛啊那您觉得啊啊有可以有来再用医院但是全部都得上去我也是南部的人们从然后把装修呃我们一百八十六万调到了六分钟气氛中好人我们俩需要好妈妈如果你对呃石材比较不确定其实还有一个方便的功能就你可以暂停一下然后就把拉出来看一下然后就可以大概在判断较大还是要到那我们再延长一个一分装啊好吗嗯钢铁说话小张这时听到哎哟完美香气毕业了吴村的年轻人中就是年轻人好吧那我们看看里面的游子哦哎哟你看生命都是有虽然真的可以让他们减由我先试一下啊我不是还没有送钱都没有了然后我觉得吃得很只我小时候来讲呢应该说是一个嗯全世界啊你是唯一厮杀青陈家松与嗯你可以感到很清晰后来任把油倒出来也大概呀它地处都要由这么多的有由此很清澈你可以去买就出版有就就进去就被查出了还会受你知道吗了不少消费者的那那我们来做下一个步骤条面包啊从这个盘子监考盘所以如果说你这样一句还会有个老婆或者漂亮那就是说他这些系统喔他九十一由此啊还有一样那这个味道就会比较想让他也很简单哦红色的地方啊这当然是往下嘛所以现在是我们向我们的时候呢我们先浪土虱啊做一点那个心中简单仅仅这样做啊早上起来就是只有让我喜欢啊崔一点是吧调到两百度那在三分钟时间上慢慢家只有一次把他调侃嘛然后暂停动用了你拿出来看一下他后面实施有一个出风口你也可以用味道来判别他的手深度我们看我觉得我啊我非常漂亮,后来我们在调那个面哭的部分很简单啊,面粉一般的面粉就要然后我们失的部分呢就是用激战跟您来让他的仇动物啊哎,我比较十一点越丑小鸭翅总和七月后吗?有一种中国个人比较爱武旦角读起来标题然后我们不上去,但我们楼的部分我们先处理后一点的美国快本期的热点就是我们现在今天授权里面属于比较便宜的部分,所以我们用这一块儿事件啊那这一块呢比如说安心工作还没有结束的时候,我们收一下五年有的不有了然后我们三一年前要先说这个严家了我们现在这种哎呀大哦没有想回不能在政治顺心其实要想改变实际上都是正面肯定进去的路牌啊我看到我又怕我往嘛你啊但对待MARTIN哦所以看到长得不错哎呀因为这样子我觉得警示啊所以他不掉了就像我一直讲等先后发言会掉部分我了我就没看笑着啊,我真的好自己的好久我们来加紧朋友说尤的作用就是要让哈利颜色的消息,然后陈水扁会齐声一点点好吧,就知道这个双方就跟我们说呢,有啊,朝下然后呢我们上面说已经有,如果这部处打算今年的台,然后给我家附近那个选书记因为我常去买,那我就不用怕不健康。我老婆也不一致认为那那这一块他们叫后我们一定要里面找到他的首度,所以我会得到大家百八十左右天桥的五分钟,六分钟后让我们等一下,我们中途一定要拿起来看一下其他的首都够。之后我们就抓住了如果注册的演示文稿放下,然后买条这样子那挑战这个时候其实我们也可以开始准备了一年部分这样子很简单,就这样我们给大家一点揭幕了加一点好吧,跳啊这一吗?奶黄酱这么多钱的一笔哦,这不,这一点的药事实上味道让当不是我是寒不要咬嗯各位好我我们马背半天哈不好书最自认哦另外说台不是只有没有买油库啊连考生都得不够吗?干爹呀今天高科技呀这个是指输液又村日本大叶高岛屋啊而且哎来然后由子然后肉吃都吃多的我们试试一下那只暖的我刚还想说他的手都不会太守小孩这样说我们看我们很鲜明下去就是说手把它这是完全打破一般已经由快的一个观念完全没有我们只牛排我们就是觉得欧盟要三分五分啊条文里面那头如果我刚室内口真的是外数那你那你那我们接下来来试试看我们的特点哈那所以我们先才我们要的大小要跟你放不公平的幺三零年嘛,是吧?那期考纲那个红感我是另外一个城市变得有着比较后未见你在专业训练谁都提着一这时候把它放心吧肯定一样一样他然后我们用这个监考盘放放进去河流的厚度要把我们需要用高温的帮助做所以呢我就说会调整两百多但是在三分钟我觉得差不多然后我们刚刚去给他这种完美哦能够为过了选情不会算嗯都有五他牛肉滚动软了好那好多次跟我说把陈选票啊因为哦他们那个肉吃跟他的软嫩度啊是无法想象会造成这样的的关系。就是因为他的过人气旋的关系是他导热啊非常非常的精神那地方我们就是和纽我它的颜色之美的农村或者是马士文并茂穗和外界最他说这个基地翠都被扣留的游子高付出我现在里面全部都很有味道了,就可以文件哎我因为我想要试试看他甚至我想的问题,所以我把和牛跟我们刚理了跑那时候我我说时候从来没有天牛排用机器以前从来没所以我先想到是一看他们不能达到五很快就会好的好那作战如果你想有自己的感觉哦舒服啊什么傻还是对这记载过?大家当时两美我们的时候交点钱吧着跟你讲啊有一个比送委员更高级的人所谓是没有告诉你们也就说像爷爷俗称的钻石言之比中国的东西甜度比较高因为它又是矿物远所以他配死牛排的帖子但这一块我们减去了这帮不了我就把画干爹的都是为他就说你为当天知道了多台我吃多的人嗯嗯嗯我从来没酒不喝酒可以的你看我要你很多次吃好多出温爽你好高天呐你不要让对我说我结婚了嗯大概我们的和牛啊我就是不这个大火经过的而且还就这样都现场收音啊你们不要例子之一叫哦哦有些人知道他们强调的里面的肉松软的你你不要不要公布我就是考的时间一个尊重爸爸让我有口饭吃吧。我我真心觉得这个是一个现代科技理念,可能是小家庭,然后又走走健康啊,其实你买一开他基本上什么都可以做,而且他没有让我的话,你就让我们一起能多那种,两年就一些。我有点想用它来做一些任务时,部队想到如果听得懂就听得到了。

市場上有很多 VPN 都是由中國公司在後面營運

在「Hidden VPN owners unveiled: 97 VPN products run by just 23 companies」這篇分析了 VPN 產業裡面背後的公司。

其中有兩個比較重要的事情,第一個是很多公司 (或是集團) 都擁有多個 VPN 品牌 (甚至有到十個品牌的),所以如果想要透過多家 VPN 分散風險時,在挑的時候要看一下:

另外一個是後面有多中國人或是中國公司在營運:

We discovered that a good amount of the free mobile-only VPNs are owned by Chinese companies, or companies run by Chinese nationals.

  • Innovative Connecting (10 VPN apps): Director Danian “Danny” Chen is a Chinese national (Chen’s LinkSure is the sole shareholder and shares the same address as Innovative Connecting)
  • Hotspot VPN (5 VPN apps): Director Zhu Jianpeng has a residential address in Heibei Province in China
  • Hi Security (3 apps): the VPN apps are part of Shenzhen HAWK Internet, a subsidiary of the Chinese major company TCL Corporation
  • SuperSoftTech (2 apps): while officially owned by Singapore-based SuperSoftTech, it actually belongs to independent app publisher Jinrong Zheng, a Chinese national based in Beijing.
  • LEILEI (2 apps): by the titles of the VPNs (all written in Chinese characters), it’s likely that this developer is Chinese or based in China
  • Newbreed Network Pte.Ltd (6 apps): again, while it has a Singapore address, the websites for its VPN apps SGreen VPN and NodeVPN are completely in Chinese, while NodeVPN’s site lists the People’s Republic of China as its location.

這些公司與產品都應該要直接避開... 在有能力的情況下,在 public cloud 上自己架設還是會比較保險。