AudioData

clase pública AudioData

Define un búfer de anillo y algunas funciones de utilidad para preparar los ejemplos de audio de entrada.

Conserva un Búfer de anillo para contener de entrada de datos de audio. Los clientes podían ingresar datos de audio de entrada a través de métodos `load` y acceder al muestras de audio agregadas mediante el método `getTensorBuffer`.

Ten en cuenta que esta clase solo puede controlar audio de entrada en flotante (en AudioFormat.ENCODING_PCM_16BIT) o Short (en AudioFormat.ENCODING_PCM_FLOAT). De forma interna, convierte y almacena todo el audio en la codificación PCM flotante.

Uso típico en Kotlin

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

Otro uso de muestra con AudioRecord

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

Categorías anidadas

clase AudioData.AudioDataFormat Une algunas constantes que describen el formato de las muestras de audio entrantes, en concreto, la cantidad de canales y la tasa de muestreo.

Métodos públicos

estático AudioData
create(formato AudioData.AudioDataFormat, int sampleCounts)
Crea una instancia AudioRecord con un búfer de anillo cuyo tamaño es sampleCounts * format.getNumOfChannels().
estático AudioData
create(formato AudioFormat, int sampleCounts)
Crea una instancia AudioData con un búfer de anillo cuyo tamaño es sampleCounts * format.getChannelCount()
float[]
getBuffer()
Muestra un array de número de punto flotante que contiene todas las muestras de audio disponibles en AudioFormat.ENCODING_PCM_FLOAT; es decir,
int
AudioData.AudioDataFormat
void
load(short[] src)
Convierte las muestras de audio de entrada src en ENCODING_PCM_FLOAT y, luego, las almacena en el anillo. tiempo de reserva.
void
load(float[] src, int offsetInFloat, int sizeInFloat)
Almacena las muestras de audio de entrada src en el búfer de anillo.
void
load(short[] src, int offsetInShort, int sizeInShort)
Convierte las muestras de audio de entrada src en ENCODING_PCM_FLOAT y, luego, las almacena en el anillo. tiempo de reserva.
int
load(registro de AudioRecord)
Carga los datos más recientes de AudioRecord sin bloqueos.
void
load(float[] src)
Almacena las muestras de audio de entrada src en el búfer de anillo.

Métodos heredados

Métodos públicos

público estático AudioData . crear (formato AudioData.AudioDataFormat, int sampleCounts)

Crea una instancia AudioRecord con un búfer de anillo cuyo tamaño es sampleCounts * format.getNumOfChannels().

Parámetros
formato los AudioData.AudioDataFormat esperados de datos de audio cargados en esta clase.
sampleCounts la cantidad de muestras.

público estático AudioData . crear (Formato AudioFormat, int sampleCounts)

Crea una instancia AudioData con un búfer de anillo cuyo tamaño es sampleCounts * format.getChannelCount()

Parámetros
formato el AudioFormat requerido por el modelo de TFLite. Define el número de canales y la tasa de muestreo.
sampleCounts la cantidad de muestras que se ingresarán al modelo

público float[] getBuffer ()

Muestra un array de número de punto flotante que contiene todas las muestras de audio disponibles en AudioFormat.ENCODING_PCM_FLOAT, es decir, los valores están en el rango de [-1, 1].

público número entero getBufferLength ()

público AudioData.AudioDataFormat . getFormat ()

público anular cargar (short[] src)

Convierte las muestras de audio de entrada src en ENCODING_PCM_FLOAT y, luego, las almacena en el anillo. tiempo de reserva.

Parámetros
src muestras de audio de entrada en AudioFormat.ENCODING_PCM_16BIT. Para entrada multicanal, el array se intercala.

público anular cargar (float[] src, int offsetInFloat, int sizeInFloat)

Almacena las muestras de audio de entrada src en el búfer de anillo.

Parámetros
src muestras de audio de entrada en AudioFormat.ENCODING_PCM_FLOAT. Para entrada multicanal, el array se intercala.
offsetInFloat posición inicial en el array src
sizeInFloat la cantidad de valores flotantes que se copiarán
Arroja
IllegalArgumentException. por formato de audio incompatible o tamaño de entrada incorrecto

público anular cargar (short[] src, int offsetInShort, int sizeInShort)

Convierte las muestras de audio de entrada src en ENCODING_PCM_FLOAT y, luego, las almacena en el anillo. tiempo de reserva.

Parámetros
src muestras de audio de entrada en AudioFormat.ENCODING_PCM_16BIT. Para entrada multicanal, el array se intercala.
offsetInShort posición inicial en el array src
sizeInShort la cantidad de valores cortos que se copiarán
Arroja
IllegalArgumentException. si no se puede copiar el array fuente

público número entero cargar (grabación de AudioRecord)

Carga los datos más recientes de AudioRecord sin bloqueos. Solo admite ENCODING_PCM_16BIT y ENCODING_PCM_FLOAT.

Parámetros
grabar una instancia de AudioRecord
Muestra
  • la cantidad de valores de audio capturados con un tamaño de channelCount * sampleCount. Si no había datos nuevos en AudioRecord o se produjo un error, este método devolverá 0.
Arroja
IllegalArgumentException. para un formato de codificación de audio no compatible
IllegalStateException si falló la lectura de AudioRecord

público anular cargar (float[] src)

Almacena las muestras de audio de entrada src en el búfer de anillo.

Parámetros
src muestras de audio de entrada en AudioFormat.ENCODING_PCM_FLOAT. Para entrada multicanal, el array se intercala.