Runtime v2.81 · Diperbarui 30 Sep 2026

Audio

Nilai audio hanya baca untuk mengenali bunyi dalam aplikasi atau game.

Sintaks

Audio(name)

Parameter konstruktor

NamaDeskripsi
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

NamaDeskripsi
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

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.

API terkait

Audio.stop

Hentikan penangkapan audio dan hapus buffernya.

Sintaks

Audio.stop()

Parameter

Tidak ada

Nilai yang dikembalikan

None

Perilaku / efek samping

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.

API terkait

Audio.recent

Salin audio terbaru menjadi snapshot mandiri tanpa menunggu data tambahan.

Sintaks

Audio.recent(duration_ms)

Parameter

NamaDeskripsi
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.

API terkait

Audio.match

Geser sampel referensi di sepanjang snapshot ini dan kembalikan kemiripan terbaik.

Sintaks

audio.match(sample, threshold)

Parameter

NamaDeskripsi
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.

API terkait

Audio.find

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

NamaDeskripsi
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.

API terkait