大家好,我是 Ai 学习的老章
周末收拾东西,又看到 20 年前我哥给我写的一封短信
![]()
我和大哥都成家立业,各自忙着各自的日子,交流越来越少,可我心里一直惦记着他,想起小时候的片段,时常被感动
这封信我珍藏了二十年,说它是我这些年不断努力的源泉之一,也不夸张
再看信上大哥这一手有点倔、有点飞的字,突然冒出一个念头:能不能用 AI 把他的字做成一整套字
正好 Claude 即将重置额度前还剩不少,就让它帮我设计一套可以双击安装,可以在 word 中使用的字体,能否搞定呢?
![]()
最后还真成了,从周五晚上到现在,一共设计了 1048 个汉字
![]()
我给这个字体取名:Chao(超)
但它离一套真正能用的字体还差得很远,这一天一夜下来,我对字体设计多了很多敬畏
我不是字体设计师,下面只是我这个外行的个人探索过程、踩过的坑、一些粗浅的认识566
一套字体到底是什么
我原来以为字体就是一堆字的图片,学了才知道差得远
电脑里的字体文件,存的是每个字的轮廓,用一段段贝塞尔曲线描出来,所以放多大都不会糊;每个字都放在一个看不见的方格里,业内叫字身框,通常分成 1000 个单位,字画多大、四周留多少空、下一个字从哪里起笔,都要用这些单位规定好
轮廓之外,字体里还藏着很多排版规则,比如竖排时逗号句号要挪到右上角,同一个字连着出现时能不能换一种写法,这些都写在字体文件里,由操作系统和排版软件去解读
一个字体文件哪怕有一处不规范,很多软件会直接拒绝加载,所以每次生成完都要用校验工具过一遍,Claude 用的是 OTS,再用 HarfBuzz 排版引擎实际排几段横排竖排看效果
这些对英文字体来说已经够操心,落到中文上,难度又是另一个量级
中文字体难在哪
一套英文字体,大小写字母加数字和常用符号,一百个字形左右就够用;
中文就难太多了,GB2312 光汉字就有 6763 个,最常用的一级字也有 3755 个,1988 年《现代汉语常用字表》说最少需要 2500 个常用字才能覆盖 97.97% 的语料
大哥这封信里,去掉重复的,一共只有 75 个汉字(下图是 GPT Image 处理过的纯净版)
![]()
数量只是第一道坎,汉字是一个个部件搭起来的,同一个“口”,放在“叶”的左边要瘦,放在“品”的上面要小,放在“回”的外面又要撑满,部件换个位置,比例、笔画长短和角度都得跟着变
专业的字体设计师讲究中宫的松紧、重心的高低、笔画粗细的统一,这些靠的是多年的眼力,几千个字一个一个看、一个一个调,一套中文字体做上一两年很正常
手写体还多一层难处,它得像同一个人在同一天、用同一支笔写出来的,字和字之间大小有些参差没关系,那是手写的味道,可笔画粗细、倾斜角度、连笔习惯一旦对不上,排成一段话马上露馅
第一版:146 个字
第一步是把信里的字一个个切下来,再和原文对上号
![]()
照片上每个字只有 65 像素左右,笔画也就 4 个像素宽,需要先把字放大,再用 potrace 描成曲线,得到 75 个真字,这是整套字体里最像大哥的部分
再用信里现成的偏旁拼出 71 个新字,比如“他”,就是信里拆出的单人旁加上“地”字右边的“也”,第一个版本就这样出来了,146 个字
![]()
结构表:自己建
146 个字连一段日常的话都排不下来,缺的字会自动回退成宋体,一段话里冒出几个方方正正的宋体,非常扎眼
想拼更多的字,得先知道每个字由哪些部件组成,这种数据网上有现成的,业内叫 IDS
比如,“好由女和子组成”这个事实谁都能用,但别人整理好的数据文件是人家的劳动成果,可能附带许可证,有的还要求衍生作品也按同样条款开放
我选择了最费时间的自建,让 Claude 从常用字开始,一个字一个字地写结构,“谢”是言字旁加“射”,“射”又是“身”加“寸”,这样一层层嵌套下去
结构表建起来之后,新的问题马上暴露:光靠切信里现成的偏旁,字数根本涨不上去,整封信里一个三点水都没有,所有带“氵”的字都拼不出来
笔画库:用笔画搭他没写过的字
Claude 从真字里把笔画一根根拆出来,建了一个 1105 根笔画的笔画库,横、竖、撇、捺、点、各种弯钩,然后用这些笔画搭出信里没有的部件,再用部件拼字
为了检验靠不靠谱,它做了一个“留一法”测试:把信里某个真字藏起来,假装不知道它长什么样,只用别的字的笔画重新搭一遍,再和真的放在一起比
![]()
上面左边是真的“地”和“这”,右边是重新搭出来的,下面几行是真字和新搭字混排,“河、沙、活”里的三点水,就是这样从无到有搭出来的
第一次看到这张图我挺惊喜,但是细看拼接的痕迹能看出来,要做细致,就要逐字微调
比如走之旁系列,就有相对明显的问题了,这种细节,正是专业字体设计师每天在做的事,几千个字,不断优化
![]()
Chao 现在的问题和后面的打算
目前这套字体最大问题是字数太少
原因就一个:原始的字太少,我手里只有这 75 个字,大哥落笔的轻重、起笔收笔的顿挫本来就没留下,后面每多一个字都得靠猜
后面我打算换个思路,先不用笔画拼接法了,单根笔画拆开再搭,丢掉的恰恰是手写最珍贵的那股连贯劲儿
人写字的时候,一笔接着一笔,上一笔的收尾带出下一笔的起笔,笔画之间有看不见的连线,粗细也跟着手腕的快慢一路变化,把笔画一根根拆下来,这些都留在了原来的字里,拿去搭新字,每一根单看都是原始风格,凑在一起却像是不同时候写的
而且笔画越少的字越难搭,“一、人、大、口”这种字没有别的部件帮着遮掩,每一笔的长短、角度、轻重都摆在明面上,差一点就露馅,搭出来的“口”方方正正,像个框
后面我计划用这 146 个字为底子,一次只做一小批,每个字都对照原信微调,宁可慢一点、少一点,也要像
再往后,也想试试用少量样本学习书写风格的生成方法,看能不能比拼接更自然,这条路行不行,我还没有把握,等有更好的结果了再跟大家分享
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.