TensorAudio

TensorAudio kelas publik

Mendefinisikan buffer cincin dan beberapa fungsi utilitas untuk menyiapkan sampel audio input.

Ia mempertahankan Ring Buffer untuk menyimpan data audio input. Klien dapat memasukkan data audio masukan melalui metode `muat` dan mengakses sampel audio gabungan melalui metode `getTensorBuffer`.

Perhatikan bahwa kelas ini hanya dapat menangani input audio dalam Float (dalam AudioFormat.ENCODING_PCM_16BIT ) atau Short (dalam AudioFormat.ENCODING_PCM_FLOAT ). Secara internal ia mengubah dan menyimpan semua sampel audio dalam pengkodean PCM Float.

Penggunaan umum di Kotlin

   val tensor = TensorAudio.create(format, modelInputLength)
   tensor.load(newData)
   interpreter.run(tensor.getTensorBuffer(), outputBuffer);
 

Contoh penggunaan lainnya dengan AudioRecord

   val tensor = TensorAudio.create(format, modelInputLength)
   Timer().scheduleAtFixedRate(delay, period) {
     tensor.load(audioRecord)
     interpreter.run(tensor.getTensorBuffer(), outputBuffer)
   }
 

Kelas Bersarang

kelas TensorAudio.TensorAudioFormat Membungkus beberapa konstanta yang menjelaskan format sampel audio yang masuk, yaitu jumlah saluran dan laju sampel.

Metode Publik

TensorAudio statis
buat (format AudioFormat, int sampleCounts)
Membuat instance TensorAudio dengan buffer cincin yang ukurannya sampleCounts * format.getChannelCount() .
TensorAudio statis
buat (format TensorAudio.TensorAudioFormat , int sampleCounts)
Membuat instance AudioRecord dengan buffer cincin yang ukurannya sampleCounts * format.getChannels() .
TensorAudio.TensorAudioFormat
TensorBuffer
dapatkanTensorBuffer ()
Mengembalikan TensorBuffer float yang menyimpan semua sampel audio yang tersedia di AudioFormat.ENCODING_PCM_FLOAT yaitu
ruang kosong
memuat (pendek[] src)
Mengonversi sampel audio input src menjadi ENCODING_PCM_FLOAT, lalu menyimpannya di buffer ring.
ruang kosong
memuat (float[] src, int offsetInFloat, int sizeInFloat)
Menyimpan sampel audio input src di buffer cincin.
ruang kosong
memuat (pendek[] src, int offsetInShort, int sizeInShort)
Mengonversi sampel audio input src menjadi ENCODING_PCM_FLOAT, lalu menyimpannya di buffer ring.
ke dalam
memuat (catatan AudioRecord)
Memuat data terbaru dari AudioRecord dengan cara yang tidak memblokir.
ruang kosong
memuat (mengambang[] src)
Menyimpan sampel audio input src di buffer cincin.

Metode Warisan

Metode Publik

pembuatan TensorAudio statis publik (format AudioFormat, int sampleCounts)

Membuat instance TensorAudio dengan buffer cincin yang ukurannya sampleCounts * format.getChannelCount() .

Parameter
format AudioFormat yang dibutuhkan oleh model TFLite. Ini menentukan jumlah saluran dan laju sampel.
jumlah sampel jumlah sampel yang akan dimasukkan ke dalam model

pembuatan TensorAudio statis publik (format TensorAudio.TensorAudioFormat , int sampleCounts)

Membuat instance AudioRecord dengan buffer cincin yang ukurannya sampleCounts * format.getChannels() .

Parameter
format TensorAudio.TensorAudioFormat data audio yang diharapkan dimuat ke kelas ini.
jumlah sampel jumlah sampel yang akan dimasukkan ke dalam model

TensorAudio.TensorAudioFormat getFormat () publik

TensorBuffer publik dapatkanTensorBuffer ()

Mengembalikan TensorBuffer float yang menyimpan semua sampel audio yang tersedia di AudioFormat.ENCODING_PCM_FLOAT yaitu nilai berada dalam kisaran [-1, 1].

beban kekosongan publik (pendek[] src)

Mengonversi sampel audio input src menjadi ENCODING_PCM_FLOAT, lalu menyimpannya di buffer ring.

Parameter
src masukkan sampel audio di AudioFormat.ENCODING_PCM_16BIT . Untuk input multi-saluran, array disisipkan.

beban kekosongan publik (float[] src, int offsetInFloat, int sizeInFloat)

Menyimpan sampel audio input src di buffer cincin.

Parameter
src masukkan sampel audio di AudioFormat.ENCODING_PCM_FLOAT . Untuk input multi-saluran, array disisipkan.
offsetInFloat posisi awal dalam array src
ukuranInFloat jumlah nilai float yang akan disalin
Melempar
Pengecualian Argumen Ilegal untuk format audio yang tidak kompatibel atau ukuran input salah

beban kekosongan publik (pendek[] src, int offsetInShort, int sizeInShort)

Mengonversi sampel audio input src menjadi ENCODING_PCM_FLOAT, lalu menyimpannya di buffer ring.

Parameter
src masukkan sampel audio di AudioFormat.ENCODING_PCM_16BIT . Untuk input multi-saluran, array disisipkan.
offsetInShort posisi awal dalam array src
ukuranDalam Pendek jumlah nilai pendek yang akan disalin
Melempar
Pengecualian Argumen Ilegal jika array sumber tidak dapat disalin

beban int publik (catatan AudioRecord)

Memuat data terbaru dari AudioRecord dengan cara yang tidak memblokir. Hanya mendukung ENCODING_PCM_16BIT dan ENCODING_PCM_FLOAT.

Parameter
catatan sebuah contoh dari AudioRecord
Kembali
  • jumlah nilai audio yang diambil yang ukurannya channelCount * sampleCount . Jika tidak ada data baru di AudioRecord atau terjadi kesalahan, metode ini akan mengembalikan 0.
Melempar
Pengecualian Argumen Ilegal untuk format pengkodean audio yang tidak didukung
IlegalStateException jika membaca dari AudioRecord gagal

beban kekosongan publik (float[] src)

Menyimpan sampel audio input src di buffer cincin.

Parameter
src masukkan sampel audio di AudioFormat.ENCODING_PCM_FLOAT . Untuk input multi-saluran, array disisipkan.