Definiert einen Ringpuffer und einige Dienstfunktionen zum Vorbereiten der Audio-Samples.
Die Funktion unterhält einen Ring Buffer, Audioeingabedaten. Clients konnten Eingabeaudiodaten über „load“-Methoden einspeisen und auf die aggregierte Audiobeispiele über die Methode „getTensorBuffer“.
Beachten Sie, dass diese Klasse nur Audioeingaben als Gleitkommazahl (in AudioFormat.ENCODING_PCM_16BIT) oder Short (in AudioFormat.ENCODING_PCM_FLOAT) verarbeiten kann. Konvertiert und speichert es alle Audioinhalte,
in der PCM-Float-Codierung.
Typische Verwendung in Kotlin
val audioData = AudioData.create(format, modelInputLength) audioData.load(newData)
Eine weitere Beispielverwendung mit AudioRecord
val audioData = AudioData.create(format, modelInputLength)
Timer().scheduleAtFixedRate(delay, period) {
audioData.load(audioRecord)
}
Verschachtelte Klassen
| Klasse | AudioData.AudioDataFormat | Bindet einige Konstanten ein, die das Format der eingehenden Audio-Samples beschreiben, nämlich die Anzahl der und die Abtastrate. | |
Public Methods
| Statisch AudioData |
create(AudioData.AudioDataFormat-Format, int sampleCounts)
Erstellt eine
AudioRecord-Instanz mit einem Ringpuffer, dessen Größe sampleCounts × format.getNumOfChannels() ist. |
| Statisch AudioData | |
| float[] |
getBuffer()
Gibt ein Gleitkommazahl-Array zurück, das alle verfügbaren Audio-Samples in
AudioFormat.ENCODING_PCM_FLOAT enthält, d.h. |
| int | |
| AudioData.AudioDataFormat | |
| voidm |
load(short[] src)
Wandelt die Audio-Samples
src in ENCODING_PCM_FLOAT um und speichert sie dann im Ring
Puffer. |
| voidm |
load(float[] src, int offsetInFloat, int sizeInFloat)
Speichert die Audioeingabe-Samples
src im Ringpuffer. |
| voidm |
load(short[] src, int offsetInShort, int sizeInShort)
Wandelt die Audio-Samples
src in ENCODING_PCM_FLOAT um und speichert sie dann im Ring
Puffer. |
| int |
load(AudioRecord)
Lädt die neuesten Daten nicht blockierend aus dem
AudioRecord. |
| voidm |
load(float[] src)
Speichert die Audioeingabe-Samples
src im Ringpuffer. |
Übernommene Methoden
Public Methods
<ph type="x-smartling-placeholder"></ph> öffentlich Statisch AudioData Erstellen (AudioData.AudioDataFormat-Format, int sampleCounts)
Erstellt eine AudioRecord-Instanz mit einem Ringpuffer, dessen Größe sampleCounts × format.getNumOfChannels() ist.
Parameter
| Format | Die erwartete AudioData.AudioDataFormat an Audiodaten, die in diese Klasse geladen wurden. |
|---|---|
| sampleCounts | die Anzahl der Stichproben. |
<ph type="x-smartling-placeholder"></ph> öffentlich Statisch AudioData Erstellen (AudioFormat-Format, int sampleCounts)
Erstellt eine AudioData-Instanz mit einem Ringpuffer, dessen Größe sampleCounts* ist
format.getChannelCount()
Parameter
| Format | Das vom TFLite-Modell erforderliche AudioFormat. Sie definiert
die Anzahl der Kanäle und die Abtastrate. |
|---|---|
| sampleCounts | Anzahl der Stichproben, die in das Modell eingegeben werden sollen |
<ph type="x-smartling-placeholder"></ph> öffentlich float[] getBuffer ()
Gibt ein Gleitkommazahl-Array zurück, das alle verfügbaren Audio-Samples in AudioFormat.ENCODING_PCM_FLOAT enthält, d.h. Werte im Bereich von [-1, 1].
<ph type="x-smartling-placeholder"></ph> öffentlich Ganzzahl getBufferLength ()
<ph type="x-smartling-placeholder"></ph> öffentlich voidm laden (short[] src)
Wandelt die Audio-Samples src in ENCODING_PCM_FLOAT um und speichert sie dann im Ring
Puffer.
Parameter
| src | Audio-Samples in AudioFormat.ENCODING_PCM_16BIT eingeben. Für
Multi-Channel-Eingabe, ist das Array verschränkt.
|
|---|
<ph type="x-smartling-placeholder"></ph> öffentlich voidm laden (float[] src, int offsetInFloat, int sizeInFloat)
Speichert die Audioeingabe-Samples src im Ringpuffer.
Parameter
| src | Audio-Samples in AudioFormat.ENCODING_PCM_FLOAT eingeben. Für
Multi-Channel-Eingabe, ist das Array verschränkt. |
|---|---|
| offsetInFloat | Startposition im Array src |
| sizeInFloat | Anzahl der zu kopierenden Gleitkommawerte |
Löst aus
| IllegalArgumentException | für inkompatibles Audioformat oder falsche Eingabegröße |
|---|
<ph type="x-smartling-placeholder"></ph> öffentlich voidm laden (short[] src, int offsetInShort, int sizeInShort)
Wandelt die Audio-Samples src in ENCODING_PCM_FLOAT um und speichert sie dann im Ring
Puffer.
Parameter
| src | Audio-Samples in AudioFormat.ENCODING_PCM_16BIT eingeben. Für
Multi-Channel-Eingabe, ist das Array verschränkt. |
|---|---|
| offsetInShort | Startposition im src-Array |
| sizeInShort | Anzahl der Kurzwerte, die kopiert werden sollen |
Löst aus
| IllegalArgumentException | Quellarray kann nicht kopiert werden |
|---|
<ph type="x-smartling-placeholder"></ph> öffentlich Ganzzahl laden (Audioeintrag)
Lädt die neuesten Daten nicht blockierend aus dem AudioRecord. Nur
ENCODING_PCM_16BIT und ENCODING_PCM_FLOAT unterstützt.
Parameter
| record | eine Instanz von AudioRecord |
|---|
Gibt Folgendes zurück:
- Anzahl der erfassten Audiowerte mit einer Größe von
channelCount * sampleCount. Wenn keine neuen Daten im AudioRecord vorhanden sind oder ein Fehler aufgetreten ist, gibt diese Methode 0 zurück.
Löst aus
| IllegalArgumentException | für nicht unterstütztes Audiocodierungsformat |
|---|---|
| IllegalStateException | wenn Fehler beim Lesen von AudioRecord |
<ph type="x-smartling-placeholder"></ph> öffentlich voidm laden (float[] src)
Speichert die Audioeingabe-Samples src im Ringpuffer.
Parameter
| src | Audio-Samples in AudioFormat.ENCODING_PCM_FLOAT eingeben. Für
Multi-Channel-Eingabe, ist das Array verschränkt.
|
|---|