Mulai cepat web

Paket npm untuk browser dan Node: baris pemasangan, tempat menaruh kunci, dan panduan mulai cepat.

SDK web adalah mesin yang dikompilasi ke WebAssembly, untuk browser dan Node 20 atau yang lebih baru. Paketnya adalah @quran-lab/tajweedformer di npm, dan kode sumbernya ada di github.com/Quran-Lab/tajweedformer-web.

Pemasangan

npm install @quran-lab/tajweedformer@3.1.3

Kunci

Gunakan kunci web. Kunci web sengaja dibuat publik: kunci ini hanya bekerja dari origin https yang tepat, sesuai yang Anda tetapkan untuknya, dan setiap origin terdaftar sebagai aplikasi tersendiri, yang ditampilkan portal sebagai satu aplikasi dengan filter origin. Halaman harus berjalan dalam konteks aman (https, atau http://localhost).

# .env.local (git-ignored)
VITE_QURANLAB_KEY=qlk_v1_...

Di Node, gunakan kunci desktop dan teruskan app id Anda ke Client.

Client, model, listen, read

import { TajweedClient } from '@quran-lab/tajweedformer';

const heard = document.querySelector('#heard');
const client = await TajweedClient.create({ key: 'qlk_v1_...' });   // your web key
const model = await client.model();              // downloads the model once, then cached

async function take(from) {                      // one take: the microphone, or a clip
  // ends when the learner stops
  const session = await model.listen({ from, endOnSilenceMs: 1500 });
  for await (const chunk of session.chunks) heard.textContent = chunk.decoded.text;
}
document.querySelector('#listen').onclick = () => take();   // the microphone needs a tap
  • Mikrofon. listen() meminta izin, menangkap audio pada laju sampel perangkat itu sendiri, lalu memberitahukan laju sampel tersebut kepada sesi.
  • Di luar thread utama. Di browser, mesin berjalan di dalam Worker, sehingga inferensi untuk satu potongan tidak pernah memblokir halaman Anda.
  • Halaman yang tersembunyi mengakhiri take dari listen. Mulai take baru (satu kali bacaan yang didengarkan SDK dari awal sampai akhir) saat halaman terlihat lagi.
  • Tanpa mikrofon. model.sampleClips berisi daftar beberapa klip pendek yang disertakan bersama model, dan model.listen({ from: model.sampleClips[0] }) menjalankan salah satunya melalui jalur yang sama. Dengan cara inilah pengujian, atau pemeriksaan oleh asisten pemrograman, menampilkan keluaran nyata di komputer tanpa mikrofon.
  • Audio Anda sendiri, atau Node. model.session() dan session.push(samples) menggantikan listen(). Selebihnya sama.

Yang dikembalikan

Setiap potongan berisi chunk.decoded (text, tokens, words, settled, isFinal) dan chunk.heads (keluaran mentah yang Anda pilih). Bangun umpan balik sendiri menjelaskan masing-masing.

Nama persisnya untuk versi SDK Anda ada di README paket.