Mulai cepat Apple
Paket Swift untuk iOS dan macOS: baris pemasangan, tempat menaruh kunci, dan panduan mulai cepat.
Paket Swift berjalan di iOS dan macOS pada Apple silicon. Paket ini memakai Neural Engine jika perangkat sudah mengujinya terhadap mesin exact (CPU). Jika tidak, yang dipakai adalah mesin CPU. Kode sumbernya ada di github.com/Quran-Lab/tajweedformer-apple.
Pemasangan
// Package.swift, or in Xcode: File > Add Package Dependencies
.package(url: "https://github.com/Quran-Lab/tajweedformer-apple", from: "3.1.4")
// product TajweedFormer
import TajweedFormerKunci
Aplikasi iOS memakai kunci apps, sedangkan build macOS-nya memakai kunci desktop, jadi Anda memerlukan dua kunci. Aplikasi dikenali dari bundle id-nya. Simpan kunci di luar repositori Anda:
// Secrets.xcconfig (git-ignored), the target's base configuration
QURANLAB_KEY = qlk_v1_...
// Info.plist: QuranLabKey = $(QURANLAB_KEY)
let key = Bundle.main.object(forInfoDictionaryKey: "QuranLabKey") as? StringTambahkan capability App Attest: dengan capability ini aplikasi Anda membuktikan instalasinya, dan rekaman yang dibagikan pelajar tidak diunggah tanpanya (berbagi rekaman).
Client, model, listen, read
import TajweedFormer
func quickStart(key: String) async throws {
// once per process
let client = try TajweedClient(key: key)
// downloads the model once, verifies it, opens and warms it
let model = try await client.model()
// asks for the microphone; 1.5 s of silence end the take
let session = try await model.listen(options: .init(endOnSilenceMs: 1500))
for await chunk in session.chunks { // every 320 ms
print(chunk.decoded.text) // what the model heard so far
}
}Panggil fungsi ini dari sebuah tombol: Task { try await quickStart(key: key) }.
- Mikrofon.
listen()meminta izin dan menangkap audio pada laju sampel perangkat itu sendiri, lalu meneruskan laju itu ke sesi. Karena itu, laju sampel tidak muncul di sini. - Akhir take. Dengan
endOnSilenceMs, take (satu kali bacaan yang didengarkan SDK) selesai dengan sendirinya 1,5 detik setelah pelajar berhenti. Tanpa opsi ini, panggiltry await session.finish(). - Take berikutnya adalah panggilan
model.listen()yang baru. - Galat. Setiap galat berupa
TajweedErrordengancodeyang stabil,fix, dan tautan ke halaman Galat.
Yang dikembalikan
Setiap potongan berisi chunk.decoded (teks, setiap token beserta waktu dan tingkat keyakinannya, serta jumlah token yang sudah tetap) 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.