TensorAudio

パブリック クラスTensorAudio

入力オーディオ サンプルを準備するためのリング バッファーといくつかのユーティリティ関数を定義します。

入力オーディオ データを保持するリング バッファーを維持します。クライアントは、「load」メソッドを介して入力オーディオ データをフィードし、「getTensorBuffer」メソッドを介して集約されたオーディオ サンプルにアクセスできます。

このクラスは、Float ( AudioFormat.ENCODING_PCM_16BIT内) または Short ( AudioFormat.ENCODING_PCM_FLOAT内) の入力オーディオのみを処理できることに注意してください。内部的には、すべてのオーディオ サンプルを PCM Float エンコーディングに変換して保存します。

Kotlin

   val tensor = TensorAudio.create(format, modelInputLength)
   tensor.load(newData)
   interpreter.run(tensor.getTensorBuffer(), outputBuffer);
 
での一般的な使用法

AudioRecord

   val tensor = TensorAudio.create(format, modelInputLength)
   Timer().scheduleAtFixedRate(delay, period) {
     tensor.load(audioRecord)
     interpreter.run(tensor.getTensorBuffer(), outputBuffer)
   }
 
を使用した別のサンプル使用法

ネストされたクラス

クラスTensorAudio.TensorAudioFormat受信オーディオ サンプルの形式、つまりチャネル数とサンプル レートを記述するいくつかの定数をラップします。

パブリックメソッド

静的TensorAudio
create (AudioFormat形式、intsampleCounts)
サイズがsampleCounts * format.getChannelCount()のリング バッファを持つTensorAudioインスタンスを作成します。
静的TensorAudio
create ( TensorAudio.TensorAudioFormat形式、 int sampleCounts)
サイズがsampleCounts * format.getChannels()のリング バッファを持つAudioRecordインスタンスを作成します。
TensorAudio.TensorAudioFormat
テンソルバッファ
getTensorBuffer ()
AudioFormat.ENCODING_PCM_FLOAT内の利用可能なすべてのオーディオ サンプルを保持する float TensorBufferを返します。
空所
ロード(short[] ソース)
入力オーディオ サンプルsrc ENCODING_PCM_FLOAT に変換し、リング バッファーに格納します。
空所
ロード(float[] src、int offsetInFloat、int sizeInFloat)
入力オーディオ サンプルsrcリング バッファーに保存します。
空所
ロード(short[] src、int offsetInShort、int sizeInShort)
入力オーディオ サンプルsrc ENCODING_PCM_FLOAT に変換し、リング バッファーに格納します。
整数
ロード(AudioRecord レコード)
ノンブロッキングな方法でAudioRecordから最新のデータをロードします。
空所
ロード(float[] src)
入力オーディオ サンプルsrcリング バッファーに保存します。

継承されたメソッド

パブリックメソッド

public static TensorAudio create (AudioFormat 形式、intsampleCounts)

サイズがsampleCounts * format.getChannelCount()のリング バッファを持つTensorAudioインスタンスを作成します。

パラメーター
フォーマットTFLite モデルに必要なAudioFormat 。チャンネル数とサンプルレートを定義します。
サンプル数モデルに供給されるサンプルの数

public static TensorAudio create ( TensorAudio.TensorAudioFormat形式、 int sampleCounts)

サイズがsampleCounts * format.getChannels()のリング バッファを持つAudioRecordインスタンスを作成します。

パラメーター
フォーマットこのクラスにロードされるオーディオ データの予期されるTensorAudio.TensorAudioFormat
サンプル数モデルに供給されるサンプルの数

public TensorAudio.TensorAudioFormat getFormat ()

public TensorBuffer getTensorBuffer ()

AudioFormat.ENCODING_PCM_FLOAT内の使用可能なすべてのオーディオ サンプルを保持する float TensorBufferを返します。つまり、値は [-1, 1] の範囲内にあります。

public voidロード(short[] src)

入力オーディオ サンプルsrc ENCODING_PCM_FLOAT に変換し、リング バッファーに格納します。

パラメーター
送信元AudioFormat.ENCODING_PCM_16BITでオーディオ サンプルを入力します。マルチチャネル入力の場合、配列はインターリーブされます。

パブリック voidロード(float[] src、int offsetInFloat、int sizeInFloat)

入力オーディオ サンプルsrcリング バッファーに保存します。

パラメーター
送信元AudioFormat.ENCODING_PCM_FLOATにオーディオ サンプルを入力します。マルチチャネル入力の場合、配列はインターリーブされます。
オフセットInFloat src配列内の開始位置
サイズインフロートコピーされる浮動小数点値の数
投げる
IllegalArgumentException互換性のないオーディオ形式または間違った入力サイズの場合

public void load (short[] src、int offsetInShort、int sizeInShort)

入力オーディオ サンプルsrc ENCODING_PCM_FLOAT に変換し、リング バッファーに格納します。

パラメーター
送信元AudioFormat.ENCODING_PCM_16BITでオーディオ サンプルを入力します。マルチチャネル入力の場合、配列はインターリーブされます。
オフセット短いsrc 配列内の開始位置
サイズ短めコピーされる short 値の数
投げる
IllegalArgumentExceptionソース配列をコピーできない場合

public intロード(AudioRecord レコード)

ノンブロッキングな方法でAudioRecordから最新のデータをロードします。 ENCODING_PCM_16BIT と ENCODING_PCM_FLOAT のみをサポートします。

パラメーター
記録AudioRecordのインスタンス
戻り値
  • サイズがchannelCount * sampleCountであるキャプチャされたオーディオ値の数。 AudioRecord に新しいデータがない場合、またはエラーが発生した場合、このメソッドは 0 を返します。
投げる
IllegalArgumentExceptionサポートされていないオーディオエンコード形式の場合
IllegalStateException AudioRecord からの読み取りに失敗した場合

パブリック voidロード(float[] src)

入力オーディオ サンプルsrcリング バッファーに保存します。

パラメーター
送信元AudioFormat.ENCODING_PCM_FLOATにオーディオ サンプルを入力します。マルチチャネル入力の場合、配列はインターリーブされます。