AudioData

kelas publik AudioData

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

Komponen ini mempertahankan Ring Buffer untuk menampung memasukkan data audio. Klien dapat memberikan data audio input melalui metode `load` dan mengakses sampel audio gabungan melalui metode `getTensorBuffer`.

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

Penggunaan standar di Kotlin

   val audioData = AudioData.create(format, modelInputLength)
   audioData.load(newData)
 

Contoh penggunaan lain dengan AudioRecord

   val audioData = AudioData.create(format, modelInputLength)
   Timer().scheduleAtFixedRate(delay, period) {
     audioData.load(audioRecord)
   }
 

Class Bertingkat

class AudioData.AudioDataFormat Membungkus beberapa konstanta yang menjelaskan format sampel audio yang masuk, yaitu jumlah saluran dan frekuensi sampel.

Metode Publik

statis AudioData
create(format AudioData.AudioDataFormat, int sampleCounts)
Membuat instance AudioRecord dengan buffer ring yang ukurannya sampleCounts * format.getNumOfChannels().
statis AudioData
create(format AudioFormat, int sampleCounts)
Membuat instance AudioData dengan buffer ring yang ukurannya sampleCounts * format.getChannelCount().
float[]
getBuffer()
Menampilkan array float yang menyimpan semua sampel audio yang tersedia di AudioFormat.ENCODING_PCM_FLOAT, yaitu
int
AudioData.AudioDataFormat
void
load(short[] src)
Mengonversi contoh audio input src menjadi ENCODING_PCM_FLOAT, lalu menyimpannya di dalam cincin {i>buffer <i}(penyangga).
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 contoh audio input src menjadi ENCODING_PCM_FLOAT, lalu menyimpannya di dalam cincin {i>buffer <i}(penyangga).
int
load(Rekaman AudioRecord)
Memuat data terbaru dari AudioRecord dengan cara yang tidak memblokir.
void
beban(float[] src)
Menyimpan sampel audio input src di buffer ring.

Metode Turunan

Metode Publik

publik statis AudioData buat (FormatAudioData.AudioDataFormat, int sampleCounts)

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

Parameter
format AudioData.AudioDataFormat data audio yang diharapkan dimuat ke class ini.
sampleCounts jumlah sampel.

publik statis AudioData buat (Format AudioFormat, int sampleCounts)

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

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

publik float[] getBuffer ()

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

publik Int getBufferLength ()

publik AudioData.AudioDataFormat getFormat ()

publik kosong muat (singkat[] src)

Mengonversi contoh audio input src menjadi ENCODING_PCM_FLOAT, lalu menyimpannya di dalam cincin {i>buffer <i}(penyangga).

Parameter
src memasukkan sampel audio di AudioFormat.ENCODING_PCM_16BIT. Sebagai input multisaluran, array tersebut akan disisipkan.

publik kosong muat (float[] src, int offsetInFloat, int sizeInFloat)

Menyimpan sampel audio input src di buffer ring.

Parameter
src memasukkan sampel audio di AudioFormat.ENCODING_PCM_FLOAT. Sebagai input multisaluran, array tersebut akan disisipkan.
offsetInFloat posisi awal dalam array src
sizeInFloat jumlah nilai {i>float<i} yang akan disalin
Menampilkan
IllegalArgumentException untuk format audio yang tidak kompatibel atau ukuran input yang salah

publik kosong muat (short[] src, int offsetInShort, int sizeInShort)

Mengonversi contoh audio input src menjadi ENCODING_PCM_FLOAT, lalu menyimpannya di dalam cincin {i>buffer <i}(penyangga).

Parameter
src memasukkan sampel audio di AudioFormat.ENCODING_PCM_16BIT. Sebagai input multisaluran, array tersebut akan disisipkan.
offsetInShort posisi awal dalam array src
sizeInShort jumlah nilai singkat yang akan disalin
Menampilkan
IllegalArgumentException jika array sumber tidak dapat disalin

publik Int muat (Rekaman AudioRecord)

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

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

publik kosong muat (float[] src)

Menyimpan sampel audio input src di buffer ring.

Parameter
src memasukkan sampel audio di AudioFormat.ENCODING_PCM_FLOAT. Sebagai input multisaluran, array tersebut akan disisipkan.