太陽能神諭隨身聽: Difference between revisions

From SGMK-SSAM-WIKI
Jump to navigation Jump to search
Line 129: Line 129:


== RAVE 作為中介層與模糊提取 ==
== RAVE 作為中介層與模糊提取 ==
PCA 僅僅是線性降維;它無法保證「在不同光照下仍能重現」和「二進位金鑰的錯誤更正」,因此本設計採用了模糊提取器:它將連續的潛在向量 <code>z</code> 轉換為可糾錯、可驗證的位元列,並輸出一個穩定的金鑰 <code>K</code>,以同時滿足身份可重現性與鏈上需求。
在V1版本裡用ml.scale和ml.principle做的PCA僅僅是線性降維;它無法保證「在不同光照下仍能重現」和「二進位金鑰的錯誤更正」,因此我提出v2版本,這裡採用了模糊提取器:它將連續的潛在向量 <code>z</code> 轉換為可糾錯、可驗證的位元列,並輸出一個穩定的金鑰 <code>K</code>,以同時滿足身份可重現性與鏈上需求。


=== I–V 編碼器訓練(鏈下) ===
=== I–V 編碼器訓練(鏈下) ===
- 平台:Google Colab   
# 平台:Google Colab   
- 架構:Conv1D(因 RAVE 編碼器無法直接處理曲線數據)   
# 架構:Conv1D(因 RAVE 編碼器無法直接處理曲線數據)   
- 輸入:連續七維「聲紋」 <code>[FF, Vmpp/Voc, Impp/Isc, Rs*, Rsh*, 曲率總和, 面積]</code>   
# 輸入:連續七維「聲紋」 <code>[FF, Vmpp/Voc, Impp/Isc, Rs*, Rsh*, 曲率總和, 面積]</code>   
- 輸出:潛在向量 <code>z = (z1, z2, …, zn)</code>(維度與下游音訊解碼器對齊)   
# 輸出:潛在向量 <code>z = (z1, z2, …, zn)</code>(維度與下游音訊解碼器對齊)   
- 訓練目標:triplet loss(相同電池樣本拉近,不同電池樣本推遠)+ 先驗匹配(使 z 服從解碼器的高斯先驗)   
# 訓練目標:triplet loss(相同電池樣本拉近,不同電池樣本推遠)+ 先驗匹配(使 z 服從解碼器的高斯先驗)   
- 數據增強:增益縮放 / 小幅噪音 / 時序抖動   
# 數據增強:增益縮放 / 小幅噪音 / 時序抖動   


=== 模糊提取流程(鏈下) ===
=== 模糊提取(鏈下) ===
# <code>z</code> → 正規化、量化   
# <code>z</code> → 正規化、量化   
# 經 ECC(錯誤更正碼) → 導出穩定金鑰 <code>K</code>   
# 經 ECC(錯誤更正碼) → 導出穩定金鑰 <code>K</code>   
Line 145: Line 145:


=== Panel ID 與註冊 ===
=== Panel ID 與註冊 ===
- 初始註冊:<code>panel_id = keccak256("panel-id" || K)</code>   
# 初始註冊:<code>panel_id = keccak256("panel-id" || K)</code>   
- 後續驗證:重建 <code>K′</code> → 計算 <code>keccak256(K′ || salt)</code> → 與鏈上 commitment 比對   
# 後續驗證:重建 <code>K′</code> → 計算 <code>keccak256(K′ || salt)</code> → 與鏈上 commitment 比對   
- 特點:合約自動將紀錄歸屬於 <code>panel_id</code>,無需上傳任何人類身份資訊   
# 特點:合約自動將紀錄歸屬於 <code>panel_id</code>,無需上傳任何人類身份資訊   


=== 音訊解碼器(鏈下) ===
=== 音訊解碼器(鏈下) ===
Line 157: Line 157:
=== 可驗證語意空間 (VSP) ===
=== 可驗證語意空間 (VSP) ===
根據 Jha 等人 (2025),語意穩定性依賴三個核心約束:   
根據 Jha 等人 (2025),語意穩定性依賴三個核心約束:   
# **重建性**:轉換後的表徵能映射回來源  
# 重建性:轉換後的表徵能映射回來源  
# **循環一致性**:往返轉換能保持意義  
# 循環一致性:往返轉換能保持意義  
# **向量空間保存 (VSP)**:嵌入間的成對距離在映射後仍被保存
# 向量空間保存 (VSP):嵌入間的成對距離在映射後仍被保存   
 
=== 美學生成 ===
- 穩定的 z 值產生可重現的音色風格與聲音敘事 
- 哲學意涵:不是將兩種媒介視為等同,而是將生成錨定於 oracle,使美學在物理驗證的基礎上展開 
 
=== RAVE 作為「翻譯的膜」 ===
內層:維持真實的幾何與承諾(身份與因果) 
外層:釋放可感知的語意與聲音(美學與表達) 
分工:鏈上負責驗證;鏈下負責運算與生成 → 既保障了 DSSC 身份安全,又保留藝術創作自由  


<gallery widths=500px heights=250px> File:latent VSP comparison.png|這張圖將目前流程與包含向量空間保存 (VSP) 的理想化設計進行了比較。左側實現了可重複性:每個 DSSC 都對應到潛在空間中的穩定位置,從而允許身份驗證,但無法在單元之間建立有意義的關係。右側,VSP 確保潛在空間中的成對距離反映了光伏特徵的差異,不僅提供了可重複性,還提供了關係意義。從這個角度來看,預言機從驗證真實性的守門人演變為揭示能量曲線在共享語義結構中如何關聯的「占卜機器」。 </gallery>
<gallery widths=500px heights=250px> File:latent VSP comparison.png|這張圖將目前流程與包含向量空間保存 (VSP) 的理想化設計進行了比較。左側實現了可重複性:每個 DSSC 都對應到潛在空間中的穩定位置,從而允許身份驗證,但無法在單元之間建立有意義的關係。右側,VSP 確保潛在空間中的成對距離反映了光伏特徵的差異,不僅提供了可重複性,還提供了關係意義。從這個角度來看,預言機從驗證真實性的守門人演變為揭示能量曲線在共享語義結構中如何關聯的「占卜機器」。 </gallery>

Revision as of 16:36, 4 September 2025

摘要

太陽能神諭隨身聽(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 曲線)到潛在變數(音訊嵌入)的明確橋接。這使得作品能夠被視為一項實驗:每一個聲音決策都可以追溯至能量曲線上的可測變換。

實驗

太陽能神諭隨身聽主要由三個元件組成: I-V 曲線測試器 具圖案的太陽能迷你碟 智慧合約 每片迷你碟的 I–V 曲線會被量測並上傳至部署於 Sepolia 測試網 的智慧合約進行驗證。一旦其 I–V 數據通過驗證,相應的音樂就會被生成並允許由隨身聽播放。每片「太陽能迷你碟」的聲音被期望具有 可重現性、生成性與語意性——如同一段具備清晰機制的生成音樂,而非完全隨機。 為了讓每片太陽能迷你碟成為生成裝置,我首先假設需要設計一個 雜湊運算 來獲得每片太陽能玻璃的「聲紋 (V)」。雜湊運算是將輸入資料(例如數字、文字、檔案,或一組 I–V 曲線參數)送入數學函式或演算法以產生雜湊值的過程。雜湊演算法可以處理任意長度的輸入,但總是輸出固定長度的結果。它們被設計為: 計算快速 相同輸入必定得到相同輸出 即使輸入稍有改變,輸出也會截然不同 太陽能神諭隨身聽 v1 — 概覽

[光]
   ▼
[具圖案的 DSSC「迷你碟」]
   ▼
[I–V 掃描 / ESP32-S3 測試器]
   ▼
[特徵擷取,7 維]
F = [FF, Vmpp/Voc, Impp/Isc, Rs*, Rsh*, Σκ, A*]
   ▼
ml.scale 正規化
   ▼
ml.principle (PCA)
   ▼
輸入 RAVE nn~ 解碼器
   ▼
即時聲音輸出
跨模態映射:I–V 潛在向量 → 聲音潛在向量
(映射依藝術 / 作曲語境決定)

太陽能神諭隨身聽 v2 — 概覽

[光]
   ▼
[具圖案的 DSSC「迷你碟」]
   ▼
[連續 I–V 掃描 / ESP32-S3 測試器]
   ▼
[I–V 編碼器(在 Colab 以 Conv1D 訓練)— 鏈下]
輸入:7 維序列 [FF, Vmpp/Voc, Impp/Isc, Rs*, Rsh*, 曲率總和, 面積]
輸出:潛在向量 z = (z1, z2, …, zn)
訓練:triplet loss + 先驗匹配
增強:增益縮放 / 噪音 / 時序抖動
   ▼
[模糊提取器 — 鏈下]
z → 正規化 / 量化
  → ECC + 輔助資料 → 穩定金鑰 K
  → commit = keccak256(K || salt)
註冊:panel_id = keccak256("panel-id" || K)
驗證:新 K′ → keccak256(K′ || salt) → 與儲存的承諾值比對
   │
   ├───────────────► [Oracle / 鏈上路徑]
   │                   打包 {pubkey, panel_id, commitment, timestamp, nonce, signature}
   │                   智慧合約:驗證 EIP-712 簽章、時間戳、nonce
   │                   智慧合約:檢查 keccak256(K′ || salt) == commitment(於 verify 呼叫時)
   │                   智慧合約:儲存 panel_id、commitment、metadata;發出事件
   │                   回饋:OK / FAIL
   │
   ▼
[輸入 RAVE nn~ 解碼器]
   ▼
即時聲音輸出
跨模態映射:I–V 潛在向量 → 聲音潛在向量
(映射依藝術 / 作曲語境決定)

第一個原型: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)

ml.scale 與 ml.principle 作為模糊提取的前處理

為了讓每片太陽能迷你碟的聲音能被智慧合約穩定驗證並重現,Max/MSP 的 ml.* 函式庫是一個解決方案。 ml.scale:先將七個原始特徵正規化到 0 到 1 的範圍。 ml.principle:再進行 PCA(主成分分析),將七個值轉換至新的 7 維 PCA 空間。PCA 是一種數學方法,能將數據旋轉並壓縮到較少維度,同時保留最多變異。 ml.principle 是 Max/MSP 內實作 PCA 的物件: 它會從訓練數據中學習主軸 並將新的數據投影至該降維空間

RAVE 作為中介層與模糊提取

在V1版本裡用ml.scale和ml.principle做的PCA僅僅是線性降維;它無法保證「在不同光照下仍能重現」和「二進位金鑰的錯誤更正」,因此我提出v2版本,這裡採用了模糊提取器:它將連續的潛在向量 z 轉換為可糾錯、可驗證的位元列,並輸出一個穩定的金鑰 K,以同時滿足身份可重現性與鏈上需求。

I–V 編碼器訓練(鏈下)

  1. 平台:Google Colab
  2. 架構:Conv1D(因 RAVE 編碼器無法直接處理曲線數據)
  3. 輸入:連續七維「聲紋」 [FF, Vmpp/Voc, Impp/Isc, Rs*, Rsh*, 曲率總和, 面積]
  4. 輸出:潛在向量 z = (z1, z2, …, zn)(維度與下游音訊解碼器對齊)
  5. 訓練目標:triplet loss(相同電池樣本拉近,不同電池樣本推遠)+ 先驗匹配(使 z 服從解碼器的高斯先驗)
  6. 數據增強:增益縮放 / 小幅噪音 / 時序抖動

模糊提取(鏈下)

  1. z → 正規化、量化
  2. 經 ECC(錯誤更正碼) → 導出穩定金鑰 K
  3. 計算承諾值:commit = keccak256(K || salt)

Panel ID 與註冊

  1. 初始註冊:panel_id = keccak256("panel-id" || K)
  2. 後續驗證:重建 K′ → 計算 keccak256(K′ || salt) → 與鏈上 commitment 比對
  3. 特點:合約自動將紀錄歸屬於 panel_id,無需上傳任何人類身份資訊

音訊解碼器(鏈下)

  1. 訓練:獨立於音樂數據,或採用現有的 RAVE 解碼器
  2. 功能:將 z 聲音化
  3. 穩定性:由於編碼器強制 z 的幾何結構穩定,相同電池的重複量測能產生可重現的音色與動態
  4. 跨模態映射:I–V → 聲音潛在向量:語意秩序僅保留在編碼器端,解碼器端映射依藝術/作曲語境決定

可驗證語意空間 (VSP)

根據 Jha 等人 (2025),語意穩定性依賴三個核心約束:

  1. 重建性:轉換後的表徵能映射回來源
  2. 循環一致性:往返轉換能保持意義
  3. 向量空間保存 (VSP):嵌入間的成對距離在映射後仍被保存

智慧合約驗證系統

概述

Solar Oracle Walkman 的智慧合約部署於以太坊sepolia測試網(合約地址:0xeF19a90e5786dd0e89264F38f52CF81102db938e)。合約作為去中心化的數位公證人,負責: - 驗證簽名與資料完整性(EIP-712) - 以 panel_id 為鍵管理提交 - 儲存並發佈與 I–V 聲紋關聯的承諾值(commitment)與中繼資料

注意:模糊提取(Fuzzy Extraction)與金鑰 K 的導出均在鏈下完成;本合約不執行 FE。

驗證流程(鏈上)

輸入(由鏈下提交):

  1. code>panel_id:鏈下以 panel_id = keccak256("panel-id" || K) 生成
  2. commitment:鏈下以 commitment = keccak256(K || salt) 計算
  3. 簽名:依 EIP-712 標準對提交資料簽名
  4. timestampnonce
  5. (可選)7 維聲紋 [FF, Vmpp/Voc, Impp/Isc, Rs*, Rsh*, curvature_sum, area],用於可視化或研究

合約責任:

  1. 驗證 EIP-712 簽名、timestampnonce
  2. panel_id 為索引管理提交,檢查 commitment 與既有紀錄的一致性(或依業務規則更新)
  3. 儲存 panel_idcommitment、時間戳與(可選)7 維聲紋;發佈事件以供訂閱

Panel ID 與身份管理(鏈上觀點)

  1. 來源(鏈下):panel_id = keccak256("panel-id" || K)
  2. 鏈上歸檔:以 panel_id 為鍵歸檔與查詢測量紀錄
  3. 身份驗證:鏈下重建 K' 後計算 keccak256(K' || salt) 與鏈上 commitment 比對;合約僅接受比對結果所需之提交並進行存證

安全機制

EIP-712 結構化簽名

合約實作 EIP-712 標準,為提交的測量資料提供可驗證的結構化簽名:

struct IVMeasurement {
    uint256 timestamp;
    bytes32 panelId;
    bytes32 commitment;
    uint256[7] voiceprint;
    bytes32 nonce;
}

數據完整性檢查

  1. 時間戳驗證:防止重放攻擊
  2. Nonce 機制:確保每筆交易唯一性
  3. 聲紋範圍檢查:若提供 7 維聲紋則檢查範圍合理性
  4. 承諾一致性:對同一 panel_id 的 commitment 進行一致性檢查

儲存結構

測量記錄

每筆驗證通過的測量記錄包含:

  1. Panel ID:DSSC 的匿名化識別碼(鏈下導出)
  2. Commitment:Keccak-256 承諾雜湊(鏈下計算)
  3. Timestamp:測量時間戳
  4. Voiceprint(可選):7 維 I–V 聲紋特徵
  5. Verification Status:驗證狀態

神諭機制(鏈上角色)

合約作為區塊鏈神諭的一端,對鏈下送來的簽名資料進行鏈上驗證與存證:

  1. 數據驗證:簽名、時間戳、nonce 與資料完整性
  2. 身份確認:以 panel_id 比對 commitment
  3. 狀態更新:更新鏈上資料結構
  4. 事件觸發:驗證成功後發佈事件

討論

  1. 目前的狀態 神諭隨身聽作為一件簡單的藝術雕塑,能即時將 DSSC 的 I–V 曲線聲音化。經過正規化後,七個特徵的聲紋在光照變化下依然穩定。映射設計刻意保持極簡,使得可重現性的評估變得直接明瞭。在 Max/MSP 中已經建立了一條從感測到聲音的受控流程。感知與人工智慧被視為同一生成機制的兩個面向。此處「幻覺」的工作定義是:生成過程漂移到可接受證據與先驗之外。大腦會進行預測與修正;幻覺則是預測失配的極端情況。oracle 提供了外部錨點,使生成保持在可驗證的範圍內,同時保留創造性變異的空間。
  2. 理論目前的作用 Stinson 的「通用機制觀」激發我們將 DSSC–RAVE 與人類感知視為同一生成架構的不同實現。Feigl 的「對應模型」則驅動我們設計從觀測到潛在變數的明確橋接,讓每一個設計步驟都能追溯至可測痕跡。這些理論視角本身不是最終目標,而是資料集建立的設計指南映射的先驗假設偏移與變異的評估指標目前的限制在於缺乏向量空間保存 (VSP);沒有 VSP,潛在空間只能作為身份的穩定註冊,卻無法保證不同電池之間的關聯意義。因此,oracle 主要只是一個驗證真偽的守門人,卻提供不了太多語意解釋。然而,若能引入 VSP,oracle 則可能演化成為一台真正的「神諭機」:不僅能驗證真實,還能揭示不同能量曲線之間的關係,將物理差異轉譯為另一領域中可解釋的結構。
  3. 下一步 建立一個小而乾淨的 DSSC 聲紋訓練集,控制光照與溫度,並測試單調性與局部平滑性的先驗條件。原型化 vec2vec 式的約束:簡單的循環檢查與距離保持,並在保留測試集中記錄當「聲音鄰域」無法對應「能量曲線鄰域」的情況。研究輕量化推論目標與壓縮方法,以便未來能應用於行動裝置。探索能否將可追溯的能源紀錄註冊為來自聲紋的可驗證雜湊,並評估失效模式與防偽極限。「oracle」不僅指區塊鏈上的鏈外數據橋接機制,也回應了其古代語源——神廟的「神諭」或「占卜」。當 DSSC 聲紋僅用於驗證時,oracle 只是守門人;但當其承載語意結構,能揭示不同能量曲線之間的關聯並轉譯至聲音領域時,它就超越了驗證,開始運作如同一部「占卜機」,將物理世界的跡象轉換為另一個世界的訊息。

參考

  1. 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.
  2. 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.
  3. 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.
  4. https://www.hackteria.org/wiki/A_RAVE_and_starvation_synth_based_generative_sonic_device_powered_by_dye_sensitized_solar_cell
  5. https://github.com/shihweichieh2023/IVcurve_tester
  6. https://github.com/rjha18/vec2vec
  7. https://github.com/shihweichieh2023/solar-oracle-walkman