fontgen仮称・実験中・未公開

文章で、書体をつくる。

「丸くて太いポップ体」「和風の毛筆で力強い」のような一言から、
そのまま打てるフォントファイル(.ttf)を作ります。

大きさ44px

作った書体

いずれも、下の文章だけを入力して自動で作ったものです(漢字入り約3,200字)。

表示されない文字(対応外の記号など)は、お使いの端末の標準フォントで代わりに表示されます。

しくみ

3つの段階です。

文章 → スタイルの数値「太さ・線の強弱・丸み・払い・ゆらぎ」など8つの数値に直します。似た依頼を探して小さな言語モデルに見せる方式で、パソコン内だけで動きます(外部サービスは使いません)。
数値 → 近い実在書体の特徴を混ぜるオープンライセンス(SIL OFL)の日本語フォント97本で学習したネットワークが、数値に近い書体の特徴を混ぜ合わせます。
文字の骨格 → 字形 → フォント文字ごとの骨格(線の通り道)から字形を描き、輪郭を取り出して .ttf に組み立てます。学習に使っていない漢字にも使えます。

どのくらい合っているか

測った数字をそのまま載せます。

測ったこと結果読み方
文章 → 数値の誤差
(テスト20問)
0.209 → 0.116標準値のままより約45%減。ただし正解は作者が付けた主観値で、厳密な評価ではありません
字形の一致度(IoU)
学習した書体 × 見たことのない漢字
0.5831.0 が完全一致
字形の一致度(IoU)
見たことのない書体 × 見たことのない漢字
0.488「骨格を太らせただけ」の基準線は 0.438。差は +0.05 と小さめ
生成にかかる時間
(漢字入り約3,200字)
約2〜3分パソコン1台・GPU なし

できないこと

権利について

このページの書体データには、次の条件があります。

権利の確認が済むまで、フォントファイル(.ttf)の配布はしていません。いまは試作の段階です。名前・運営・公開方法は決まっていません。

自分のパソコンで作る

文章を変えれば、別の書体になります。

python learned_font.py "上品で細い明朝体" -o out/min --kanji   # 学習型(漢字も)
python fontgen.py      "丸くて太いポップ体" -o out/pop          # ペン方式(速い)