リングバッファと、入力オーディオ サンプルを準備するためのいくつかのユーティリティ関数を定義します。
保持するためのリングバッファを保持し、 生成します。クライアントは、`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 の入力オーディオ サンプル。対象
配列はインターリーブされます
|
---|