TensorAudio

klasa publiczna TensorAudio

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 TensorAudio.TensorAudioFormat getFormat ()

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.