AudioData

classe publique AudioData

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

Il conserve un tampon de sonnerie pour des données audio d'entrée. Les clients peuvent transmettre des données audio d'entrée via des méthodes de chargement et accéder aux des é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 tout le contenu audio. dans l'encodage de float PCM.

Utilisation habituelle en Kotlin

   val audioData = AudioData.create(format, modelInputLength)
   audioData.load(newData)
 

Autre exemple d'utilisation avec AudioRecord

   val audioData = AudioData.create(format, modelInputLength)
   Timer().scheduleAtFixedRate(delay, period) {
     audioData.load(audioRecord)
   }
 

Classes imbriquées

classe AudioData.AudioDataFormat Encapsule quelques constantes décrivant le format des échantillons audio entrants, à savoir le nombre de canaux et le taux d'échantillonnage.

Méthodes publiques

statique AudioData
create(format AudioData.AudioDataFormat, nombre d'échantillons entiers int)
Crée une instance AudioRecord avec un tampon circulaire dont la taille est de sampleCounts * format.getNumOfChannels().
statique AudioData
create(format AudioFormat, nombre d'échantillons entiers)
Crée une instance AudioData avec un tampon circulaire d'une taille de sampleCounts * format.getChannelCount()
float[]
getBuffer()
Renvoie un tableau à virgule flottante contenant tous les échantillons audio disponibles dans AudioFormat.ENCODING_PCM_FLOAT, c'est-à-dire
int
AudioData.AudioDataFormat
vide
load(short[] src)
Convertit les échantillons audio d'entrée src en ENCODING_PCM_FLOAT, puis les stocke dans l'anneau. tampon.
vide
load(float[] src, int offsetInFloat, int sizeInFloat)
Stocke les échantillons audio d'entrée src dans le tampon circulaire.
vide
load(short[] src, int offsetInShort, int sizeInShort)
Convertit les échantillons audio d'entrée src en ENCODING_PCM_FLOAT, puis les stocke dans l'anneau. tampon.
int
load(enregistrement audio)
Charge les dernières données depuis le AudioRecord de manière non bloquante.
vide
load(float[] src)
Stocke les échantillons audio d'entrée src dans le tampon circulaire.

Méthodes héritées

Méthodes publiques

<ph type="x-smartling-placeholder"></ph> public statique AudioData créer (format AudioData.AudioDataFormat, nombre d'échantillons int)

Crée une instance AudioRecord avec un tampon circulaire dont la taille est de sampleCounts * format.getNumOfChannels().

Paramètres
format la AudioData.AudioDataFormat attendue de données audio chargées dans cette classe.
sampleCounts le nombre d'échantillons.

<ph type="x-smartling-placeholder"></ph> public statique AudioData créer (format AudioFormat, nombre entier d'échantillons)

Crée une instance AudioData avec un tampon circulaire d'une taille de sampleCounts * format.getChannelCount()

Paramètres
format Le AudioFormat requis par le modèle TFLite. Elle définit le nombre de canaux et le taux d'échantillonnage.
sampleCounts Le nombre d'échantillons à transmettre au modèle

<ph type="x-smartling-placeholder"></ph> public float[] getBuffer ()

Renvoie un tableau à virgule flottante contenant tous les échantillons audio disponibles dans AudioFormat.ENCODING_PCM_FLOAT (les valeurs sont comprises dans la plage [-1, 1]).

<ph type="x-smartling-placeholder"></ph> public entier getBufferLength ()

<ph type="x-smartling-placeholder"></ph> public AudioData.AudioDataFormat getFormat ()

<ph type="x-smartling-placeholder"></ph> public vide charger (short[] src)

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

Paramètres
src échantillons audio d'entrée dans AudioFormat.ENCODING_PCM_16BIT. Pour en entrée multicanal, le tableau est entrelacé.

<ph type="x-smartling-placeholder"></ph> public vide charger (float[] src, int offsetInFloat, int sizeInFloat)

Stocke les échantillons audio d'entrée src dans le tampon circulaire.

Paramètres
src échantillons audio d'entrée dans AudioFormat.ENCODING_PCM_FLOAT. Pour en entrée multicanal, le tableau est entrelacé.
offsetInFloat position de départ dans le tableau src
sizeInFloat le nombre de valeurs flottantes à copier
Génère
IllegalArgumentException en raison d'un format audio incompatible ou d'une taille d'entrée incorrecte

<ph type="x-smartling-placeholder"></ph> public vide charger (short[] src, int offsetInShort, int sizeInShort)

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

Paramètres
src échantillons audio d'entrée dans AudioFormat.ENCODING_PCM_16BIT. Pour en entrée multicanal, le tableau est entrelacé.
offsetInShort position de départ dans le tableau src
sizeInShort le nombre de valeurs courtes à copier
Génère
IllegalArgumentException si le tableau source ne peut pas être copié

<ph type="x-smartling-placeholder"></ph> public entier charger (Enregistrement audio)

Charge les dernières données depuis le AudioRecord de manière non bloquante. Uniquement compatible avec ENCODING_PCM_16BIT et ENCODING_PCM_FLOAT.

Paramètres
record Une instance de AudioRecord
Renvoie
  • Nombre de valeurs audio capturées dont la taille est de channelCount * sampleCount. Si qu'il n'y a pas de nouvelles données dans l'élément AudioRecord ou qu'une erreur s'est produite, cette méthode renvoie 0.
Génère
IllegalArgumentException pour un format d'encodage audio non compatible
IllegalStateException si la lecture à partir de l'enregistrement audio a échoué

<ph type="x-smartling-placeholder"></ph> public vide charger (nombre à virgule flottante[] src)

Stocke les échantillons audio d'entrée src dans le tampon circulaire.

Paramètres
src échantillons audio d'entrée dans AudioFormat.ENCODING_PCM_FLOAT. Pour en entrée multicanal, le tableau est entrelacé.