リングバッファと、入力オーディオ サンプルを準備するためのいくつかのユーティリティ関数を定義します。
保持するためのリングバッファを保持し、 生成します。クライアントは、`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 |
create(AudioData.AudioDataFormat 形式、int sampleCounts)
|
| 静的 AudioData | |
| 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> 一般公開 無効 読み込む (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 の入力オーディオ サンプル。対象
配列はインターリーブされます
|
|---|