Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chainsawriot/canigma

Cantonese Enigma
https://github.com/chainsawriot/canigma

Last synced: 27 days ago
JSON representation

Cantonese Enigma

Awesome Lists containing this project

README

        

# 廣東話謎碼機 Canigma
## 提案
廣東話謎碼機是將文字利用廣東話一字多音作 Obfuscation 之用。當使用語音生成軟件時,應可保留讀音。但己變成謎碼的文字未必可以轉換成輸入文字。(除非隨機選字並不隨機)

### 設計目標
中文字取代中文字,但保存廣東話讀音。

### 算法
假設輸入句子是「不誠實使用電腦罪」

每一個字會經過以下處理,以下以「不」字為例:

* 找出廣東音。(「不」的讀音有兩個分別是 bat1 和 fau2)
* 如輸入字沒有同音字,不改動只用原字。
* 如有一種以上讀音,詢問用戶是哪個讀音,或分析使用頻率和機器學習根據前後字推論讀音。(此例「不」的讀音為 bat1)
* 找出同音字。(以 bat1 檢索可得出 17 字,減去原來的不字,即有 16 個同音字。)
* 於同音字找出所有只有單一讀音的字。(廣東音為 bat1 的 16 個字裡,只有罼、鷝、熚、鏎、縪、篳、蓽、筆、嗶、蹕、吥、彃、滭、驆為單一讀音)
* 以隨機選擇的單一讀音的同音字取代原字。
* 如輸入字有同音字,但沒有單一讀音的同音字,我仍未想到可以保存原讀音的方法。可用羅馬字如 bat1 取代原字,但那就破壞中文字取代中文字的設計目標。

根據以上算法,「不誠實使用電腦罪」,會變成「筆鋮實史用澱努鱮」。以 CU-vocal (http://sepc495.se.cuhk.edu.hk/cuvocal/) 測試,可保留原來廣東話讀音。