太陽能神諭隨身聽: Difference between revisions
| Line 112: | Line 112: | ||
注意:這些計算均為 無量綱(dimensionless)。 | 注意:這些計算均為 無量綱(dimensionless)。 | ||
所謂無量綱特徵向量,指的是經過正規化後不再帶有物理單位(伏特、安培、歐姆)。例如透過比值 Vmpp/Voc 或 Impp/Isc,這些特徵只捕捉相對形狀或行為,而與絕對大小無關。這在比較或分類不同光照條件下的 I–V 曲線時至關重要,因為它能確保差異反映的是裝置的內在特性,而不是量測條件的變動。 | 所謂無量綱特徵向量,指的是經過正規化後不再帶有物理單位(伏特、安培、歐姆)。例如透過比值 Vmpp/Voc 或 Impp/Isc,這些特徵只捕捉相對形狀或行為,而與絕對大小無關。這在比較或分類不同光照條件下的 I–V 曲線時至關重要,因為它能確保差異反映的是裝置的內在特性,而不是量測條件的變動。 | ||
===7-D Voice print(無量綱化)=== | |||
; FF (填充因子) | ; FF (填充因子) | ||
: <code>FF = (Vmpp * Impp) / (Voc * Isc)</code> | : <code>FF = (Vmpp * Impp) / (Voc * Isc)</code> | ||
| Line 138: | Line 138: | ||
File:I-V tester made by Marc Dusseiller_2.jpg|I-V 曲線測試儀的測量結果被上傳至 Thingspeak 和本機伺服器後並在 Max/MSP 中以fetch指令取得。 | File:I-V tester made by Marc Dusseiller_2.jpg|I-V 曲線測試儀的測量結果被上傳至 Thingspeak 和本機伺服器後並在 Max/MSP 中以fetch指令取得。 | ||
</gallery> | </gallery> | ||
=== ml.scale 與 ml.principle 作為模糊提取的前處理 === | |||
為了讓每片太陽能迷你碟的聲音能被智慧合約穩定驗證並重現,Max/MSP 的 ml.* 函式庫是一個解決方案。 | 為了讓每片太陽能迷你碟的聲音能被智慧合約穩定驗證並重現,Max/MSP 的 ml.* 函式庫是一個解決方案。 | ||
ml.scale:先將七個原始特徵正規化到 0 到 1 的範圍。 | ml.scale:先將七個原始特徵正規化到 0 到 1 的範圍。 | ||
Revision as of 15:11, 4 September 2025
-
Sony MD player Sony MZ-R55.
-
Sony WM-F107 exhibited in Solar Biennale 2025 in Lausanne.
-
The DIY I-V tester made by Marc Dusseiller.
摘要
太陽能神諭隨身聽(Solar Oracle Walkman) 是一個能源交易與聲音雕塑的探索。外觀參考了復古的 Sony WM-F107,而內部裝置則用於測量一片 6 × 6 公分手工製作、帶有藝術圖案的 DSSC(染料敏化太陽能電池)的 I–V 曲線,其 TiO₂ 多孔層透過氰版顯影或網版印刷製成。每一片「太陽能迷你碟」都會產生獨特的 I–V 聲紋(voiceprint),並透過 oracle(將鏈外資料安全橋接至區塊鏈的機制)傳送至智慧合約進行驗證。 概念上,這台隨身聽運作如同冷錢包:每片 DSSC 是一個實體代幣,而內建的 I–V 測試器則是其讀取器。完成驗證後,隨身聽會播放生成的、語意受限的音樂;鏈上的判定會作為播放的門檻。 在目前的 Max/MSP 原型中,量測到的 I–V 曲線會被分解為七個無量綱特徵 [FF, Vmpp/Voc, Impp/Isc, Rs*, Rsh*, Σκ, A*],可選擇使用 PCA 降維,然後手動映射至 nn~ RAVE 解碼器的潛在輸入口,以達成可重現的聲音身份,而不依賴明確的語意結構。下一步,我們將記錄在不同光照下的連續 I–V 數據,並訓練 RAVE 編碼器以學習每片電池的緊湊且具魯棒性的潛在嵌入。這些嵌入會輸入至模糊提取(fuzzy extractor)流程(量化 → 輔助資料錯誤更正(ECC) → 雜湊),以導出穩定的金鑰。鏈上只會錨定該金鑰的承諾值,以維護隱私並允許驗證。若能保持向量空間的幾何關係,潛在空間中的距離將能反映光伏行為的差異,使裝置能作為一部「占卜機」,連結物質、感知與想像。
生成系統中感知進展的聲音化
感知與人工智慧都可以被理解為生成機制:它們不只是被動接收訊號,而是主動進行預測與修正。在隨身聽中,鏈上的聲紋扮演著錨點──以經驗痕跡來限制生成──而解碼器的表現力則像是召喚,在可驗證的範圍內支撐想像。 依據 Stinson 的「通用機制觀」以及 Feigl 的「對應模型」,我們設計了從量測(I–V 曲線)到潛在變數(音訊嵌入)的明確橋接。這使得作品能夠被視為一項實驗:每一個聲音決策都可以追溯至能量曲線上的可測變換。
-
Stinson的通用機制圖表。
-
科學理論的邏輯經驗主義圖表。轉載自 Herbert Feigl 1970。
-
Stinson 和 Feigl 模型應用於目前專案結構的圖表。
實驗
太陽能神諭隨身聽主要由三個元件組成: I-V 曲線測試器 具圖案的太陽能迷你碟 智慧合約 每片迷你碟的 I–V 曲線會被量測並上傳至部署於 Sepolia 測試網 的智慧合約進行驗證。一旦其 I–V 數據通過驗證,相應的音樂就會被生成並允許由隨身聽播放。每片「太陽能迷你碟」的聲音被期望具有 可重現性、生成性與語意性——如同一段具備清晰機制的生成音樂,而非完全隨機。 為了讓每片太陽能迷你碟成為生成裝置,我首先假設需要設計一個 雜湊運算 來獲得每片太陽能玻璃的「聲紋 (V)」。雜湊運算是將輸入資料(例如數字、文字、檔案,或一組 I–V 曲線參數)送入數學函式或演算法以產生雜湊值的過程。雜湊演算法可以處理任意長度的輸入,但總是輸出固定長度的結果。它們被設計為: 計算快速 相同輸入必定得到相同輸出 即使輸入稍有改變,輸出也會截然不同
┌───────────────────────────────────────┐
│ Solar Oracle Walkman v1 — 概覽 │
└───────────────────────────────────────┘
[光] ──▶ [具圖案的 DSSC「迷你碟」]
│
▼
[I-V 掃描/取樣]
ESP32-S3 I-V 測試器
(四線量測,逐步負載)
│ 生成 I–V 曲線
▼
[特徵擷取,7D]
F = [FF, Vmpp/Voc, Impp/Isc, Rs*, Rsh*, Σκ, A*]
│
├───────────────────────────────┬───────────────────────────────────────────┐
│ │ │
▼ ▼ ▼
【聲音路徑(即時)】 【Oracle/鏈上路徑】 【模型訓練(離線)】
ml.scale 正規化 打包 {pubkey, cell_id, F} 資料集:多片 DSSC I–V → 7D
│ │ │
ml.principle (PCA) POST /api/iv 至 Oracle API 訓練 RAVE(或輕量替代模型)
│ (本地/雲端) │
映射至 RAVE nn~ 解碼器潛在輸入口 智慧合約驗證並紀錄 匯出模型(onnx/ckpt/nn~)
│ │ │
│ │ │
▶ 即時聲音輸出 回傳 tx_hash / OK|FAIL 部署於 Max/MSP (nn~)
│ │
└───────────────┬───────────────┘
│ (狀態回饋)
▼
[播放授權/語意閘]
OK → 進入「語意穩定」播放區段
FAIL → 提示重新量測/重新註冊/降噪
┌──────────────────────────────────────────────────────┐
│ Solar Oracle Walkman v2(RAVE 潛在向量 z)— 概覽 │
└──────────────────────────────────────────────────────┘
[光] ──▶ [具圖案的 DSSC「迷你碟」]
│
▼
[連續 I–V 掃描]
ESP32-S3 I-V 測試器
(四線量測,逐步負載)
│ 生成連續 I–V 曲線
▼
[RAVE 編碼器]
以連續 I–V 數據訓練
│
▼
[潛在嵌入 z = (z1, z2, …, zn)]
│
▼
[fuzzy extractor(逐維處理)]
對每個 zi:
ml.scale(正規化)
ml.principle(PCA)
輸出:穩定化 z′ = (z′1, z′2, …, z′n)
│
├───────────────────────────────┬───────────────────────────────────────────┐
│ │ │
▼ ▼ ▼
【聲音路徑(即時)】 【Oracle/鏈上路徑】 【模型訓練(離線)】
穩定化 z′ → RAVE nn~ 打包 {pubkey, cell_id, z′} 資料集:多條連續 I–V 曲線
解碼器潛在輸入口 │ │
│ POST /api/z′ 至 Oracle API 訓練 RAVE(編碼器–解碼器)
▶ 即時聲音輸出 (本地/雲端) │
│ 智慧合約驗證並紀錄 匯出編碼器至 Max/MSP (nn~)
└───────────────┬───────────────┘ │
│ (狀態回饋) 部署編碼器於 Max/MSP
▼
[播放授權/語意閘]
OK → 進入「語意穩定」播放區段
FAIL → 提示重新量測/重新註冊/降噪
(註解)
與 v1 的差異:輸入為完整連續 I–V 曲線,而非僅 7D 特徵。
RAVE 編碼器學習光照魯棒的潛在向量 z;PCA 將 z 穩定化為 z′(扮演fuzzy extractor角色)。
Oracle 僅錨定承諾(z′ 或衍生金鑰的雜湊)。
聲音引擎與 oracle 共享相同的穩定化 z′ → 保持一致身份 + 生成對應映射。
第一個原型:7-D聲紋和模糊提取I-V曲線
一個 DIY I–V 曲線測試器被連接至電腦,其量測的 16 個 I–V 曲線點會透過序列通訊傳送到 Max/MSP。I–V 曲線通常用來分析太陽能電池的特性,因此在此被視為電池的「聲紋」,尤其是那些帶有氰版與網版印刷 TiO₂ 層的 DSSC。在本研究中,I–V 曲線的形狀被拆解成 七個特徵,並對每個特徵應用機器學習,讓電腦能夠「學會」其形狀。此方法預期能夠保證對光照強度的不變性,使太陽能迷你碟的音訊輸出在不同光照下依舊保持穩定再現。聲紋 V 定義為:
V = [FF (填充因子), Vmpp/Voc, Impp/Isc, Rs (串聯電阻), Rsh (旁路電阻), 曲率總和, I–V 曲線面積]
注意:這些計算均為 無量綱(dimensionless)。
所謂無量綱特徵向量,指的是經過正規化後不再帶有物理單位(伏特、安培、歐姆)。例如透過比值 Vmpp/Voc 或 Impp/Isc,這些特徵只捕捉相對形狀或行為,而與絕對大小無關。這在比較或分類不同光照條件下的 I–V 曲線時至關重要,因為它能確保差異反映的是裝置的內在特性,而不是量測條件的變動。
7-D Voice print(無量綱化)
- FF (填充因子)
FF = (Vmpp * Impp) / (Voc * Isc)- Vmpp/Voc 與 Impp/Isc
- 無量綱比值,捕捉最大功率點的操作位置。
- Rs* 與 Rsh*(無量綱電阻估計)
- 先估計在重取樣曲線上的局部斜率:
Rs ≈ -ΔV/ΔI (在 I ≈ Isc 附近)Rsh ≈ -ΔV/ΔI (在 V ≈ Voc 附近)- 再轉換為無量綱形式:
Rs* = Rs * (Isc / Voc)Rsh* = Rsh * (Isc / Voc)- Σκ (曲率總和)
- 沿著 64 點重取樣 I–V 折線,累積各段角度變化:
Σκ = Σ |angle(s_i, s_{i+1})|- (直覺上:Σκ 越大,曲線「彎曲」程度越明顯)
- A* (I–V 曲線面積,正規化)
- 定義:從 V=0 到 V=Voc 的曲線下方面積,除以
(Isc * Voc) - 離散近似:
A* ≈ (Σ I[i] * ΔV[i]) / (Isc * Voc)
-
施惟捷製作的帶有網版印刷圖案和蜀葵染料的 DIY DSSC。
-
施惟捷製作的帶有藍曬圖案的 DIY DSSC。
-
I-V 曲線測試儀的測量結果被上傳至 Thingspeak 和本機伺服器後並在 Max/MSP 中以fetch指令取得。
ml.scale 與 ml.principle 作為模糊提取的前處理
為了讓每片太陽能迷你碟的聲音能被智慧合約穩定驗證並重現,Max/MSP 的 ml.* 函式庫是一個解決方案。 ml.scale:先將七個原始特徵正規化到 0 到 1 的範圍。 ml.principle:再進行 PCA(主成分分析),將七個值轉換至新的 7 維 PCA 空間。PCA 是一種數學方法,能將數據旋轉並壓縮到較少維度,同時保留最多變異。 ml.principle 是 Max/MSP 內實作 PCA 的物件: 它會從訓練數據中學習主軸 並將新的數據投影至該降維空間
-
機器學習過程針對原始七個特徵的max patch範例:[FF、Vmpp/Voc、Impp/Isc、Rs、Rsh、curvature_sum、area]。
RAVE 作為可信神諭空間與生成音樂引擎的介質
=== 核心概念:可驗證語義空間(VSP) === 本專案將 I–V 曲線映射到一個可驗證語義空間(Verifiable Semantic Space, VSP),使「距離」能對應物理行為的差異(如光照條件、阻抗變化等)。在此空間中:
聚類性:同一片 DSSC 的量測嵌入彼此接近。 分離性:不同 DSSC 的嵌入保持可分離的幾何結構。 幾何一致:嵌入空間的成對距離在跨模態映射後仍具有解釋力(向量空間保存, VSP)。 此「可信神諭空間」負責將鏈下之物理量測限制為可解釋、可對應之語義座標,並作為生成引擎(RAVE 解碼器)之條件。
=== I–V 專屬 Encoder(Colab 訓練) === 由於 RAVE encoder 不處理曲線資料,本專案以 Conv1D 為基礎訓練 I–V 專屬 encoder,將連續的 7 維聲紋(FF、Vmpp/Voc、Impp/Isc、Rs*、Rsh*、curvature_sum、area)映射至與音訊解碼器維度對齊的潛在向量 z:
訓練目標(對比學習):使用 triplet loss(同板拉近、異板拉遠)建立可分離幾何。 先驗對齊(prior matching):使 z 之分布貼近下游解碼器假設的高斯先驗(便於穩定聲音化)。 資料增強(抗擾動):以增益縮放、小雜訊、時間抖動等方式模擬量測噪聲與照度漂移,提升跨條件再現性。 此設計的重點在於:再現性來自 encoder 的學習與幾何結構,而非依賴後續的鏈上流程。
=== RAVE/音訊解碼器:跨模態聲音化 === 聲音解碼器(可為現有 RAVE decoder 或獨立訓練之音訊模型)將 z 聲音化。其角色與特性:
跨模態對映(I–V → audio latent):z 僅作為條件或控制信號,對應到 AM/FM、濾波、失真、空間參數、動態輪廓等。 可重現風格:因 encoder 已對抗噪且幾何穩定,同一 DSSC 的多次量測可生成可重現的音色與動態。 語義分工:語義秩序與幾何關聯由 encoder 端維持;decoder 端聚焦美學與編曲語境(非身份判定)。
方法論基礎與設計原則
重建性(Reconstruction):轉換後的表徵可回溯或對應至來源結構,維持可解釋性。 循環一致性(Cycle-Consistency):往返映射保持意義不變,避免語義漂移。 向量空間保存(VSP):嵌入之間的相對關係在跨模態映射中被保留,保證可比性。 上述三項約束確保 VSP 可作為「可信神諭空間」:它不是以語意敘事替代物理實在,而是以幾何關係將生成行為錨定於可驗證的量測痕跡。
分工與創作自由
鏈下(本節):建構可驗證語義空間,訓練 I–V encoder 與聲音解碼器,完成「物理 → 語義 → 聲響」之跨模態流程。 鏈上(他節):處理承諾與驗證等機制。
藝術自由:在維持可驗證幾何的前提下,解碼與編曲策略完全開放;同一幾何可支撐多樣化的美學實作。
-
這張圖將目前流程與包含向量空間保存 (VSP) 的理想化設計進行了比較。左側實現了可重複性:每個 DSSC 都對應到潛在空間中的穩定位置,從而允許身份驗證,但無法在單元之間建立有意義的關係。右側,VSP 確保潛在空間中的成對距離反映了光伏特徵的差異,不僅提供了可重複性,還提供了關係意義。從這個角度來看,預言機從驗證真實性的守門人演變為揭示能量曲線在共享語義結構中如何關聯的「占卜機器」。
智慧合約驗證系統
概述
Solar Oracle Walkman的智慧合約部署於以太坊 Sepolia測試網(合約地址:0xeF19a90e5786dd0e89264F38f52CF81102db938e),作為去中心化的數位公證人,負責驗證並永久儲存手工製作DSSC的I-V聲紋數據。該合約透過先進的密碼學驗證機制,確保每片太陽能迷你碟的電子指紋具有不可篡改性與可追溯性。
驗證流程
Fuzzy Extraction與承諾生成
智慧合約採用模糊提取(Fuzzy Extraction)技術處理連續的I-V曲線測量數據:
- 量化處理:將浮點數的7維聲紋
[FF, Vmpp/Voc, Impp/Isc, Rs*, Rsh*, curvature_sum, area]透過可學習量化器轉換為離散值 - 錯誤更正:應用漢明碼(Hamming ECC)進行單位元錯誤更正,確保測量噪聲不影響金鑰穩定性
- 金鑰導出:從量化後的數據提取穩定的二進位金鑰
K - 承諾生成:計算
commitment = keccak256(K || salt)作為鏈上承諾值
Panel ID與身份管理
系統採用匿名化的身份管理機制:
- Panel ID生成:
panel_id = keccak256("panel-id" || K) - 自動分類:無需人工指定ID,合約根據panel_id自動歸檔測量記錄
- 身份驗證:新測量重建金鑰
K',計算keccak256(K' || salt)與既有承諾比對
安全機制
EIP-712結構化簽名
合約實作EIP-712標準,提供結構化數據簽名:
struct IVMeasurement {
uint256 timestamp;
bytes32 panelId;
bytes32 commitment;
uint256[7] voiceprint;
bytes32 nonce;
}
數據完整性檢查
- 時間戳驗證:防止重放攻擊
- Nonce機制:確保每筆交易唯一性
- 聲紋範圍檢查:驗證7維特徵值在合理範圍內
- 承諾一致性:驗證fuzzy extraction產生的承諾值
儲存結構
測量記錄
每筆驗證通過的I-V測量記錄包含:
- Panel ID:DSSC的匿名化識別碼
- Commitment:Keccak-256承諾雜湊
- Timestamp:測量時間戳
- Voiceprint:7維I-V聲紋特徵
- Verification Status:驗證狀態
歷史追蹤
合約維護每片DSSC的完整測量歷史:
- 性能變化:追蹤填充因子、效率等參數的時間演變
- 環境影響:記錄不同光照條件下的表現
- 老化分析:提供長期性能退化數據
神諭機制
智慧合約作為區塊鏈神諭,將鏈下的物理測量數據安全橋接至鏈上:
- 數據驗證:確保I-V曲線測量的真實性
- 身份確認:透過fuzzy extraction驗證DSSC身份
- 狀態更新:更新鏈上的設備狀態記錄
- 事件觸發:驗證成功後觸發音樂生成授權
討論
- 目前的狀態 神諭隨身聽作為一件簡單的藝術雕塑,能即時將 DSSC 的 I–V 曲線聲音化。經過正規化後,七個特徵的聲紋在光照變化下依然穩定。映射設計刻意保持極簡,使得可重現性的評估變得直接明瞭。在 Max/MSP 中已經建立了一條從感測到聲音的受控流程。感知與人工智慧被視為同一生成機制的兩個面向。此處「幻覺」的工作定義是:生成過程漂移到可接受證據與先驗之外。大腦會進行預測與修正;幻覺則是預測失配的極端情況。oracle 提供了外部錨點,使生成保持在可驗證的範圍內,同時保留創造性變異的空間。
- 理論目前的作用 Stinson 的「通用機制觀」激發我們將 DSSC–RAVE 與人類感知視為同一生成架構的不同實現。Feigl 的「對應模型」則驅動我們設計從觀測到潛在變數的明確橋接,讓每一個設計步驟都能追溯至可測痕跡。這些理論視角本身不是最終目標,而是資料集建立的設計指南映射的先驗假設偏移與變異的評估指標目前的限制在於缺乏向量空間保存 (VSP);沒有 VSP,潛在空間只能作為身份的穩定註冊,卻無法保證不同電池之間的關聯意義。因此,oracle 主要只是一個驗證真偽的守門人,卻提供不了太多語意解釋。然而,若能引入 VSP,oracle 則可能演化成為一台真正的「神諭機」:不僅能驗證真實,還能揭示不同能量曲線之間的關係,將物理差異轉譯為另一領域中可解釋的結構。
- 下一步 建立一個小而乾淨的 DSSC 聲紋訓練集,控制光照與溫度,並測試單調性與局部平滑性的先驗條件。原型化 vec2vec 式的約束:簡單的循環檢查與距離保持,並在保留測試集中記錄當「聲音鄰域」無法對應「能量曲線鄰域」的情況。研究輕量化推論目標與壓縮方法,以便未來能應用於行動裝置。探索能否將可追溯的能源紀錄註冊為來自聲紋的可驗證雜湊,並評估失效模式與防偽極限。「oracle」不僅指區塊鏈上的鏈外數據橋接機制,也回應了其古代語源——神廟的「神諭」或「占卜」。當 DSSC 聲紋僅用於驗證時,oracle 只是守門人;但當其承載語意結構,能揭示不同能量曲線之間的關聯並轉譯至聲音領域時,它就超越了驗證,開始運作如同一部「占卜機」,將物理世界的跡象轉換為另一個世界的訊息。
參考
- Buckner, Cameron J. 2023. From Deep Learning to Rational Machines: What the History of Philosophy Can Teach Us about the Future of Artificial Intelligence. 1st ed. Oxford University PressNew York. https://doi.org/10.1093/oso/9780197653302.001.0001.
- Stinson, Catherine. 2020. “From Implausible Artificial Neurons to Idealized Cognitive Models: Rebooting Philosophy of Artificial Intelligence.” Philosophy of Science 87 (4): 590–611. https://doi.org/10.1086/709730.
- Jha, Rishi, Collin Zhang, Vitaly Shmatikov, and John X. Morris. 2025. “Harnessing the Universal Geometry of Embeddings.” arXiv:2505.12540. Preprint, arXiv, June 25. https://doi.org/10.48550/arXiv.2505.12540.
- https://www.hackteria.org/wiki/A_RAVE_and_starvation_synth_based_generative_sonic_device_powered_by_dye_sensitized_solar_cell
- https://github.com/shihweichieh2023/IVcurve_tester
- https://github.com/rjha18/vec2vec
- https://github.com/shihweichieh2023/solar-oracle-walkman