Chimera:把喉嚨搬進瀏覽器的物理建模人聲合成器

Rust 引擎編譯成 WebAssembly,肺、聲帶、氣道全部用方程式模擬,唱歌、說話、饒舌都從模擬氣流裡長出來;HN 討論焦點整理。

HN 上出現一個新玩具:Chimera,把整副喉嚨搬進瀏覽器。作者 Jameson Hodge 以 Rust 寫引擎、編譯成 WebAssembly,在 AudioWorklet 上跑即時物理建模——肺、聲帶、口腔與鼻腔氣道全部用方程式模擬,唱歌、說話、饒舌的每一個聲音都從氣流裡長出來,不是從樣本檔案挑出來的。專案 2026 年 11 月 5 日才放上 GitHub,MIT 授權,截至 11 月 9 日已有 638 顆星。

五種玩法

模式 能做的事
Play 拖動舌頭、嘴唇、下顎,切面圖即時跟著變;支援電腦鍵盤與 Web MIDI
Speak 打英文文句或 IPA 音標,引擎排成發音手勢與韻律,畫面顯示手勢譜與子音表
Sing 鋼琴卷簾逐音符填歌詞,子音落在拍點之前
Beatbox 打擊墊加步進序列,每個鼓聲都是一組發音手勢
Bestiary 鳥鳴(雙聲帶鳴管)、海豹、鱷魚、大象
Duet 兩顆 3D 頭重播預先渲染的歌曲,以網址參數 ?show=<id> 呼叫

畫面上的一切跟著引擎狀態即時變動:氣道壓力、氣流、聲帶開合、頻譜與共振峰。男女童三種聲體連續混合,不用切換。

聲音從哪裡來

引擎選了分支交錯網格 FDTD 傳輸線當氣道模型,而不是常見的 Kelly-Lochbaum 反射管路。作者的理由是同一套框架能一次吃下多種需求。可變管長(喉位高低、唇突伸縮、不同體型)、閉合點累積的壓力與爆發、狹窄處的非線性氣流損耗、會振動的柔軟管壁,全都在同一張壓力節點圖上;鼻腔、鼻竇、梨狀窩、兩條支氣管、鳥類鳴囊這些分支也一樣。

幾個細節看得出工程深度:

  • 內部取樣率成人 96 kHz、小鳥與貓 192 kHz,再以多相半帶抽取降回輸出率。
  • 亂流不是白雜訊罐頭:每段管路算雷諾數,超過臨界值才在狹窄處下游注入偶極聲源;齒擦音的噴流打到下門牙還有專屬障礙聲源。
  • 閉合段面積歸零就完全不漏氣;內爆音、搭嘴音、噴音全走氣流方程,沒有任何特殊案例代碼。
  • 聲門用參數式脈衝驅動(抖動、微顫、漂移顫音、1/f flutter、重複喉音與週期倍增、vocal fry、假聲都在清單上),進階模式可切換 Ishizaka-Flanagan 雙質量聲帶模型;喉室褶以半頻率帶出 growl 與蒙古 kargyraa 唱法。

作者怎麼驗證「像不像真人」

repo 附一套測量工具,這點在同類玩具裡少見:

  • 對照 TSP 語音資料庫 23 位說話者,逐音標評分。
  • 對照兒歌資料集(CSD)評歌聲。
  • 調音爬山紀錄逐條入庫,一次改一個測量項,改動都留痕。

HN 討論焦點

討論串目前 72 分、10 則留言,筆數不多但密度高(2026 年 11 月 9 日 09:05 抓取,全樹讀完)。焦點集中三件事:

血統。starshadowx2 指出這跟 2017 年上線的瀏覽器互動聲道模型 Pink Trombone 一脈相承——同樣靠拖動舌頭與嘴唇來玩聲道,是不少人書籤裡的舊愛;grugagag 附和說立刻想起來了。他另問 Chimera 這名字是否在致敬歌聲角色重音テト(Kasane Teto),作者未在留言裡回應。

它真的能唱喉音。最令人意外的一則來自 EA-3167:調整假聲帶與發音位置後,成功輸出蒙古呼麥(Khoomei)泛音,Sygyt 唱法也出得來;卡爾卡拉(Kargyraa)的低音域他還找不到位置。對一個瀏覽器玩具來說,這是物理建模贏過取樣合成最直接的證據。

應用想像。goodmythical 認為變聲肯定訓練、唱歌練習、語言學習都能用,比「照著老師示範再多模仿一次」更有畫面。ykl 收錄了 X 上一串玩法示範影片,其中不乏一晚就能合出的極短曲;thirtygeo 則想起大學裡用國際音標的課。

手機目前是弱點。smusamashah 在手機上只聽到噪音、進度條卡住;martin_balsam 回報 iOS 沒事。作者在 README 說 AudioWorklet 需要安全連線環境,行動瀏覽器的音訊排程也還不齊。

一條 eye blink 笑話之外,整體風向是驚奇多於挑剔。

玩玩看

線上體驗:Chimera 網站,桌面 Chrome 或 Safari 體驗最完整,手機先降級期待。原始程式碼與離線渲染 CLI:GitHub repo。每個聲音都有對應的原因:你拖出來的氣道幾何,直接決定你聽到的每一分貝。

懶人包(含 HN 焦點整理):

手機直連備援:懶人包直連

譯註

  • Pink Trombone 為 Neil Thapen 在 2017 年左右做出的瀏覽器聲道互動模型(dood.al/pinktrombone),Chimera 可視為同一思路的工程化擴充。
  • 呼麥(Khoomei)、Sygyt、卡爾卡拉(Kargyraa)為圖瓦/蒙古喉音唱法的幾種類型,留言者原文如此。
  • 重音テト(Kasane Teto)為 UTAU 語音合成歌聲角色,留原名不譯。
  • HN 另有以作者 X 貼文為來源的小討論串(1 則留言),實質討論都在本篇引用的主討論串。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *