Mulai cepat Android
SDK Kotlin untuk Android: baris pemasangan, tempat menaruh kunci, dan panduan mulai cepat.
SDK Kotlin berupa AAR untuk Android (minSdk 26, arm64-v8a dan armeabi-v7a). Paketnya adalah ai.quranlab:tajweedformer di Maven Central, dan kode sumbernya ada di github.com/Quran-Lab/tajweedformer-android.
Pemasangan
// settings.gradle.kts: mavenCentral() in the repositories
// app/build.gradle.kts
dependencies {
implementation("ai.quranlab:tajweedformer:3.1.5")
}Kunci
Gunakan kunci apps. Aplikasi dikenali dari applicationId di Gradle. Simpan kunci di luar repositori Anda:
# local.properties (git-ignored)
QURANLAB_KEY=qlk_v1_...Baca kunci ini di Gradle dan masukkan ke field BuildConfig atau placeholder manifes. Lalu teruskan ke SDK saat aplikasi dijalankan.
Client, model, listen, read
suspend fun quickStart(context: Context, heard: TextView) {
// your key; one Client per process
val client = TajweedClient(context, "qlk_v1_...")
// the first run downloads and verifies the model
val model = client.model()
// asks for the microphone itself; ends 1.5 s after the learner stops
val session = model.listen(TajweedSessionOptions(endOnSilenceMs = 1500))
// every chunk: what the model heard so far
session.chunks.collect { chunk -> heard.text = chunk.decoded.text }
}Inilah empat panggilan yang dimiliki setiap SDK Quran Lab.
- Mikrofon.
model.listen()meminta izinandroid.permission.RECORD_AUDIOsendiri bila diperlukan. Jika izin ditolak, Anda mendapat galatmicrophone_denied. Audio ditangkap pada laju sampel perangkat itu sendiri, jadi laju sampel tidak muncul di kode Anda. - Akhir take. Dengan
endOnSilenceMs, take (satu kali bacaan yang didengarkan SDK) selesai dengan sendirinya setelah ucapan disusul hening selama durasi yang Anda tetapkan: potongan terakhir memilikidecoded.isFinal, dansession.finish()mengembalikan head dari take itu, yaitu keluaran mentah jaringan. Tanpa opsi ini, take terus berjalan sampaifinish()ataucancel()dipanggil. - Latar belakang. Take dari
listenberakhir saat aplikasi keluar dari latar depan. Mulai take baru saat aplikasi kembali ke latar depan. - Audio Anda sendiri.
model.session()dansession.push(samples)menggantikanlisten(). Selebihnya sama.
Yang dikembalikan
Setiap 320 ms, Anda menerima satu potongan berisi chunk.decoded (hasil take sampai saat ini: 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.