Sema adalah tempat bermain di mana Anda dapat dengan cepat membuat prototipe bahasa mini pengkodean langsung untuk sintesis sinyal, pembelajaran mesin, dan mendengarkan mesin.
Sema bertujuan untuk menyediakan lingkungan terintegrasi online untuk merancang bahasa tingkat tinggi yang abstrak dan bahasa tingkat rendah yang lebih kuat.
Sema menerapkan serangkaian prinsip desain inti:
Mesin sinyal terintegrasi – Dalam hal integrasi bahasa dan mesin sinyal, tidak ada pemisahan konseptual. Semuanya adalah sinyal. Namun, demi modularitas, kegunaan kembali, dan arsitektur suara, mesin sinyal sema diimplementasikan oleh perpustakaan sema-engine.
Pemrosesan sinyal sampel tunggal – Pemrosesan suara per sampel untuk teknik pendukung yang menggunakan loop umpan balik, seperti pemodelan fisik, gaung, dan pemfilteran IIR.
Transduksi laju sampel – Lebih mudah melakukan pemrosesan sinyal dengan satu laju sampel utama, yaitu laju audio. Persyaratan laju sampel yang berbeda dari objek yang bergantung dapat diselesaikan dengan upsampling dan downsampling, menggunakan transduser. Konsep transduser memungkinkan kami mengakomodasi berbagai proses dengan laju sampel yang bervariasi (video, laju spektral, sensor, inferensi model ML) dalam satu mesin.
Abstraksi minimal – Tidak ada abstraksi tingkat tinggi seperti bus, synth, node, server, atau perancah bahasa apa pun di mesin sinyal kami. Abstraksi semacam itu berada dalam ruang desain bahasa pengguna akhir.
Sema memerlukan dependensi berikut untuk diinstal:
Agar dapat berjalan, Sema harus terhubung dengan url proyek dan kunci api ke backend Supabase .
Jika Anda memutuskan untuk menggunakan npm
untuk membangun sema, Anda dapat mengikuti daftar perintah berikut:
$ cd sema
$ npm install
$ npm run build
$ npm run dev
Jika Anda memutuskan untuk menggunakan manajer paket Yarn, Anda dapat menggunakan daftar perintah berikut:
Untuk menggunakan Benang:
$ cd sema
$ yarn
$ yarn build
$ yarn dev
Setelah sema berjalan sebagai aplikasi node, Anda dapat memuatnya di browser Anda pada port berikut
Akselerasi perangkat keras akan berdampak drastis pada kecepatan pelatihan model Tensorflow.js.
Untuk mengaktifkannya di Chrome:
Untuk mengaktifkan di Firefox:
about:preferences
Sema menggunakan Web Audio API Audio Worklet. Performanya tampaknya sangat sensitif terhadap penskalaan daya CPU. Jika Anda mengalami masalah kualitas suara, coba atur pengatur CPU ke mode kinerja . misalnya di Ubuntu,
$ cpupower frequency-set --governor performance
Dokumentasi internal Sema bertujuan untuk mendukung pengalaman belajar pengguna. Ini terintegrasi dalam aplikasi dan terdiri dari bagian-bagian berikut:
Memulai
Tempat bermain
Pengkodean Langsung
Pembelajaran Mesin
Penciptaan Bahasa
Dokumentasi Wiki Sema bertujuan untuk mendukung kontribusi. Ini berfokus pada bagaimana Sema dirancang dan dibangun:
Apa arsitektur Sema?
Bagaimana Sema mengimplementasikan dan menggunakan layanan web
Bagaimana cara mengatur Sema di server web saya sendiri?
Bagaimana cara menambahkan perpustakaan ML baru ke Sema?
Bagaimana cara membuat dan menambahkan widget baru ke Sema?
Bagaimana cara menambahkan dokumentasi saya sendiri ke Sema?
Bagaimana cara kerja toko Svelte di Sema?
Sema adalah proyek sumber terbuka dan semoga visi, tujuan, dan struktur yang mendasarinya akan memotivasi Anda untuk berkontribusi di dalamnya. Periksa hal berikut:
Bagaimana cara saya berkontribusi pada Sema?
KONTRIBUSI.md
Mempersiapkan diri untuk pengembangan
Men-debug Sema
Panduan Desain
Bernardo, F., Kiefer, C., Magnusson, T. (2021). Menilai Dukungan Kreativitas Taman Bermain untuk Pembelajaran Mesin Coding Langsung, Dalam: Baalsrud Hauge J., CS Cardoso J., Roque L., Gonzalez-Calero PA (eds) Entertainment Computing – ICEC 2021. ICEC 2021. Catatan Kuliah di Komputer Sains, jilid 13056. Springer, Cham. https://doi.org/10.1007/978-3-030-89394-1_38
Bernardo, F., Kiefer, C., Magnusson, T. (2020). Mesin Sinyal untuk Ekosistem Bahasa Pengkodean Langsung, J. Audio Eng. sosial, jilid. 68, tidak. 10, hal.756-766. doi: https://doi.org/10.17743/jaes.2020.0016
Bernardo, F., Kiefer, C., Magnusson, T. (2020). Merancang Ekosistem Bahasa Kode Langsung yang Pluralis dan Ramah Pengguna dengan Sema. Konferensi Internasional ke-5 tentang Live Coding, Universitas Limerick, Limerick, Irlandia
Bernardo, F., Kiefer, C., Magnusson, T. (2019). Mesin Sinyal berbasis AudioWorklet untuk Ekosistem Bahasa Pengkodean Langsung. Dalam Prosiding Web Audio Conference 2019, Universitas Sains dan Teknologi Norwegia (NTNU), Trondheim, Norwegia (Penghargaan Makalah Terbaik di Web Audio Conference 2019)