TensorAudio

klasa publiczna TensorAudio

Definiuje bufor pierścieniowy i niektóre funkcje użytkowe służące do przygotowywania wejściowych próbek audio.

Zawiera on bufor pierścieniowy do przechowywania wejściowych danych audio. Klienty mogą przesyłać wejściowe dane audio za pomocą metod „load” i uzyskiwać dostęp do zagregowanych próbek audio za pomocą metody „getTensorBuffer”.

Pamiętaj, że ta klasa obsługuje tylko wejście audio w formacie Float (w formacie AudioFormat.ENCODING_PCM_16BIT) lub Short (w języku AudioFormat.ENCODING_PCM_FLOAT). Wewnętrznie konwertuje i przechowuje wszystkie próbki audio w kodowaniu PCM Float.

Typowe zastosowanie w Kotlin

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

Kolejne przykładowe użycie funkcji AudioRecord

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

Zagnieżdżone klasy

klasa TensorAudio.TensorAudioFormat Opakowuje kilka stałych opisujących format przychodzących próbek audio, czyli liczbę kanałów i częstotliwość próbkowania. 

Metody publiczne

statyczny TensorAudio
create(format AudioFormat, int sampleCounts)
Tworzy instancję TensorAudio z buforem pierścieniowym o rozmiarze sampleCounts * format.getChannelCount().
statyczny TensorAudio
create(format TensorAudio.TensorAudioFormat, int sampleCounts)
Tworzy instancję AudioRecord z buforem pierścieniowym o rozmiarze sampleCounts * format.getChannels().
TensorAudio.TensorAudioFormat
TensorBuffer
getTensorBuffer(),
Zwraca liczbę zmiennoprzecinkową TensorBuffer, która zawiera wszystkie dostępne próbki audio w elemencie AudioFormat.ENCODING_PCM_FLOAT, tj.
void
load(short[] src)
Konwertuje wejściowe próbki audio src na ENCODING_PCM_FLOAT, a następnie zapisuje je w buforze pierścieniowym.
void
load(float[] src, int shiftInFloat, int sizeInFloat)
Zapisuje wejściowe próbki audio src w buforze pierścieniowym.
void
load(short[] src, int shiftInShort, int sizeInShort)
Konwertuje wejściowe próbki audio src na ENCODING_PCM_FLOAT, a następnie zapisuje je w buforze pierścieniowym.
int
load(nagranie audio)
Wczytuje najnowsze dane z AudioRecord w nieblokujący sposób.
void
load(float[] src)
Zapisuje 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 o rozmiarze sampleCounts * format.getChannelCount().

Parametry
reklamy AudioFormat wymagana przez model TFLite. Określa liczbę kanałów i częstotliwość próbkowania.
sampleCounts liczba próbek, które zostaną przekazane do modelu

public static TensorAudio create (format TensorAudio.TensorAudioFormat, int sampleCounts)

Tworzy instancję AudioRecord z buforem pierścieniowym o rozmiarze sampleCounts * format.getChannels().

Parametry
reklamy oczekiwanych TensorAudio.TensorAudioFormat danych audio wczytanych do tych zajęć.
sampleCounts liczba próbek, które zostaną przekazane do modelu

public TensorAudio.TensorAudioFormat getFormat ()

publiczna TensorBuffer getTensorBuffer ()

Zwraca liczbę zmiennoprzecinkową TensorBuffer, w której znajdują się wszystkie dostępne próbki audio w komórce AudioFormat.ENCODING_PCM_FLOAT, tj. wartości mieszczą się w zakresie [–1, 1].

public void load (short[] src)

Konwertuje wejściowe próbki audio src na ENCODING_PCM_FLOAT, a następnie zapisuje je w buforze pierścieniowym.

Parametry
src próbki audio w języku: AudioFormat.ENCODING_PCM_16BIT. W przypadku wielokanałowych danych wejściowych tablica jest przeplatana.

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

Zapisuje wejściowe próbki audio src w buforze pierścieniowym.

Parametry
src próbki audio w języku: AudioFormat.ENCODING_PCM_FLOAT. W przypadku wielokanałowych danych wejściowych tablica jest przeplatana.
offsetInFloat pozycja początkowa w tablicy src
sizeInFloat liczba wartości zmiennoprzecinkowych do skopiowania
Rzuty
IllegalArgumentException pod kątem niezgodnego formatu dźwięku lub nieprawidłowego rozmiaru wejściowego

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

Konwertuje wejściowe próbki audio src na ENCODING_PCM_FLOAT, a następnie zapisuje je w buforze pierścieniowym.

Parametry
src próbki audio w języku: AudioFormat.ENCODING_PCM_16BIT. W przypadku wielokanałowych danych wejściowych tablica jest przeplatana.
offsetInShort pozycja początkowa w tablicy src
sizeInShort liczba krótkich wartości do skopiowania
Rzuty
IllegalArgumentException jeśli nie można skopiować tablicy źródłowej

public int load (rekord audioRecord)

Wczytuje najnowsze dane z AudioRecord w nieblokujący sposób. Obsługa tylko ENCODING_PCM_16BIT i ENCODING_PCM_FLOAT.

Parametry
rekord wystąpienie elementu AudioRecord
Zwroty
  • liczba zarejestrowanych wartości audio, których rozmiar wynosi channelCount * sampleCount. Jeśli w rekordzie audio nie było nowych danych lub wystąpił błąd, ta metoda zwróci wartość 0.
Rzuty
IllegalArgumentException w przypadku nieobsługiwanego formatu kodowania audio
IllegalStateException jeśli nie udało się odczytać dźwięku z rekordu audio

public void load (float[] src)

Zapisuje wejściowe próbki audio src w buforze pierścieniowym.

Parametry
src próbki audio w języku: AudioFormat.ENCODING_PCM_FLOAT. W przypadku wielokanałowych danych wejściowych tablica jest przeplatana.