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.
des échantillons dans l'encodage
de données flottantes 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é.
|
|---|