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