尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Iceface Onomatoi — draw a shape, it speaks. Phonosymbolic Topology Synthesizer (web)
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Phonosymbolic Topology Synthesizer の簡易 Web 版。このフォルダ単体で完結する (本体 OnomatoiCore からの移植。音程変化なし / WARABE なし / COMPOSE なし)。 Onomatoi は、描かれた形を「意味の印象」と「発音するときの口の形」の両方として読み、 日本語に似た架空のことばとして発声します。 フィードバックデータの利用について: 👍👎 の投票と理由はブラウザ内 (localStorage) に のみ保存され、自動送信はされません。COPY で書き出して共有されたデータ (軸の値・生成語・評価・理由・タグ・描いた線の形 = 粗い筆の頂点列 [低解像度の折れ線座標]) は Onomatoi の生成モデル (音象徴バイアス表) の改善・学習に利用します。 個人を特定する情報は含まれません。 権利について / Rights: 本リポジトリのソースコード・音声サンプル・生成モデル (音素バイアス表・立法規則等) は、作品の仕組みの公開と検証のために閲覧可能にしています。 再利用・再配布・派生作品への組み込みは許諾していません (all rights reserved — LICENSE ファイルが無いのは意図的な選択です)。引用・研究・取材のご相談は issue へ。檢視完整 README ↗
▶ Play: https://onomatoi.com/
Phonosymbolic Topology Synthesizer の簡易 Web 版。このフォルダ単体で完結する (本体 OnomatoiCore からの移植。音程変化なし / WARABE なし / COMPOSE なし)。
Onomatoi は、描かれた形を「意味の印象」と「発音するときの口の形」の両方として読み、 日本語に似た架空のことばとして発声します。
フィードバックデータの利用について: 👍👎 の投票と理由はブラウザ内 (localStorage) に のみ保存され、自動送信はされません。COPY で書き出して共有されたデータ (軸の値・生成語・評価・理由・タグ・描いた線の形 = 粗い筆の頂点列 [低解像度の折れ線座標]) は Onomatoi の生成モデル (音象徴バイアス表) の改善・学習に利用します。 個人を特定する情報は含まれません。
権利について / Rights: 本リポジトリのソースコード・音声サンプル・生成モデル (音素バイアス表・立法規則等) は、作品の仕組みの公開と検証のために閲覧可能にしています。 再利用・再配布・派生作品への組み込みは許諾していません (all rights reserved — LICENSE ファイルが無いのは意図的な選択です)。引用・研究・取材のご相談は issue へ。
The source code, voice samples, and generation model in this repository are published for transparency and verification of how the work operates. Reuse, redistribution, and derivative works are not licensed (all rights reserved — the absence of a LICENSE file is intentional). Please open an issue for citation, research, or press inquiries.
iceface_onomatoi.html — 現行版 (詳細は下記「現行版が旧版から変わった点」)reaction.js / reaction.css / reaction-worker/ — 一筆へのひとこと (表示と公開API)about_onomatoi.html — 現行版の解説ページ (日英対応)ConsonantsOnomatoi/ — 現行版の音声サンプル (通常音声は 80kbps mp3、接合用 25 本は wav)
(cv_*/v_*/n_N/v_*_nn/diph_*)iceface_onomatopian.html — 旧版 (2026-06-22 時点でアーカイブ、以後更新なし)about.html — 旧版の解説ページConsonants/ — 旧版の音声サンプル 108 mp3index.html — ルート URL からのリダイレクト (現行版へ。旧版へのリンクも掲載)mp3 を fetch するため file:// 直開きは不可。HTTP で配信する:
cd "このフォルダ"
python3 -m http.server 8765
# → http://localhost:8765/ を開く
Web サーバ (静的ホスティング) にフォルダごとアップロードすればそのまま動く。
サンプル (現行版で約 4.3MB) はページを開いた直後から並列読込される。
「一筆へのひとこと」と「おのまといで話す」は、一筆から生まれた語への2つの返答モード。追加機能として、公開時は reaction-worker/ の Cloudflare Worker を使う。「音の地図の視点を加える」を選ぶと、作者の音のイメージを最大2音だけ Luna の短い反応に添える。音の地図は初期状態でオン。
音声生成と描画は Worker が利用できない場合も動く。
iceface_onomatoi.html?twins=1 で開く。一筆を左の正方形に描くと左右に同じ語が現れ、
右だけを40%〜最大200%に拡大縮小して聴き比べられる。上限は形が枠に収まる範囲。
100%への復帰・左右の個別再生・左→右の連続再生・停止・描き直しに対応する。
本体HTMLの interpretStroke と playEvent、同じ録音を直接使う。左右とも600×600の
共通座標で、元の点列を変形してから本体の粗い筆処理に通す。画面の幅を変えても再生成しない。
同じ語になる結果もそのまま表示する。保存・外部送信なし。再読み込みで一筆は消える。
つまみの真下に「全倍率の帯」を出す: 40%〜上限を1%刻みで同じ読み取りに通し、語が続く区間を幅に比例させて並べる
(区間の長さで5段の青、4%以内に元の語へ戻る区間は橙・縦線=100%・目印=いまのつまみ)。区間を押すとつまみがその中央へ動き右の声が鳴る。
計算は数本ずつ分けて行い、描き直すと打ち切る。区間化は TwinsGeometry.runs。
「大きさ / 上下 / 左右」の切替 (既定は大きさ) で、右の形の動かし方を選べる。上下・左右は形も大きさも変えずに平行移動し、
つまみは形の外枠の中心の位置 (枠の0〜100%・1%刻み・範囲は形が枠に収まるところまで・初期値=左の一筆の位置)。
帯は動かし方ごとにつまみの全範囲を計算し (区間化・色・押す・分割計算は大きさの帯と同じ部品)、縦線=元の位置。
切り替えると、その動かし方のつまみは元の位置から始まる。平行移動は TwinsGeometry.translate / moveTo / positionRange。
切替にはさらに「回転 / 横に伸ばす / 縦に伸ばす」がある (並びは 大きさ / 上下 / 左右 / 回転 / 横に伸ばす / 縦に伸ばす・狭い幅では2段)。
回転は形の外枠の中心を軸に回す (度・1度刻み・元=0・+は画面で時計回り・範囲は0から連続して枠に収まる角度だけ)。
横 / 縦に伸ばすは外枠の中心を軸にその軸だけ拡縮する (%・40%〜枠に収まる上限・最大200%・もう一方の寸法と位置は不変)。
帯・押す・分割計算は同じ部品。幾何は TwinsGeometry.rotate / rotationRange / stretch / stretchRange (元の点列は変えない純粋関数)。
表示と操作は twins.js / twins.css、幾何処理は twins-geometry.js。
検査: node test/twins.mjs。実際の聴感とiPhone/iPadでの操作は別途確認する。
主画面は一筆のキャンバス・ひらがなの結果・「もう一度、聴く」・「ひとつ前」の聴き比べ。
下部の「描く」「声の見本」「これまでの声」で切り替える。パネルはキャンバスを覆わず、下に展開する。同じ入口を押すと閉じる。
「これまでの声」は実際の描画のみ、最大100件のページ内履歴。見本・聴き直しは追加しない。再読み込みで消える。既存の研究用ログとは別管理。
「一筆へのひとこと」はボタンを押したときだけ GPT-6 Luna へ表示語・6軸・角と輪の数を送る。描線座標や音声は送らず、返答は線と言葉からの連想として表示する。
iPhone/iPad版で広がる遊びを下部に紹介する。現状は準備中表示で、ストアへの架空リンクは置かない。
web-play.css / web-play.js は表示・操作専用。音声生成と描画判定は従来のHTML内の実装を使う。
?dev=1 は軸スライダー・ローマ字入力・研究用ログなどを残す。フッターで日本語/英語を切り替えられる。
描く — キャンバスに 1 ストローク描くと 6 軸を抽出し、シニフィアンを生成・発声する。 かたちの意味論 4 軸 (size/sharp/texture/bright) + 口のかたち 2 軸 (round/open — その形を発音するならどんな口になるか。丸→あ/横棒→い/小円→う/斜めに伸びた楕円→え/ 少し縦長の丸→お)。開いた弧 (⊃⊂∩∪ のような形) や開いた一角 (<>∧∨ のような形) は 向きと大きさに応じた固定語、開いた一角は語末「ん」のない角度語になる。初期プリセットでは、 完成したハートは認識度に応じて myuun (みゅーん) / kuun (くぅん)、輪郭星は chigyaan (ちぎゃーん)、自己交差する一筆五芒星は認識度に応じて **ayanoharu / ayanofaru / ayanoparu(あやのはる/あやのふぁる/あやのぱる)**になる。 葉・三日月・雲・花・しずく・稲妻も三段階で認識し、十分当てはまらない形は従来の6軸生成へ戻す。 同じ描写は同じ語になる (決定的生成・粗い筆 = 珠の頂点化+知覚バケットで再現性を担保)。
TUNE — ?dev=1 の開発画面では、スライダーで軸を直接いじって ▶ PLAY。
プリセット — bouba/kiki/maluma/takete + 日本語オノマトペ 6 種。 初回タップは正確な発音、2 回目以降はタップごとに違う変奏。
LOG — 行をタップするとそのシニフィアンそのものを再生。
v_<v>_nn.mp3 (頭-19dB→尾-17.5dBFS に事前整形済み) で
直前母音から続けて鳴らす。無ければ n_N.mp3 にフォールバック。ai/au/ei/oi/ou/ui/uo/ea/eo/oa/ua の11種へ拡張し、
iye/kw/gw/sw/zw/hy/py/ry 系の実録音CVも直接入力・制定語で利用する。CVの実発声終端を
読込時に測り、録音末尾から持続母音へ滑らかに受け渡す。kaii = かい・い、aaii = あー・いー、同母音列は
iiii = ii|ii のように2モーラごとに言い直す。直後が撥音 (iiiin/kooon) の列は
途切れず持続する。Consonants/ の一部 (母音 v_a〜o, ちゃ行, cv_pi) はデノイズの
ゲートで末尾がデジタル無音化していた。ConsonantsOnomatoi/ は生成時に末尾トリム済み。myuun/kuun、
輪郭星→chigyaan、一筆五芒星→ayanoharu/ayanofaru/ayanoparu を割り当てる。葉・三日月・雲・花・しずく・
稲妻は中心/近傍/外縁の三段階固定語を持つ。候補間の信頼度差が足りない形は従来の6軸生成へ戻す。データ形式は FB_VERSION = 5 (v4 以前の 👍👎 蓄積とは、legalize でモーラ構造自体が変わっているため非互換。
v5 は v4 に辞書の版 lex を足しただけ)。
発声のたびに 👍 (イメージ通り) / 👎 (違う) を投票できる。投票は端末の
localStorage (onomatoi.feedback) に蓄積され (最大 500 件)、FEEDBACK パネルの COPY で JSON 書き出し。
各レコードは { 全6軸の値, モーラ列, 生成語, K値/角数/鋭さ/ループ, 描線の頂点列 (draw時), 評価, 理由 (任意), タグ (誤差方向: harder/softer/tooLong/... 任意), エンジン版, 辞書の版 (lex・例 kou-2026-10) }
(FB_VERSION 5。書き出しと「送る」の本体にも lex が付く)。
書き出した JSON を開発 (Claude) に渡すと、軸領域 × 音素の偏り集計から
bias 表をデータ駆動で再調整する。FEEDBACK_ENDPOINT 定数に URL を設定すれば、
投票を外部 (Google Apps Script 等) へ POST 送信して公開ユーザーから収集もできる。
企画・音象徴エンジン・実装:PuppeTwin
Voice ・調音設計の検討:しまなかこう (koh Shimanaka)
制作:PuppeTwin