Sema 是一個遊樂場,您可以在這裡快速製作用於訊號合成、機器學習和機器監聽的即時編碼迷你語言原型。
Sema 旨在提供一個線上整合環境,用於設計抽象的高階語言和更強大的低階語言。
Sema 實施了一組核心設計原則:
整合訊號引擎-就語言和訊號引擎整合而言,不存在概念上的劃分。一切都是信號。然而,為了模組化、可重複使用性和健全的架構,sema的訊號引擎是由sema-engine庫實現的。
單樣本訊號處理 – 每樣本聲音處理,用於支援使用回饋循環的技術,例如物理建模、混響和 IIR 濾波。
取樣率轉換-使用一種主要取樣率(音訊率)進行訊號處理會更簡單。可以透過使用感測器進行上採樣和下採樣來解決相關對象的不同採樣率要求。感測器概念使我們能夠在單一引擎中適應具有不同取樣率(視訊、頻譜速率、感測器、ML 模型推理)的各種流程。
最小抽象化-我們的訊號引擎中沒有高階抽象,例如匯流排、合成器、節點、伺服器或任何語言支架。這些抽象位於最終使用者語言設計空間內。
Sema 需要安裝以下相依性:
為了運行,Sema必須使用專案 url 和 api 金鑰連接到Supabase 後端。
如果您決定使用npm
建立 sema,您可以遵循以下命令清單:
$ cd sema
$ npm install
$ npm run build
$ npm run dev
如果您決定使用 Yarn 套件管理器,則可以使用以下命令清單:
使用紗線:
$ cd sema
$ yarn
$ yarn build
$ yarn dev
將 sema 作為節點應用程式運行後,您可以將其載入到瀏覽器的以下連接埠上
硬體加速將對 Tensorflow.js 模型訓練速度產生巨大影響。
要在 Chrome 中啟用它:
要在 Firefox 中啟用:
about:preferences
Sema 使用 Web Audio API 音訊工作集。它們的性能似乎對 CPU 功率縮放非常敏感。如果您遇到音質問題,請嘗試將 CPU 調速器設定為效能模式。例如在 Ubuntu 上,
$ cpupower frequency-set --governor performance
Sema 的內部文件旨在支援使用者的學習體驗。它集成在應用程式中並包含以下部分:
入門
操場
即時編碼
機器學習
語言創造
Sema 的 Wiki 文件旨在支援貢獻。它重點介紹 Sema 的設計和建造方式:
Sema的架構是怎麼樣的?
Sema如何實現和使用Web服務
如何在我自己的網路伺服器上設定 Sema?
如何為 Sema 新增新的 ML 庫?
如何建立新小工具並將其新增至 Sema?
如何將我自己的文檔添加到 Sema?
Sema 的 Svelte 商店如何運作?
Sema 是一個開源項目,希望其基本願景、目標和結構能激勵您為其做出貢獻。檢查以下內容:
我如何為 Sema 做出貢獻?
貢獻.md
為開發做好準備
除錯塞瑪
設計指南
貝爾納多,F.,基弗,C.,馬格努森,T.(2021)。評估對即時編碼機器學習遊樂場創造力的支持,請參閱:Baalsrud Hauge J.、CS Cardoso J.、Roque L.、Gonzalez-Calero PA(編)娛樂計算 – ICEC 2021。 》,第13056 卷。 https://doi.org/10.1007/978-3-030-89394-1_38
貝爾納多,F.,基弗,C.,馬格努森,T.(2020)。用於即時編碼語言生態系統的訊號引擎, J. Audio Eng。社會學會,卷。 68,沒有。 10,第 756-766 頁。 doi:https://doi.org/10.17743/jaes.2020.0016
貝爾納多,F.,基弗,C.,馬格努森,T.(2020)。使用 Sema 設計多元化且使用者友好的即時程式碼語言生態系統。第五屆即時編碼國際會議,利默里克大學,愛爾蘭利默里克
貝爾納多,F.,基弗,C.,馬格努森,T.(2019)。用於即時編碼語言生態系統的基於 AudioWorklet 的訊號引擎。 2019 年網路音訊會議論文集,挪威科技大學 (NTNU),特隆赫姆,挪威(2019 年網路音訊會議最佳論文獎)