リングバッファと、入力オーディオ サンプルを準備するためのいくつかのユーティリティ関数を定義します。
保持するためのリングバッファを保持し、 生成します。クライアントは、`load` メソッドを介して入力音声データをフィードし、 集約された音声サンプルを `getTensorBuffer` メソッドで取得します。
このクラスは、浮動小数点数(AudioFormat.ENCODING_PCM_16BIT)またはショート動画(AudioFormat.ENCODING_PCM_FLOAT 内)でのみ入力音声を処理できます。すべての音声を内部で変換して保存する
PCM 浮動小数点エンコードを使用した例です。
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 形式、int sampleCounts)
|
| 静的 TensorAudio |
create(TensorAudio.TensorAudioFormat 形式、int sampleCounts)
|
| TensorAudio.TensorAudioFormat | |
| TensorBuffer |
getTensorBuffer()
AudioFormat.ENCODING_PCM_FLOAT で使用可能なすべてのオーディオ サンプルを保持する浮動小数点数 TensorBuffer を返します。つまり、 |
| 無効 |
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> 一般公開 静的 TensorAudio をご覧ください。 作成 (AudioFormat 形式、int sampleCounts)
サイズが sampleCounts * のリングバッファを持つ TensorAudio インスタンスを作成します。
format.getChannelCount()。
パラメータ
| 形式 | TFLite モデルに必要な AudioFormat。定義
チャンネル数とサンプルレートを指定します。 |
|---|---|
| sampleCounts | モデルにフィードするサンプルの数 |
<ph type="x-smartling-placeholder"></ph> 一般公開 静的 TensorAudio をご覧ください。 作成 (TensorAudio.TensorAudioFormat 形式、int sampleCounts)
サイズが sampleCounts * format.getChannels() のリングバッファを持つ AudioRecord インスタンスを作成します。
パラメータ
| 形式 | このクラスに読み込まれる音声データの想定される TensorAudio.TensorAudioFormat。 |
|---|---|
| sampleCounts | モデルにフィードするサンプルの数 |
<ph type="x-smartling-placeholder"></ph> 一般公開 TensorBuffer をご覧ください。 getTensorBuffer ()
AudioFormat.ENCODING_PCM_FLOAT で使用可能なすべてのオーディオ サンプルを保持する浮動小数点数 TensorBuffer を返します。つまり、値は [-1, 1] の範囲です。
<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 の入力オーディオ サンプル。対象
配列はインターリーブされます
|
|---|