目录

MoonSpeech

License

MoonSpeech 是一个完全采用 MoonBit 编程语言原生编写的、高性能且轻量级的跨平台拼音输入法引擎与关联纠错系统。

本项目专为 WebAssembly 沙箱、富文本编辑器嵌入以及边缘嵌入式设备等对运行体积和安全性有苛刻要求的场景设计,实现了零外部依赖(Zero-FFI)的原生中文输入转换底座。


🚀 核心特性

  • **智能拼音切分器 (Pinyin Segmenter)**:基于确定性有限状态自动机(DFA/FSM),支持全拼、简拼(首字母拼音)的动态切分与边界纠错。
  • **高效双数组前缀树 (Double-Array Trie)**:采用高度压缩的 DAT 结构存储海量拼音汉字映射字典,提供 O(1)O(1) 检索速度和前缀模糊补全。
  • **统计语言模型与整句输入 (HMM & Viterbi)**:基于二元统计关联度(Bigram)和隐马尔可夫模型,结合维特比(Viterbi)算法动态规划求解概率最高的最优汉字序列,支持流畅的连续整句输入。
  • **关联纠错与模糊音 (Fuzzy & Keyboard Proximity)**:
    • 物理键盘纠错:根据键盘字母的物理相对坐标对邻近按键进行加权修正(例如将 'g' 自动纠错为 'f''h')。
    • 南方模糊音:原生支持 s/shc/chz/zh 以及 n/l 自动对齐和纠错。
    • 编辑距离纠错:利用 Damerau-Levenshtein 距离动态计算拼写相似度,抵御拼写遗漏。

🛠️ 项目结构

moonspeech/
├── moon.mod             # 项目元数据
├── LICENSE              # Apache-2.0 许可证
├── README.md            # 项目说明与快速上手
└── src/
    ├── pinyin/          # 拼音切分与状态机
    ├── trie/            # 双数组前缀树 (DAT) 实现与字典检索
    ├── lm/              # HMM 维特比解码器与 Bigram 语言模型
    ├── corrector/       # 模糊音纠错与编辑距离计算
    └── cmd/main/        # 命令行交互工具与演示端 (is-main: true)

⚡ 快速开始

1. 克隆与编译

确保已安装 MoonBit 编译器工具链,随后在项目根目录运行:

# 格式化代码
moon fmt

# 类型检查
moon check

# 运行单元测试
moon test

# 运行交互式命令行 Demo
moon run src/cmd/main

2. 代码示例

// 示例:初始化 Trie 字典与拼音转换
let trie = @trie.DoubleArrayTrie::new()
trie.insert("ni", "你")
trie.insert("hao", "好")

// 进行拼音整句转换
let engine = @lm.InputEngine::new(trie)
let result = engine.translate("nihao")
// result 将会给出 ["你好", "泥好"] 等经过 Bigram 排序后的候选词

📄 开源许可

本项目采用 Apache-2.0 许可证开源。

关于

本项目是一个完全基于 MoonBit 语言原生编写的高性能、面向 WebAssembly 原生的轻量级拼音输入法引擎。它填补了 Web 沙箱及边缘计算环境下纯 Wasm 原生中文输入引擎的空白。

50.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号