TensorAudio

classe publique TensorAudio

Définit un tampon en anneau et quelques fonctions utilitaires pour préparer les échantillons audio d'entrée.

Il maintient un Ring Buffer pour contenir les données audio d’entrée. Les clients pouvaient alimenter les données audio d'entrée via les méthodes « load » et accéder aux échantillons audio agrégés via la méthode « getTensorBuffer ».

Notez que cette classe ne peut gérer que l'audio d'entrée dans Float (dans AudioFormat.ENCODING_PCM_16BIT ) ou Short (dans AudioFormat.ENCODING_PCM_FLOAT ). En interne, il convertit et stocke tous les échantillons audio en codage PCM Float.

Utilisation typique dans Kotlin

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

Un autre exemple d'utilisation avec AudioRecord

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

Classes imbriquées

classe TensorAudio.TensorAudioFormat Encapsule quelques constantes décrivant le format des échantillons audio entrants, à savoir le nombre de canaux et la fréquence d'échantillonnage.

Méthodes publiques

TensorAudio statique
créer (format AudioFormat, int sampleCounts)
Crée une instance TensorAudio avec un tampon en anneau dont la taille est sampleCounts * format.getChannelCount() .
TensorAudio statique
créer (format TensorAudio.TensorAudioFormat , int sampleCounts)
Crée une instance AudioRecord avec un tampon en anneau dont la taille est sampleCounts * format.getChannels() .
TensorAudio.TensorAudioFormat
TensorBuffer
getTensorBuffer ()
Renvoie un TensorBuffer flottant contenant tous les échantillons audio disponibles dans AudioFormat.ENCODING_PCM_FLOAT , c'est-à-dire
vide
charger (short[] src)
Convertit les échantillons audio d'entrée src en ENCODING_PCM_FLOAT, puis les stocke dans le tampon en anneau.
vide
charger (float[] src, int offsetInFloat, int sizeInFloat)
Stocke les échantillons audio d’entrée src dans le tampon en anneau.
vide
charger (short[] src, int offsetInShort, int sizeInShort)
Convertit les échantillons audio d'entrée src en ENCODING_PCM_FLOAT, puis les stocke dans le tampon en anneau.
int
charger (enregistrement AudioRecord)
Charge les dernières données de l' AudioRecord de manière non bloquante.
vide
charger (float[] src)
Stocke les échantillons audio d’entrée src dans le tampon en anneau.

Méthodes héritées

Méthodes publiques

création TensorAudio statique publique (format AudioFormat, int sampleCounts)

Crée une instance TensorAudio avec un tampon en anneau dont la taille est sampleCounts * format.getChannelCount() .

Paramètres
format l' AudioFormat requis par le modèle TFLite. Il définit le nombre de canaux et la fréquence d'échantillonnage.
nombres d'échantillons le nombre d'échantillons à introduire dans le modèle

création TensorAudio statique publique (format TensorAudio.TensorAudioFormat , int sampleCounts)

Crée une instance AudioRecord avec un tampon en anneau dont la taille est sampleCounts * format.getChannels() .

Paramètres
format le TensorAudio.TensorAudioFormat attendu des données audio chargées dans cette classe.
nombres d'échantillons le nombre d'échantillons à introduire dans le modèle

public TensorAudio.TensorAudioFormat getFormat ()

public TensorBuffer getTensorBuffer ()

Renvoie un TensorBuffer flottant contenant tous les échantillons audio disponibles dans AudioFormat.ENCODING_PCM_FLOAT , c'est-à-dire que les valeurs sont comprises entre [-1, 1].

charge vide publique (short[] src)

Convertit les échantillons audio d'entrée src en ENCODING_PCM_FLOAT, puis les stocke dans le tampon en anneau.

Paramètres
src saisissez des échantillons audio dans AudioFormat.ENCODING_PCM_16BIT . Pour une entrée multicanal, le tableau est entrelacé.

charge vide publique (float[] src, int offsetInFloat, int sizeInFloat)

Stocke les échantillons audio d’entrée src dans le tampon en anneau.

Paramètres
src saisissez des échantillons audio dans AudioFormat.ENCODING_PCM_FLOAT . Pour une entrée multicanal, le tableau est entrelacé.
offsetInFloat position de départ dans le tableau src
tailleDansFloat le nombre de valeurs flottantes à copier
Jetés
Exception d'argument illégal pour un format audio incompatible ou une taille d'entrée incorrecte

charge vide publique (short[] src, int offsetInShort, int sizeInShort)

Convertit les échantillons audio d'entrée src en ENCODING_PCM_FLOAT, puis les stocke dans le tampon en anneau.

Paramètres
src saisissez des échantillons audio dans AudioFormat.ENCODING_PCM_16BIT . Pour une entrée multicanal, le tableau est entrelacé.
offsetInShort position de départ dans le tableau src
tailleEnCourt le nombre de valeurs courtes à copier
Jetés
Exception d'argument illégal si le tableau source ne peut pas être copié

chargement int public (enregistrement AudioRecord)

Charge les dernières données de l' AudioRecord de manière non bloquante. Ne prend en charge que ENCODING_PCM_16BIT et ENCODING_PCM_FLOAT.

Paramètres
enregistrer une instance de AudioRecord
Retour
  • nombre de valeurs audio capturées dont la taille est channelCount * sampleCount . S'il n'y avait aucune nouvelle donnée dans l'AudioRecord ou si une erreur s'est produite, cette méthode renverra 0.
Jetés
Exception d'argument illégal pour un format d'encodage audio non pris en charge
IllegalStateException si la lecture depuis AudioRecord a échoué

charge vide publique (float[] src)

Stocke les échantillons audio d’entrée src dans le tampon en anneau.

Paramètres
src saisissez des échantillons audio dans AudioFormat.ENCODING_PCM_FLOAT . Pour une entrée multicanal, le tableau est entrelacé.