TensorAudio

class publik TensorAudio

Menentukan buffer ring dan beberapa fungsi utilitas untuk menyiapkan sampel audio input.

Fungsi ini mempertahankan Buffering Dering untuk menyimpan data audio input. Klien dapat memasukkan data audio input melalui metode `load` dan mengakses sampel audio gabungan melalui metode `getTensorBuffer`.

Perlu diperhatikan bahwa class ini hanya dapat menangani audio input dalam Float (dalam AudioFormat.ENCODING_PCM_16BIT) atau Short (dalam AudioFormat.ENCODING_PCM_FLOAT). Secara internal, class ini mengonversi dan menyimpan semua sampel audio dalam encoding PCM Float.

Penggunaan standar di Kotlin

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

Contoh penggunaan lain dengan AudioRecord

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

Class Bertingkat

class TensorAudio.TensorAudioFormat Menggabungkan beberapa konstanta yang menjelaskan format sampel audio yang masuk, yaitu jumlah saluran dan frekuensi sampel. 

Metode Publik

statis TensorAudio
create(format AudioFormat, int sampleCounts)
Membuat instance TensorAudio dengan buffer ring yang ukurannya sampleCounts * format.getChannelCount().
statis TensorAudio
create(format TensorAudio.TensorAudioFormat, int sampleCounts)
Membuat instance AudioRecord dengan buffer ring yang ukurannya sampleCounts * format.getChannels().
TensorAudio.TensorAudioFormat
TensorBuffer
getTensorBuffer()
Menampilkan float TensorBuffer yang menyimpan semua sampel audio yang tersedia di AudioFormat.ENCODING_PCM_FLOAT, yaitu
void
load(short[] src)
Mengonversi sampel audio input src menjadi ENCODING_PCM_FLOAT, lalu menyimpannya di buffer ring.
void
load(float[] src, int offsetInFloat, int sizeInFloat)
Menyimpan sampel audio input src di buffer ring.
void
load(short[] src, int offsetInShort, int sizeInShort)
Mengonversi sampel audio input src menjadi ENCODING_PCM_FLOAT, lalu menyimpannya di buffer ring.
int
load(rekaman AudioRecord)
Memuat data terbaru dari AudioRecord dengan cara yang tidak memblokir.
void
load(float[] src)
Menyimpan sampel audio input src di buffer ring.

Metode Turunan

Metode Publik

public static TensorAudio create (Format AudioFormat, int sampleCounts)

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

Parameter
format AudioFormat yang diperlukan oleh model TFLite. Menentukan jumlah saluran dan frekuensi sampel.
sampleCounts jumlah sampel yang akan dimasukkan ke dalam model

publik statis TensorAudio create (TensorAudio.TensorAudioFormat, int sampleCounts)

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

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

publik TensorAudio.TensorAudioFormat getFormat ()

publik TensorBuffer getTensorBuffer ()

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

public void load (short[] src)

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

Parameter
src sampel audio input di AudioFormat.ENCODING_PCM_16BIT. Untuk input multi-saluran, array ini disisipi.

public void load (float[] src, int offsetInFloat, int sizeInFloat)

Menyimpan sampel audio input src di buffer ring.

Parameter
src sampel audio input di AudioFormat.ENCODING_PCM_FLOAT. Untuk input multi-saluran, array ini disisipi.
offsetInFloat posisi awal dalam array src
sizeInFloat jumlah nilai float yang akan disalin
Menampilkan
IllegalArgumentException untuk format audio yang tidak kompatibel atau ukuran input yang salah

public void load (short[] src, int offsetInShort, int sizeInShort)

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

Parameter
src sampel audio input di AudioFormat.ENCODING_PCM_16BIT. Untuk input multi-saluran, array ini disisipi.
offsetInShort posisi awal dalam array src
sizeInShort jumlah nilai pendek yang akan disalin
Menampilkan
IllegalArgumentException jika array sumber tidak dapat disalin

public int load (AudioRecord record)

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

Parameter
kumpulan data instance AudioRecord
Hasil
  • jumlah nilai audio yang diambil yang berukuran channelCount * sampleCount. Jika tidak ada data baru dalam AudioRecord atau terjadi error, metode ini akan menampilkan 0.
Menampilkan
IllegalArgumentException untuk format encoding audio yang tidak didukung
IllegalStateException jika gagal membaca dari AudioRecord

public void load (float[] src)

Menyimpan sampel audio input src di buffer ring.

Parameter
src sampel audio input di AudioFormat.ENCODING_PCM_FLOAT. Untuk input multi-saluran, array ini disisipi.