Nilai audio hanya baca untuk mengenali bunyi dalam aplikasi atau game.
Sintaks
Audio(name)
Parameter konstruktor
Nama
Deskripsi
nameString
Nama sampel yang dibuat di Pengelola Template makro ini wajib diisi, tidak boleh kosong, dan bukan jalur berkas. Sampel langsung dimuat, termasuk sampel yang dipulihkan atau berada dalam paket terlindungi dengan enkripsi; sampel yang hilang atau rusak menimbulkan kesalahan. Backup/Store menyimpan sumber yang dipilih beserta sampel makro: maksimal 32 sampel WAV PCM16 mono 48 kHz, masing-masing paling lama 10 detik, dengan total data WAV maksimal 4 MiB.
Wajib · Posisi atau nama
Tanpa nilai bawaan
Nilai yang dikembalikan
Audio
Perilaku / efek samping
Nilai audio hanya baca untuk mengenali bunyi dalam aplikasi atau game. Gunakan Audio(name) untuk memuat sampel tersimpan, atau Audio.recent(duration_ms) untuk menyalin audio yang baru ditangkap. Penangkapan dan pencocokan berlangsung di perangkat; buffer pendengaran berkelanjutan tidak diunggah dan skrip tidak dapat mengakses audio mentah (PCM).
Eksekusi
Menunggu selesai: Bersyarat
Keamanan akses bersamaan: Tidak dijamin
Eksekusi paralel: Bersyarat
Biaya pemrosesan dan waktu tunggu bergantung pada operasi yang didokumentasikan. Simpan nilai yang dapat berubah dalam alur pemiliknya; berbagi objek sembarang antaralur tidak dijamin aman.
Contoh
# Kenali sampel audio lokal setelah mulai mendengarkan
sample = Audio("alert")
Audio.start()
wait(2000)
clip = Audio.recent(duration_ms=2000)
result = clip.match(sample, threshold=0.85)
if result.matched:
print(result.score, result.start_ms, result.end_ms)
Audio.stop()
Kesalahan / batasan
Tidak ada batasan tambahan yang didokumentasikan; ikuti kontrak parameter dan perilaku di atas.
API terkait
Tidak ada
Field
Nama
Deskripsi
nameString | None
Nama sampel tersimpan, atau None untuk snapshot terbaru.
duration_msNumber
Panjang snapshot dalam milidetik.
start_msNumber
Waktu mulai dalam milidetik; nol untuk sampel bernama, relatif terhadap sesi untuk snapshot terbaru.
end_msNumber
Waktu akhir eksklusif dalam milidetik pada linimasa yang sama dengan start_ms.
Contoh konstruktor
# Muat sampel yang disimpan dalam makro ini
audio = Audio("alert")
Metode
5 metode
Audio.start
Static Method
Mulai mendengarkan audio dari aplikasi yang dipilih, bukan dari mikrofon.
Sintaks
Audio.start()
Parameter
Tidak ada
Nilai yang dikembalikan
None
Perilaku / efek samping
Mulai mendengarkan audio dari aplikasi yang dipilih, bukan dari mikrofon. Memerlukan Android 10+, izin perekaman, persetujuan MediaProjection, dan aplikasi sumber yang mengizinkan penangkapan audio. Pemanggilan ulang saat mendengarkan mempertahankan buffer. Memulai lagi setelah stop mengatur ulang waktu sesi; atur ulang juga waktu deteksi yang disimpan. Pause menghapus riwayat, tetapi Resume tetap memakai awal waktu sesi sebelumnya dan menghitung waktu jeda. Izin, konfigurasi, atau sesi penangkapan yang tidak tersedia menimbulkan kesalahan.
Eksekusi
Menunggu selesai: Bersyarat
Keamanan akses bersamaan: Tidak dijamin
Eksekusi paralel: Bersyarat
Biaya pemrosesan dan waktu tunggu bergantung pada operasi yang didokumentasikan. Simpan nilai yang dapat berubah dalam alur pemiliknya; berbagi objek sembarang antaralur tidak dijamin aman.
Contoh
# Mulai merekam audio aplikasi yang dikonfigurasi setelah izin dan persetujuan diberikan
Audio.start()
Kesalahan / batasan
Tidak ada batasan tambahan yang didokumentasikan; ikuti kontrak parameter dan perilaku di atas.
Hentikan penangkapan audio dan hapus buffernya. Nilai audio yang sudah dikembalikan tetap dapat digunakan; penangkapan layar yang digunakan bagian lain tetap berjalan. Penyelesaian makro juga melepaskan penangkapan audio.
Eksekusi
Menunggu selesai: Bersyarat
Keamanan akses bersamaan: Tidak dijamin
Eksekusi paralel: Bersyarat
Biaya pemrosesan dan waktu tunggu bergantung pada operasi yang didokumentasikan. Simpan nilai yang dapat berubah dalam alur pemiliknya; berbagi objek sembarang antaralur tidak dijamin aman.
Contoh
# Lepaskan perekam audio yang dikonfigurasi
Audio.stop()
Kesalahan / batasan
Tidak ada batasan tambahan yang didokumentasikan; ikuti kontrak parameter dan perilaku di atas.
Salin audio terbaru menjadi snapshot mandiri tanpa menunggu data tambahan.
Sintaks
Audio.recent(duration_ms)
Parameter
Nama
Deskripsi
duration_msNumber (1..10000)
Durasi wajib berupa bilangan bulat dari 1 hingga 10000 milidetik.
Wajib · Posisi atau nama
Tanpa nilai bawaan
Nilai yang dikembalikan
Audio
Perilaku / efek samping
Salin audio terbaru menjadi snapshot mandiri tanpa menunggu data tambahan. Hanya 10 detik terakhir yang tersedia; audio yang diputar sebelum mulai mendengarkan tidak dapat diambil kembali. Riwayat yang belum cukup atau perekam yang tidak tersedia menimbulkan kesalahan. Keheningan saja tidak membuktikan aplikasi sumber memblokir penangkapan audio.
Eksekusi
Menunggu selesai: Bersyarat
Keamanan akses bersamaan: Tidak dijamin
Eksekusi paralel: Bersyarat
Biaya pemrosesan dan waktu tunggu bergantung pada operasi yang didokumentasikan. Simpan nilai yang dapat berubah dalam alur pemiliknya; berbagi objek sembarang antaralur tidak dijamin aman.
Contoh
# Aplikasi sumber harus sedang memutar; simpan riwayat setidaknya 500 ms
Audio.start()
wait(600)
clip = Audio.recent(500)
print(clip.duration_ms)
Kesalahan / batasan
Tidak ada batasan tambahan yang didokumentasikan; ikuti kontrak parameter dan perilaku di atas.
Geser sampel referensi di sepanjang snapshot ini dan kembalikan kemiripan terbaik.
Sintaks
audio.match(sample, threshold)
Parameter
Nama
Deskripsi
sampleAudio
Nilai audio acuan yang ingin ditemukan di dalam nilai audio ini.
Wajib · Posisi atau nama
Tanpa nilai bawaan
thresholdNumber (0..1)
Angka berhingga wajib dari 0 hingga 1. Kalibrasikan dengan rekaman terpisah; 0.85 hanya contoh, bukan ambang yang disarankan untuk semua suara.
Wajib · Posisi atau nama
Tanpa nilai bawaan
Nilai yang dikembalikan
AudioMatch
Perilaku / efek samping
Geser sampel referensi di sepanjang snapshot ini dan kembalikan kemiripan terbaik. Menggunakan 64 pita amplitudo mel yang dinormalisasi dan merata-ratakan kemiripan pada frame referensi yang memiliki sinyal; bagian suara yang hilang menurunkan skor. Bagian hening tidak dianggap cocok. Tidak ada pengenalan ucapan atau koreksi kecepatan maupun nada. Sampel yang lebih panjang dari klip merupakan kesalahan. Kalibrasi ulang ambang setelah pembaruan pencocok menggunakan rekaman terpisah.
Eksekusi
Menunggu selesai: Bersyarat
Keamanan akses bersamaan: Tidak dijamin
Eksekusi paralel: Bersyarat
Biaya pemrosesan dan waktu tunggu bergantung pada operasi yang didokumentasikan. Simpan nilai yang dapat berubah dalam alur pemiliknya; berbagi objek sembarang antaralur tidak dijamin aman.
Contoh
# Simpan sampel peringatan di Template Manager sebelum menjalankan contoh ini
sample = Audio("alert")
Audio.start()
wait(1500)
clip = Audio.recent(1500)
result = clip.match(sample, 0.85)
print(result)
Audio.stop()
Kesalahan / batasan
Tidak ada batasan tambahan yang didokumentasikan; ikuti kontrak parameter dan perilaku di atas.
Dengarkan audio baru untuk menemukan acuan ini selama timeout_ms milidetik, lalu kembalikan AudioMatch pertama atau None jika tidak ditemukan.
Sintaks
audio.find(timeout_ms, threshold)
Parameter
Nama
Deskripsi
timeout_msNumber (0..2147483647)
Durasi jendela perekaman wajib berupa bilangan bulat dari 0 sampai 2147483647 milidetik. Waktu jeda makro tidak dihitung. Batas jendela diperkirakan dari waktu selesainya pembacaan perekam, bukan timestamp perangkat keras.
Wajib · Posisi atau nama
Tanpa nilai bawaan
thresholdNumber (0..1)
Angka berhingga wajib dari 0 hingga 1. Kalibrasikan dengan rekaman terpisah; 0.85 hanya contoh, bukan ambang yang disarankan untuk semua suara.
Wajib · Posisi atau nama
Tanpa nilai bawaan
Nilai yang dikembalikan
AudioMatch | None
Perilaku / efek samping
Dengarkan audio baru untuk menemukan acuan ini selama timeout_ms milidetik, lalu kembalikan AudioMatch pertama atau None jika tidak ditemukan. Memulai sumber penangkapan yang dikonfigurasi bila perlu dan membiarkannya aktif hingga Audio.stop() atau makro selesai. Hanya audio yang diterima setelah panggilan ini berlangganan yang diperiksa. Kandidat tumpang tindih dipindai terus-menerus setiap 10 ms, dengan penggunaan ulang spektrum antarblok; ini mencegah celah polling tetapi tidak menjamin pengenalan. Untuk sampel minimal 100 ms dengan sinyal suara yang cukup, kecocokan yang nyaris sempurna (skor minimal 0,9999) langsung dikembalikan saat seluruh sampel diterima. Kecocokan kuat lainnya (skor minimal 0,98) dapat memeriksa posisi hingga 20 ms lagi; kecocokan yang lebih lemah memakai jendela 50 ms. Jika kandidat baru menjadi sangat cocok menjelang akhir jendela itu, posisinya diperiksa sekali lagi hingga 20 ms. Semua hasil harus memenuhi ambang yang diminta. Timeout membatasi jendela perekaman; pemrosesan audio yang memenuhi syarat dapat menambah latensi. Nol mengembalikan None tanpa memulai penangkapan. Pause makro membuang audio tertunda dan menghentikan hitungan timeout; Resume mencari dalam segmen baru. Sesi terputus, luapan data, dan audio rusak adalah kesalahan, bukan None.
Eksekusi
Menunggu selesai: Bersyarat
Keamanan akses bersamaan: Tidak dijamin
Eksekusi paralel: Bersyarat
Biaya pemrosesan dan waktu tunggu bergantung pada operasi yang didokumentasikan. Simpan nilai yang dapat berubah dalam alur pemiliknya; berbagi objek sembarang antaralur tidak dijamin aman.
Contoh
# Tunggu suara baru dan tangani batas waktu
audio = Audio("alert")
result = audio.find(timeout_ms=5000, threshold=0.85)
if result is not None:
print(result.score, result.start_ms, result.end_ms)
Audio.stop()
Kesalahan / batasan
Tidak ada batasan tambahan yang didokumentasikan; ikuti kontrak parameter dan perilaku di atas.