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 | |
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 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é.
|
---|