TensorAudio

classe pública TensorAudio

Define um buffer de anel e algumas funções utilitárias para preparar as amostras de áudio de entrada.

Ele mantém um buffer de toque para dados de entrada de áudio. Os clientes podem alimentar os dados de áudio de entrada pelos métodos `load` e acessar o agregadas de áudio pelo método "getTensorBuffer".

Essa classe só pode processar áudio de entrada em Float (em AudioFormat.ENCODING_PCM_16BIT) ou Short (em AudioFormat.ENCODING_PCM_FLOAT). Internamente, ele converte e armazena todo o áudio em codificação PCM Float.

Uso típico em Kotlin

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

Outro exemplo de uso com AudioRecord

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

Classes aninhadas

classe TensorAudio.TensorAudioFormat Agrupa algumas constantes que descrevem o formato das amostras de áudio recebidas, ou seja, o número de canais e a taxa de amostragem.

Métodos públicos

estática TensorAudio
create(formato AudioFormat, int sampleCounts)
Cria uma instância TensorAudio com um buffer de anel com tamanho de sampleCounts * format.getChannelCount()
estática TensorAudio
create(formato TensorAudio.TensorAudioFormat, sampleCounts int)
Cria uma instância AudioRecord com um buffer de anel com tamanho de sampleCounts * format.getChannels().
TensorAudio.TensorAudioFormat
TensorBuffer
getTensorBuffer()
Retorna um TensorBuffer flutuante com todas as amostras de áudio disponíveis em AudioFormat.ENCODING_PCM_FLOAT, ou seja,
void
load(short[] src)
Converte as amostras de áudio de entrada src em ENCODING_PCM_FLOAT e as armazena no anel tempo extra.
void
load(float[] src, int offsetInFloat, int sizeInFloat)
Armazena as amostras de áudio de entrada src no buffer de anel.
void
load(short[] src, int offsetInShort, int sizeInShort)
Converte as amostras de áudio de entrada src em ENCODING_PCM_FLOAT e as armazena no anel tempo extra.
int
load(registro de AudioRecord)
Carrega os dados mais recentes do AudioRecord sem bloqueio.
void
load(float[] src)
Armazena as amostras de áudio de entrada src no buffer de anel.

Métodos herdados

booleano
equals(Objeto arg0)
final. Classe<?>
getClass()
int
hashCode()
final. anular
notify()
final. anular
notifyAll()
String
toString()
final. anular
wait(long arg0, int arg1)
final. anular
wait(long arg0)
final. anular
wait()

Métodos públicos

públicas estática TensorAudio criar (formato AudioFormat, sampleCounts int)

Cria uma instância TensorAudio com um buffer de anel com tamanho de sampleCounts * format.getChannelCount()

Parâmetros
formato o AudioFormat exigido pelo modelo do TFLite. Ele define o número de canais e a taxa de amostragem.
sampleCounts o número de amostras a serem fornecidas ao modelo

públicas estática TensorAudio criar (formato TensorAudio.TensorAudioFormat, sampleCounts int)

Cria uma instância AudioRecord com um buffer de anel com tamanho de sampleCounts * format.getChannels().

Parâmetros
formato o TensorAudio.TensorAudioFormat esperado de dados de áudio carregados nessa classe.
sampleCounts o número de amostras a serem fornecidas ao modelo

públicas TensorAudio.TensorAudioFormat getFormat ()

públicas TensorBuffer getTensorBuffer ()

Retorna um TensorBuffer flutuante com todas as amostras de áudio disponíveis em AudioFormat.ENCODING_PCM_FLOAT, ou seja, os valores estão no intervalo de [-1, 1].

públicas anular carregar (curto[] src)

Converte as amostras de áudio de entrada src em ENCODING_PCM_FLOAT e as armazena no anel tempo extra.

Parâmetros
src de entrada de amostras de áudio em AudioFormat.ENCODING_PCM_16BIT. Para em vários canais, a matriz é intercalada.

públicas anular carregar (float[] src, int offsetInFloat, int sizeInFloat)

Armazena as amostras de áudio de entrada src no buffer de anel.

Parâmetros
src de entrada de amostras de áudio em AudioFormat.ENCODING_PCM_FLOAT. Para em vários canais, a matriz é intercalada.
offsetInFloat Posição inicial na matriz src
sizeInFloat o número de valores flutuantes a serem copiados
Gera
IllegalArgumentException formato de áudio incompatível ou tamanho de entrada incorreto

públicas anular carregar (short[] src, int offsetInShort, int sizeInShort)

Converte as amostras de áudio de entrada src em ENCODING_PCM_FLOAT e as armazena no anel tempo extra.

Parâmetros
src de entrada de amostras de áudio em AudioFormat.ENCODING_PCM_16BIT. Para em vários canais, a matriz é intercalada.
offsetInShort Posição inicial na matriz src
sizeInShort o número de valores curtos a serem copiados
Gera
IllegalArgumentException quando não é possível copiar a matriz de origem

públicas int. carregar (gravação de áudio)

Carrega os dados mais recentes do AudioRecord sem bloqueio. Somente com suporte para ENCODING_PCM_16BIT e ENCODING_PCM_FLOAT.

Parâmetros
registro uma instância de AudioRecord
Retorna
  • número de valores de áudio capturados com tamanho de channelCount * sampleCount. Se não houver novos dados no AudioRecord ou se ocorrer um erro, esse método retornará 0.
Gera
IllegalArgumentException para um formato de codificação de áudio incompatível
IllegalStateException se a leitura do AudioRecord falhar

públicas anular carregar (float[] src)

Armazena as amostras de áudio de entrada src no buffer de anel.

Parâmetros
src de entrada de amostras de áudio em AudioFormat.ENCODING_PCM_FLOAT. Para em vários canais, a matriz é intercalada.