Definiuje bufor pierścieniowy i niektóre funkcje narzędziowe do przygotowania wejściowych próbek audio.
Utrzymuje bufor pierścieniowy do przechowywania wejściowych danych audio. Klienci mogą dostarczać wejściowe dane audio metodami „load” i uzyskiwać dostęp do zagregowanych próbek audio za pomocą metody „getTensorBuffer”.
Należy pamiętać, że ta klasa może obsługiwać tylko wejściowy dźwięk w formacie Float (w AudioFormat.ENCODING_PCM_16BIT
) lub Short (w AudioFormat.ENCODING_PCM_FLOAT
). Wewnętrznie konwertuje i przechowuje wszystkie próbki audio w kodowaniu PCM Float.
Typowe użycie w Kotlin
val tensor = TensorAudio.create(format, modelInputLength) tensor.load(newData) interpreter.run(tensor.getTensorBuffer(), outputBuffer);
Kolejne przykładowe użycie z AudioRecord
val tensor = TensorAudio.create(format, modelInputLength) Timer().scheduleAtFixedRate(delay, period) { tensor.load(audioRecord) interpreter.run(tensor.getTensorBuffer(), outputBuffer) }
Klasy zagnieżdżone
klasa | TensorAudio.TensorAudioFormat | Owija kilka stałych opisujących format przychodzących próbek audio, a mianowicie liczbę kanałów i częstotliwość próbkowania. |
Metody publiczne
statyczny TensorAudio | utwórz (format AudioFormat, int sampleCounts) Tworzy instancję TensorAudio z buforem pierścieniowym, którego rozmiar to sampleCounts * format.getChannelCount() . |
statyczny TensorAudio | utwórz (format TensorAudio.TensorAudioFormat , int sampleCounts) Tworzy instancję AudioRecord z buforem pierścieniowym, którego rozmiar to sampleCounts * format.getChannels() . |
TensorAudio.TensorAudioFormat | |
Bufor Tensora | pobierzTensorBuffer () Zwraca float TensorBuffer przechowujący wszystkie dostępne próbki audio w AudioFormat.ENCODING_PCM_FLOAT , tj. |
próżnia | obciążenie (krótkie [] src) Konwertuje wejściowe próbki audio src na ENCODING_PCM_FLOAT, a następnie zapisuje je w buforze pierścieniowym. |
próżnia | obciążenie (float[] src, int offsetInFloat, int sizeInFloat) Przechowuje wejściowe próbki audio src w buforze pierścieniowym. |
próżnia | obciążenie (short[] src, int offsetInShort, int sizeInShort) Konwertuje wejściowe próbki audio src na ENCODING_PCM_FLOAT, a następnie zapisuje je w buforze pierścieniowym. |
wew | wczytaj (rekord AudioRecord) Ładuje najnowsze dane z AudioRecord w sposób nieblokujący. |
próżnia | obciążenie (float[] src) Przechowuje wejściowe próbki audio src w buforze pierścieniowym. |
Metody dziedziczone
Metody publiczne
public static TensorAudio create (format AudioFormat, int sampleCounts)
Tworzy instancję TensorAudio
z buforem pierścieniowym, którego rozmiar to sampleCounts
* format.getChannelCount()
.
Parametry
format | AudioFormat wymagany przez model TFLite. Określa liczbę kanałów i częstotliwość próbkowania. |
---|---|
liczba próbek | liczbę próbek, które należy wprowadzić do modelu |
public static TensorAudio create (format TensorAudio.TensorAudioFormat , int sampleCounts)
Tworzy instancję AudioRecord
z buforem pierścieniowym, którego rozmiar to sampleCounts
* format.getChannels()
.
Parametry
format | oczekiwany TensorAudio.TensorAudioFormat danych audio załadowanych do tej klasy. |
---|---|
liczba próbek | liczbę próbek, które należy wprowadzić do modelu |
publiczny TensorBuffer getTensorBuffer ()
Zwraca float TensorBuffer
przechowujący wszystkie dostępne próbki audio w AudioFormat.ENCODING_PCM_FLOAT
, tj. wartości z zakresu [-1, 1].
publiczne obciążenie puste (short[] src)
Konwertuje wejściowe próbki audio src
na ENCODING_PCM_FLOAT, a następnie zapisuje je w buforze pierścieniowym.
Parametry
źródło | wprowadź próbki audio w AudioFormat.ENCODING_PCM_16BIT . W przypadku wejścia wielokanałowego tablica jest przeplatana. |
---|
publiczne obciążenie puste (float[] src, int offsetInFloat, int sizeInFloat)
Przechowuje wejściowe próbki audio src
w buforze pierścieniowym.
Parametry
źródło | wprowadź próbki audio w AudioFormat.ENCODING_PCM_FLOAT . W przypadku wejścia wielokanałowego tablica jest przeplatana. |
---|---|
offsetInFloat | pozycja początkowa w tablicy src |
rozmiarInFloat | liczba wartości zmiennoprzecinkowych do skopiowania |
Rzuca
Wyjątek IllegalArgument | w przypadku niezgodnego formatu audio lub nieprawidłowego rozmiaru sygnału wejściowego |
---|
publiczne obciążenie puste (short[] src, int offsetInShort, int sizeInShort)
Konwertuje wejściowe próbki audio src
na ENCODING_PCM_FLOAT, a następnie zapisuje je w buforze pierścieniowym.
Parametry
źródło | wprowadź próbki audio w AudioFormat.ENCODING_PCM_16BIT . W przypadku wejścia wielokanałowego tablica jest przeplatana. |
---|---|
offsetInShort | pozycja początkowa w tablicy src |
rozmiarW skrócie | liczba krótkich wartości do skopiowania |
Rzuca
Wyjątek IllegalArgument | jeśli nie można skopiować tablicy źródłowej |
---|
publiczne ładowanie int (rekord AudioRecord)
Ładuje najnowsze dane z AudioRecord
w sposób nieblokujący. Obsługuje tylko ENCODING_PCM_16BIT i ENCODING_PCM_FLOAT.
Parametry
nagrywać | instancja AudioRecord |
---|
Zwroty
- liczba przechwyconych wartości audio, których rozmiar to
channelCount * sampleCount
. Jeżeli w AudioRecord nie było nowych danych lub wystąpił błąd, ta metoda zwróci 0.
Rzuca
Wyjątek IllegalArgument | w przypadku nieobsługiwanego formatu kodowania dźwięku |
---|---|
Wyjątek IllegalStateException | jeśli odczyt z AudioRecord nie powiódł się |
publiczne obciążenie puste (float[] src)
Przechowuje wejściowe próbki audio src
w buforze pierścieniowym.
Parametry
źródło | wprowadź próbki audio w AudioFormat.ENCODING_PCM_FLOAT . W przypadku wejścia wielokanałowego tablica jest przeplatana. |
---|