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 tensor = TensorAudio.create(format, modelInputLength) tensor.load(newData) interpreter.run(tensor.getTensorBuffer(), outputBuffer);
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 le taux d'échantillonnage. |
Méthodes publiques
statique TensorAudio |
create(format AudioFormat, nombre d'échantillons entiers)
Crée une instance
TensorAudio avec un tampon circulaire d'une taille de sampleCounts *
format.getChannelCount() |
statique TensorAudio |
create(format TensorAudio.TensorAudioFormat, int sampleCounts)
Crée une instance
AudioRecord avec un tampon circulaire dont la taille est de sampleCounts * format.getChannels() . |
TensorAudio.TensorAudioFormat | |
TensorBuffer |
getTensorBuffer()
Renvoie une valeur flottante
TensorBuffer contenant tous les échantillons audio disponibles dans AudioFormat.ENCODING_PCM_FLOAT (par exemple, |
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 TensorAudio créer (format AudioFormat, nombre entier d'échantillons)
Crée une instance TensorAudio
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 statique TensorAudio créer (format TensorAudio.TensorAudioFormat, nombre d'échantillons int)
Crée une instance AudioRecord
avec un tampon circulaire dont la taille est de sampleCounts
* format.getChannels()
.
Paramètres
format | la TensorAudio.TensorAudioFormat attendue de données audio chargées dans cette classe. |
---|---|
sampleCounts | Le nombre d'échantillons à transmettre au modèle |
<ph type="x-smartling-placeholder"></ph> public TensorBuffer getTensorBuffer ()
Renvoie une valeur flottante TensorBuffer
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 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 |
---|