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

From SGMK-SSAM-WIKI
Jump to navigation Jump to search
(Created page with "<gallery widths="220px" heights="400px"> File:WikiGrenier - Lecteur Sony Mini Disc 03.jpg|Sony MD 隨身聽 Sony MZ-R55. File:Sony WM-F107.jpeg|Sony WM-F107,於 2025 洛桑 Solar Biennale 展出。 File:I-V tester made by Marc Dusseiller.jpg|Marc Dusseiller 製作的 DIY I-V 測試器。 </gallery> = 摘要 = 太陽能神諭隨身聽(Solar Oracle Walkman) 是一個能源交易與聲音雕塑的探索。外觀參考了復古的 Sony WM-F107,而內部裝置則用...")
 
No edit summary
Line 1: Line 1:
<gallery widths="220px" heights="400px"> File:WikiGrenier - Lecteur Sony Mini Disc 03.jpg|Sony MD 隨身聽 Sony MZ-R55. File:Sony WM-F107.jpeg|Sony WM-F107,於 2025 洛桑 Solar Biennale 展出。 File:I-V tester made by Marc Dusseiller.jpg|Marc Dusseiller 製作的 DIY I-V 測試器。 </gallery>
<gallery widths="220px" heights="400px">
File:WikiGrenier - Lecteur Sony Mini Disc 03.jpg|Sony MD player Sony MZ-R55.
File:Sony WM-F107.jpeg|Sony WM-F107 exhibited in Solar Biennale 2025 in Lausanne.
File:I-V tester made by Marc Dusseiller.jpg|The DIY I-V tester made by Marc Dusseiller.
</gallery>
= 摘要 =
= 摘要 =
太陽能神諭隨身聽(Solar Oracle Walkman) 是一個能源交易與聲音雕塑的探索。外觀參考了復古的 Sony WM-F107,而內部裝置則用於測量一片 6 × 6 公分手工製作、帶有藝術圖案的 DSSC(染料敏化太陽能電池)的 I–V 曲線,其 TiO₂ 多孔層透過氰版顯影或網版印刷製成。每一片「太陽能迷你碟」都會產生獨特的 I–V 聲紋(voiceprint),並透過 oracle(將鏈外資料安全橋接至區塊鏈的機制)傳送至智慧合約進行驗證。
太陽能神諭隨身聽(Solar Oracle Walkman) 是一個能源交易與聲音雕塑的探索。外觀參考了復古的 Sony WM-F107,而內部裝置則用於測量一片 6 × 6 公分手工製作、帶有藝術圖案的 DSSC(染料敏化太陽能電池)的 I–V 曲線,其 TiO₂ 多孔層透過氰版顯影或網版印刷製成。每一片「太陽能迷你碟」都會產生獨特的 I–V 聲紋(voiceprint),並透過 oracle(將鏈外資料安全橋接至區塊鏈的機制)傳送至智慧合約進行驗證。
Line 7: Line 11:
感知與人工智慧都可以被理解為生成機制:它們不只是被動接收訊號,而是主動進行預測與修正。在隨身聽中,鏈上的聲紋扮演著錨點──以經驗痕跡來限制生成──而解碼器的表現力則像是召喚,在可驗證的範圍內支撐想像。
感知與人工智慧都可以被理解為生成機制:它們不只是被動接收訊號,而是主動進行預測與修正。在隨身聽中,鏈上的聲紋扮演著錨點──以經驗痕跡來限制生成──而解碼器的表現力則像是召喚,在可驗證的範圍內支撐想像。
依據 Stinson 的「通用機制觀」以及 Feigl 的「對應模型」,我們設計了從量測(I–V 曲線)到潛在變數(音訊嵌入)的明確橋接。這使得作品能夠被視為一項實驗:每一個聲音決策都可以追溯至能量曲線上的可測變換。
依據 Stinson 的「通用機制觀」以及 Feigl 的「對應模型」,我們設計了從量測(I–V 曲線)到潛在變數(音訊嵌入)的明確橋接。這使得作品能夠被視為一項實驗:每一個聲音決策都可以追溯至能量曲線上的可測變換。
<gallery widths=400 heights=300> File:Stinson's generic mechanism.png|Stinson 的「通用機制」圖示。 File:A logical empiricist picture of a scientific theory. Reproduced from Herbert Feigl 1970.png|Herbert Feigl 1970 年提出的科學理論邏輯經驗主義圖解。 File:diagram of solar oracle walkman.png|Stinson Feigl 的模型應用於本計畫結構的示意圖。 </gallery>
<gallery widths=400 heights=300>
File:Stinson's generic mechanism.png|Diagram of Stinson's generic mechanism.
File:A logical empiricist picture of a scientific theory. Reproduced from Herbert Feigl 1970.png|A logical empiricist picture of a scientific theory. Reproduced from Herbert Feigl 1970.
File:diagram of solar oracle walkman.png|Diagram of Stinson and Feigl's model applied to the current project structure.
</gallery>
= 實驗 =
= 實驗 =
太陽能神諭隨身聽主要由三個元件組成:
太陽能神諭隨身聽主要由三個元件組成:
Line 131: Line 139:
: 離散近似:
: 離散近似:
: <code>A* ≈ (Σ I[i] * ΔV[i]) / (Isc * Voc)</code>
: <code>A* ≈ (Σ I[i] * ΔV[i]) / (Isc * Voc)</code>
<gallery widths="220px" heights="400px"> File:DIY DSSC with screen printed pattern.jpg|施惟捷製作的具網版圖案與蜀葵染料的 DIY DSSC。 File:DIY DSSC with cyanotype pattern.jpg|施惟捷製作的具氰版圖案的 DIY DSSC。 File:I-V tester made by Marc Dusseiller_2.jpg|Marc Dusseiller 的 I–V 測試器,其量測結果上傳至 Thingspeak 與本地伺服器,可被 Max/MSP 讀取。 </gallery>
 
<gallery widths="220px" heights="400px">
File:DIY DSSC with screen printed pattern.jpg|DIY DSSC with screen printed pattern and hollyhock dye made by Shih Wei Chieh.
File:DIY DSSC with cyanotype pattern.jpg|DIY DSSC with cyanotype pattern made by Shih Wei Chieh.
File:I-V tester made by Marc Dusseiller_2.jpg|The measurement of the I-V curve tester is uploaded to Thingspeak and a local server, and can be fetched in Max/MSP.
</gallery>
在 Max/MSP 中使用 ml.scale 與 ml.principle 作為模糊提取的前處理
在 Max/MSP 中使用 ml.scale 與 ml.principle 作為模糊提取的前處理
為了讓每片太陽能迷你碟的聲音能被智慧合約穩定驗證並重現,Max/MSP 的 ml.* 函式庫是一個解決方案。
為了讓每片太陽能迷你碟的聲音能被智慧合約穩定驗證並重現,Max/MSP 的 ml.* 函式庫是一個解決方案。
Line 139: Line 152:
它會從訓練數據中學習主軸
它會從訓練數據中學習主軸
並將新的數據投影至該降維空間
並將新的數據投影至該降維空間
<gallery widths=400px heights=300px> File:iv_curve_machine_learning.png|Max patch 範例:輸入七個特徵 [FF, Vmpp/Voc, Impp/Isc, Rs, Rsh, 曲率總和, 面積] 進行機器學習處理。 File:Principle component analysis math explained.png|GPT 解釋的主成分分析(PCA)數學原理。 </gallery>
<gallery widths=400px heights=300px>
File:iv_curve_machine_learning.png|An example Max patch of the machine learning process for the raw seven features: [FF, Vmpp/Voc, Impp/Isc, Rs, Rsh, curvature_sum, area].
File:Principle component analysis math explained.png|The mathematical explanation for the principle component analysis (PCA) made by GPT.
</gallery>
== 從聲音可重現性到語意性作曲 ==
== 從聲音可重現性到語意性作曲 ==
根據 Jha 等人 (2025) 的研究,語意穩定性來自三個核心約束:
根據 Jha 等人 (2025) 的研究,語意穩定性來自三個核心約束:

Revision as of 21:08, 1 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 編碼器以學習每片電池的緊湊且具魯棒性的潛在嵌入。這些嵌入會輸入至模糊提取器流程(量化 → 輔助資料錯誤更正 → 雜湊),以導出穩定的金鑰。鏈上只會錨定該金鑰的承諾值,以維護隱私並允許驗證。若能保持向量空間的幾何關係,潛在空間中的距離將能反映光伏行為的差異,使裝置能作為一部「占卜機」,連結物質、感知與想像。

作曲的生成系統

感知與人工智慧都可以被理解為生成機制:它們不只是被動接收訊號,而是主動進行預測與修正。在隨身聽中,鏈上的聲紋扮演著錨點──以經驗痕跡來限制生成──而解碼器的表現力則像是召喚,在可驗證的範圍內支撐想像。 依據 Stinson 的「通用機制觀」以及 Feigl 的「對應模型」,我們設計了從量測(I–V 曲線)到潛在變數(音訊嵌入)的明確橋接。這使得作品能夠被視為一項實驗:每一個聲音決策都可以追溯至能量曲線上的可測變換。

實驗

太陽能神諭隨身聽主要由三個元件組成: 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)]
              │
              ▼
       [模糊提取器(逐維處理)]
          對每個 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′(扮演模糊提取器角色)。 Oracle 僅錨定承諾(z′ 或衍生金鑰的雜湊)。 聲音引擎與 oracle 共享相同的穩定化 z′ → 保持一致身份 + 生成對應映射。

智慧合約實作

太陽能神諭隨身聽專案包含了一個基於區塊鏈的智慧合約,用來驗證並永久儲存手工製作 DSSC 的 I–V 聲紋數據。此合約已部署於 Sepolia 測試網,地址為: 0xeF19a90e5786dd0e89264F38f52CF81102db938e 它的功能類似一個去中心化的數位公證人: 驗證 I–V 特徵測量的真實性 透過進階的安全驗證規則、EIP-712 簽章,以及完整的數據完整性檢查 將每一片 DSSC 獨特的電學指紋永久保存 這個不可變的系統確保了每片 DSSC 的電學特徵都能被密碼學驗證並永久紀錄,同時也探索了生成系統如何作為模糊提取器,應用於「認知能源交易」之中。

使用 ml.scale 與 ml.principle 作為 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 曲線時至關重要,因為它能確保差異反映的是裝置的內在特性,而不是量測條件的變動。 特徵定義(無量綱化)如下:

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)

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

從聲音可重現性到語意性作曲

根據 Jha 等人 (2025) 的研究,語意穩定性來自三個核心約束: 重建性 (reconstruction) ——轉換後的表徵能被映射回來源。 循環一致性 (cycle-consistency) ——往返轉換能保持意義。 向量空間保存 (VSP) ——嵌入之間的成對距離在映射後依然保持。 目前的 7 維聲紋主要扮演 身份註冊 的角色,足以保證可重現性,但無法確保不同電池之間具有有意義的關聯結構。這代表: 現行的智慧合約驗證能穩定判斷訊號是否真實 但無法提供額外的語意解釋(例如不同能量曲線彼此的關係) 限制了生成音樂的設計潛力 也使作品難以與計畫中提出的哲學理論對應

RAVE 作為可驗證 oracle 空間的模糊提取器與生成音樂引擎

我使用訓練過的 RAVE 編碼器,從連續的 I–V 曲線量測(可選擇結合 7D 聲紋)中,產生緊湊且具光照魯棒性的潛在嵌入向量 z。 這些嵌入本身並非模糊提取器,但可以送入模糊提取流程: 量化 錯誤更正碼(含輔助資料) 雜湊 最終產生一個穩定的金鑰 K。 鏈上只錨定一個承諾值: commit = keccak256(K || salt) 後續量測會重建 K′,再提交 commit′ = keccak256(K′ || salt) 以進行驗證。 在此設計下: oracle 僅接受能與物理 DSSC 對應的證據 語意生成 留在鏈下的聲音引擎完成 透過對比學習或三元組 (triplet) 目標訓練,確保同一片電池的多次量測會在潛在空間聚集,而不同電池則保持分離(即向量空間保存 VSP) 這樣不僅能保證 身份再現性,也能建立不同電池之間的 關聯幾何結構 ——為語意穩定性與生成音樂作曲提供基礎。

幻覺的聲音化:在原型中落實理論的一種有趣策略

基於生成系統中的 大腦預測理論,一個有趣且簡單的作曲策略是:將「幻覺」作為聲音原則。 步驟: 使用 DSSC I–V 序列訓練 RAVE。 每次新量測會產生一個潛在嵌入 z1。 將 z1 經過編碼器–解碼器循環,得到重建嵌入 z2。 計算殘差向量 r = z1 – z2。 這個殘差 r 正好代表模型無法解釋的部分。 z1 捕捉了電池可再現的聲紋 r 則化為「幻覺」:模型無法同化的偏差、噪音或異常 若將 r 輸入到另一個 RAVE 解碼器,輸出就是「幻覺之聲」: 能量曲線不再只是被聲音化 認知上的失誤被轉換為聲音 幻覺不再被視為錯誤,而是生成的剩餘,模糊了感知與想像的界線

  [I–V 曲線]
       │
       ▼
  編碼器 → z1
       │
       ▼
  解碼器 → z2
       │
       ▼
  殘差 r = z1 - z2
       │
       ▼
  第二解碼器 → 幻覺之聲

討論

目前的狀態 太陽能神諭隨身聽目前作為一件聲音雕塑,能即時聲音化 DSSC 的 I–V 曲線。 透過正規化,7D 聲紋在光照變化下依然穩定 聲音映射刻意保持簡單,使可重現性容易評估 在 Max/MSP 中建立了從感測到聲音的管線 感知與 AI 被視為同一生成機制的兩面 幻覺被定義為「超出證據與先驗界線的生成」 目前的理論應用 Stinson 的通用機制觀 → DSSC–RAVE 與人類感知是共同生成架構的不同實現 Feigl 的對應模型 → 強調從觀測到潛在變數的明確橋接,讓設計每一步都能追溯至可測痕跡 這些理論框架並非目標,而是: 資料集建立的設計準則 映射的先驗假設 偏移與變異的評估指標 目前缺乏 VSP → 潛在空間僅作為身份註冊,無法保證不同 DSSC 之間的關聯意義 因此 oracle 目前僅是「守門人」:驗證真偽,而缺乏語意解釋 下一步 建立一個小而乾淨的 DSSC 聲紋訓練集,控制光照與溫度 測試單調性與局部平滑性的先驗條件 原型化 vec2vec 式的約束:循環一致檢查、距離保持 紀錄「聲音鄰域」與「能量曲線鄰域」不一致的情況 探索輕量化推論與壓縮,以便未來行動裝置應用 評估是否能將能源紀錄註冊為可驗證雜湊(來自聲紋) 測試失效模式與防偽極限 因此,太陽能迷你碟隨身聽不只是音樂專案,它也開啟了對以下問題的實驗性討論: 能源是否能被追溯並交易? 物理聲紋如何成為一種 oracle,連結物質、感知與運算? 若能引入更強的限制(例如 VSP),這台 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