Mulai cepat Windows dan Linux
Pustaka C untuk Windows dan Linux: cara membangunnya, tempat menaruh kunci, dan panduan mulai cepat.
SDK native adalah API C untuk aplikasi desktop dan server di Windows dan Linux, pada x86-64. Tidak ada biner siap pakai: pustaka ini dibangun dari tag rilisnya dengan CMake. Kode sumbernya ada di github.com/Quran-Lab/tajweedformer-c.
Pemasangan
git clone --recurse-submodules --branch 3.1.3 https://github.com/Quran-Lab/tajweedformer-c
cd tajweedformer-c
cmake --preset linux && cmake --build --preset linuxgit clone --recurse-submodules --branch 3.1.3 https://github.com/Quran-Lab/tajweedformer-c
cd tajweedformer-c
cmake --preset windows-clang
cmake --build --preset windows-clangKunci
Gunakan kunci desktop. Aplikasi Windows dikenali dari nama keluarga paket atau AppUserModelID-nya, sedangkan aplikasi Linux dari app id-nya yang berformat reverse-DNS. Jangan pernah mengompilasi kunci ke dalam kode sumber yang dipakai bersama:
# the environment, or your app's config file
QURANLAB_KEY=qlk_v1_...Client, model, session, read
Pustaka C tidak memiliki mikrofon: aplikasi Anda, atau perekam milik sistem, yang memasukkan audio ke dalamnya.
#include <stdio.h>
#include "tajweedformer.h"
static void on_chunk(void *user, const TfChunk *chunk) {
(void)user, puts(chunk->decoded->text); /* what the model heard so far */
}
static int recite(const char *key) {
TfClient *client = tf_client_create(
&(TfClientOptions){.key = key, .app_id = "com.example.quickstart"});
TfModel *model = tf_client_model(client, NULL); /* downloaded once, verified, opened */
TfSession *session = tf_session_create(
model, &(TfSessionOptions){.on_chunk = on_chunk, .end_on_silence_ms = 1500});
float samples[1600]; /* mono float, 100 ms at 16 kHz */
size_t n;
while ((n = fread(samples, sizeof *samples, 1600, stdin)) > 0)
if (tf_session_push(session, samples, (int)n) < 0) break;
return tf_session_finish(session);
}Salurkan audio mikrofon melalui pipe sebagai sampel float mono mentah pada 16 kHz. Di Windows, jalankan baris ini di Command Prompt: Windows PowerShell mengubah byte mentah saat melewati pipe.
arecord -q -f FLOAT_LE -r 16000 -c 1 -t raw | ./quickstart qlk_v1_...ffmpeg -f dshow -i audio="<your microphone>" -ac 1 -ar 16000 -f f32le - | quickstart.exe qlk_v1_...- Opsi. Setiap struct opsi boleh berupa
NULLatau diisi nol seluruhnya. Nol adalah nilai bawaan setiap field. - Galat. Fungsi mengembalikan
NULLatau kode negatif.tf_last_error()memberikan pesannya,tf_last_error_fix()memberikan yang perlu dilakukan untuk mengatasinya, dan kodenya sama dengan yang ada di Galat. - Tanpa mikrofon.
tf_session_listenmenjalankan salah satu klip contoh yang disertakan bersama model melalui jalur yang sama.
Yang dikembalikan
chunk->decoded berisi hasil take (satu kali bacaan yang didengarkan SDK) sampai saat ini: teks, serta setiap token beserta waktu dan tingkat keyakinannya. Setelah tf_session_finish, tf_session_heads(session) memberikan keluaran mentah dari take tersebut. Bangun umpan balik sendiri menjelaskan masing-masing.
Nama persisnya untuk versi SDK Anda ada di README repositori dan di tajweedformer.h.