TensorAudio

clase pública TensorAudio

Define un búfer en anillo y algunas funciones de utilidad para preparar las muestras de audio de entrada.

Mantiene un Ring Buffer para contener datos de audio de entrada. Los clientes pueden alimentar datos de audio de entrada mediante métodos "load" y acceder a las muestras de audio agregadas mediante el método "getTensorBuffer".

Tenga en cuenta que esta clase solo puede manejar audio de entrada en Float (en AudioFormat.ENCODING_PCM_16BIT ) o Short (en AudioFormat.ENCODING_PCM_FLOAT ). Internamente convierte y almacena todas las muestras de audio en codificación PCM Float.

Uso típico en Kotlin

   val tensor = TensorAudio.create(format, modelInputLength)
   tensor.load(newData)
   interpreter.run(tensor.getTensorBuffer(), outputBuffer);
 

Otro uso de muestra con AudioRecord

   val tensor = TensorAudio.create(format, modelInputLength)
   Timer().scheduleAtFixedRate(delay, period) {
     tensor.load(audioRecord)
     interpreter.run(tensor.getTensorBuffer(), outputBuffer)
   }
 

Clases anidadas

clase TensorAudio.TensorAudioFormat Incluye algunas constantes que describen el formato de las muestras de audio entrantes, es decir, el número de canales y la frecuencia de muestreo.

Métodos públicos

TensorAudio estático
crear (formato AudioFormat, int sampleCounts)
Crea una instancia TensorAudio con un búfer circular cuyo tamaño es sampleCounts * format.getChannelCount() .
TensorAudio estático
crear (formato TensorAudio.TensorAudioFormat , int sampleCounts)
Crea una instancia AudioRecord con un búfer circular cuyo tamaño es sampleCounts * format.getChannels() .
TensorAudio.TensorAudioFormat
TensorBuffer
obtenerTensorBuffer ()
Devuelve un TensorBuffer flotante que contiene todas las muestras de audio disponibles en AudioFormat.ENCODING_PCM_FLOAT , es decir
vacío
cargar (short[] src)
Convierte las muestras de audio de entrada src a ENCODING_PCM_FLOAT y luego las almacena en el búfer circular.
vacío
cargar (float[] src, int offsetInFloat, int sizeInFloat)
Almacena las muestras de audio de entrada src en el búfer circular.
vacío
cargar (short[] src, int offsetInShort, int sizeInShort)
Convierte las muestras de audio de entrada src a ENCODING_PCM_FLOAT y luego las almacena en el búfer circular.
En t
cargar (grabación AudioRecord)
Carga los datos más recientes de AudioRecord sin bloqueo.
vacío
cargar (flotante[] src)
Almacena las muestras de audio de entrada src en el búfer circular.

Métodos heredados

Métodos públicos

Creación pública estática de TensorAudio (formato AudioFormat, int sampleCounts)

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

Parámetros
formato el AudioFormat requerido por el modelo TFLite. Define el número de canales y la frecuencia de muestreo.
recuentos de muestras el número de muestras que se introducirán en el modelo

creación pública estática de TensorAudio (formato TensorAudio.TensorAudioFormat , int sampleCounts)

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

Parámetros
formato el TensorAudio.TensorAudioFormat esperado de datos de audio cargados en esta clase.
recuentos de muestras el número de muestras que se introducirán en el modelo

público TensorAudio.TensorAudioFormat getFormat ()

público TensorBuffer getTensorBuffer ()

Devuelve un TensorBuffer 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].

carga vacía pública (short[] src)

Convierte las muestras de audio de entrada src a ENCODING_PCM_FLOAT y luego las almacena en el búfer circular.

Parámetros
src ingrese muestras de audio en AudioFormat.ENCODING_PCM_16BIT . Para la entrada multicanal, la matriz está entrelazada.

carga vacía pública (float[] src, int offsetInFloat, int sizeInFloat)

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

Parámetros
src ingrese muestras de audio en AudioFormat.ENCODING_PCM_FLOAT . Para la entrada multicanal, la matriz está entrelazada.
compensación en flotación posición inicial en la matriz src
tamaño en flotación el número de valores flotantes que se copiarán
Lanza
Argumento de excepción ilegal por formato de audio incompatible o tamaño de entrada incorrecto

carga vacía pública (short[] src, int offsetInShort, int sizeInShort)

Convierte las muestras de audio de entrada src a ENCODING_PCM_FLOAT y luego las almacena en el búfer circular.

Parámetros
src ingrese muestras de audio en AudioFormat.ENCODING_PCM_16BIT . Para la entrada multicanal, la matriz está entrelazada.
offsetEn resumen posición inicial en la matriz src
tamañoEnCorto el número de valores cortos que se copiarán
Lanza
Argumento de excepción ilegal si la matriz de origen no se puede copiar

carga pública int (registro AudioRecord)

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

Parámetros
registro una instancia de AudioRecord
Devoluciones
  • número de valores de audio capturados cuyo tamaño es channelCount * sampleCount . Si no había datos nuevos en AudioRecord o se produjo un error, este método devolverá 0.
Lanza
Argumento de excepción ilegal para formato de codificación de audio no compatible
Excepción de estado ilegal si falla la lectura de AudioRecord

carga vacía pública (float[] src)

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

Parámetros
src ingrese muestras de audio en AudioFormat.ENCODING_PCM_FLOAT . Para la entrada multicanal, la matriz está entrelazada.