AudioData

パブリック クラス AudioData

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

保持するためのリングバッファを保持し、 生成します。クライアントは、`load` メソッドを介して入力音声データをフィードし、 集約された音声サンプルを `getTensorBuffer` メソッドで取得します。

このクラスは、浮動小数点数(AudioFormat.ENCODING_PCM_16BIT)またはショート動画(AudioFormat.ENCODING_PCM_FLOAT 内)でのみ入力音声を処理できます。すべての音声を内部で変換して保存する PCM 浮動小数点エンコードを使用した例です。

Kotlin での一般的な使用例

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

AudioRecord を使用した別の使用例

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

ネストされたクラス

クラス AudioData.AudioDataFormat 受信オーディオ サンプルの形式を記述するいくつかの定数、つまり サンプリングします。

パブリック メソッド

静的 AudioData
createAudioData.AudioDataFormat 形式、int sampleCounts)
サイズが sampleCounts * format.getNumOfChannels() のリングバッファを持つ AudioRecord インスタンスを作成します。
静的 AudioData
create(AudioFormat 形式、int sampleCounts)
サイズが sampleCounts * のリングバッファを持つ AudioData インスタンスを作成します。 format.getChannelCount()
float[]
getBuffer()
AudioFormat.ENCODING_PCM_FLOAT で使用可能なすべてのオーディオ サンプルを保持する浮動小数点配列を返します。つまり、
整数
AudioData.AudioDataFormat
無効
load(short[] src)
入力音声サンプル src を ENCODING_PCM_FLOAT に変換してリングに格納します 使用します。
無効
load(float[] src, int offsetInFloat, int sizeInFloat)
入力オーディオ サンプル src をリングバッファに格納します。
無効
load(short[] src, int offsetInShort, int sizeInShort)
入力音声サンプル src を ENCODING_PCM_FLOAT に変換してリングに格納します 使用します。
整数
load(AudioRecord record)
最新のデータを AudioRecord から非ブロック方式で読み込みます。
無効
load(float[] src)
入力オーディオ サンプル src をリングバッファに格納します。

継承されるメソッド

パブリック メソッド

<ph type="x-smartling-placeholder"></ph> 一般公開 静的 AudioData をご覧ください。 作成 AudioData.AudioDataFormat 形式、int sampleCounts)

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

パラメータ
形式 このクラスに読み込まれた音声データの想定される AudioData.AudioDataFormat
sampleCounts サンプル数です。

<ph type="x-smartling-placeholder"></ph> 一般公開 静的 AudioData をご覧ください。 作成 (AudioFormat 形式、int sampleCounts)

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

パラメータ
形式 TFLite モデルに必要な AudioFormat。定義 チャンネル数とサンプルレートを指定します。
sampleCounts モデルにフィードするサンプルの数

<ph type="x-smartling-placeholder"></ph> 一般公開 float[] getBuffer ()

AudioFormat.ENCODING_PCM_FLOAT で利用可能なすべてのオーディオ サンプルを保持する浮動小数点配列を返します。つまり、値は [-1, 1] の範囲内となります。

<ph type="x-smartling-placeholder"></ph> 一般公開 整数 getBufferLength ()

<ph type="x-smartling-placeholder"></ph> 一般公開 AudioData.AudioDataFormat をご覧ください。 getFormat ()

<ph type="x-smartling-placeholder"></ph> 一般公開 無効 読み込む (short[] src)

入力音声サンプル src を ENCODING_PCM_FLOAT に変換してリングに格納します 使用します。

パラメータ
src AudioFormat.ENCODING_PCM_16BIT の入力オーディオ サンプル。対象 配列はインターリーブされます

<ph type="x-smartling-placeholder"></ph> 一般公開 無効 読み込む (float[] src, int offsetInFloat, int sizeInFloat)

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

パラメータ
src AudioFormat.ENCODING_PCM_FLOAT の入力オーディオ サンプル。対象 配列はインターリーブされます
offsetInFloat src 配列内の開始位置
sizeInFloat コピーする浮動小数点値の数
例外
IllegalArgumentException 互換性のない音声形式または入力サイズが正しくない

<ph type="x-smartling-placeholder"></ph> 一般公開 無効 読み込む (short[] src, int offsetInShort, int sizeInShort)

入力音声サンプル src を ENCODING_PCM_FLOAT に変換してリングに格納します 使用します。

パラメータ
src AudioFormat.ENCODING_PCM_16BIT の入力オーディオ サンプル。対象 配列はインターリーブされます
offsetInShort src 配列内の開始位置
sizeInShort コピーする短い値の数
例外
IllegalArgumentException コピー元の配列をコピーできない場合

<ph type="x-smartling-placeholder"></ph> 一般公開 整数 読み込む (AudioRecord レコード)

最新のデータを AudioRecord から非ブロック方式で読み込みます。単独 ENCODING_PCM_16BIT と ENCODING_PCM_FLOAT をサポートする。

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

<ph type="x-smartling-placeholder"></ph> 一般公開 無効 読み込む (float[] src)

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

パラメータ
src AudioFormat.ENCODING_PCM_FLOAT の入力オーディオ サンプル。対象 配列はインターリーブされます