TensorAudio

lớp công khai TensorAudio

Xác định bộ đệm vòng và một số chức năng tiện ích để chuẩn bị mẫu âm thanh đầu vào.

Nó duy trì Bộ đệm vòng để chứa dữ liệu âm thanh đầu vào. Khách hàng có thể cung cấp dữ liệu âm thanh đầu vào thông qua phương thức `load` và truy cập các mẫu âm thanh tổng hợp thông qua phương thức `getTensorBuffer`.

Lưu ý rằng lớp này chỉ có thể xử lý âm thanh đầu vào ở dạng Float (trong AudioFormat.ENCODING_PCM_16BIT ) hoặc Short (trong AudioFormat.ENCODING_PCM_FLOAT ). Bên trong nó chuyển đổi và lưu trữ tất cả các mẫu âm thanh ở dạng mã hóa PCM Float.

Cách sử dụng điển hình trong Kotlin

   val tensor = TensorAudio.create(format, modelInputLength)
   tensor.load(newData)
   interpreter.run(tensor.getTensorBuffer(), outputBuffer);
 

Một cách sử dụng mẫu khác với AudioRecord

   val tensor = TensorAudio.create(format, modelInputLength)
   Timer().scheduleAtFixedRate(delay, period) {
     tensor.load(audioRecord)
     interpreter.run(tensor.getTensorBuffer(), outputBuffer)
   }
 

Các lớp lồng nhau

lớp học TensorAudio.TensorAudioFormat Bao bọc một số hằng số mô tả định dạng của mẫu âm thanh đến, cụ thể là số kênh và tốc độ mẫu.

Phương pháp công khai

TensorAudio tĩnh
tạo (định dạng AudioFormat, int sampleCounts)
Tạo một phiên bản TensorAudio với bộ đệm vòng có kích thước là sampleCounts * format.getChannelCount() .
TensorAudio tĩnh
tạo (định dạng TensorAudio.TensorAudioFormat , int sampleCounts)
Tạo một phiên bản AudioRecord với bộ đệm vòng có kích thước là sampleCounts * format.getChannels() .
TensorAudio.TensorAudioFormat
Bộ đệm Tensor
getTensorBuffer ()
Trả về một TensorBuffer float chứa tất cả các mẫu âm thanh có sẵn trong AudioFormat.ENCODING_PCM_FLOAT tức là
trống rỗng
tải (ngắn[] src)
Chuyển đổi các mẫu âm thanh đầu vào src thành ENCODING_PCM_FLOAT, sau đó lưu nó vào bộ đệm vòng.
trống rỗng
tải (float[] src, int offsetInFloat, int sizeInFloat)
Lưu trữ các mẫu âm thanh đầu vào src trong bộ đệm vòng.
trống rỗng
tải (ngắn[] src, int offsetInShort, int sizeInShort)
Chuyển đổi các mẫu âm thanh đầu vào src thành ENCODING_PCM_FLOAT, sau đó lưu nó vào bộ đệm vòng.
int
tải (bản ghi AudioRecord)
Tải dữ liệu mới nhất từ AudioRecord theo cách không bị chặn.
trống rỗng
tải (float[] src)
Lưu trữ các mẫu âm thanh đầu vào src trong bộ đệm vòng.

Phương pháp kế thừa

Phương pháp công khai

Công khai tĩnh TensorAudio tạo (định dạng AudioFormat, int sampleCounts)

Tạo một phiên bản TensorAudio với bộ đệm vòng có kích thước là sampleCounts * format.getChannelCount() .

Thông số
định dạng AudioFormat theo yêu cầu của mô hình TFLite. Nó xác định số lượng kênh và tốc độ mẫu.
số lượng mẫu số lượng mẫu được đưa vào mô hình

Tạo TensorAudio tĩnh công khai (định dạng TensorAudio.TensorAudioFormat , int sampleCounts)

Tạo một phiên bản AudioRecord với bộ đệm vòng có kích thước là sampleCounts * format.getChannels() .

Thông số
định dạng TensorAudio.TensorAudioFormat dự kiến ​​của dữ liệu âm thanh được tải vào lớp này.
số lượng mẫu số lượng mẫu được đưa vào mô hình

công khai TensorAudio.TensorAudioFormat getFormat ()

công khai TensorBuffer getTensorBuffer ()

Trả về một TensorBuffer float chứa tất cả các mẫu âm thanh có sẵn trong AudioFormat.ENCODING_PCM_FLOAT tức là các giá trị nằm trong phạm vi [-1, 1].

tải khoảng trống công khai (ngắn[] src)

Chuyển đổi các mẫu âm thanh đầu vào src thành ENCODING_PCM_FLOAT, sau đó lưu nó vào bộ đệm vòng.

Thông số
src nhập mẫu âm thanh vào AudioFormat.ENCODING_PCM_16BIT . Đối với đầu vào đa kênh, mảng được xen kẽ.

tải khoảng trống công khai (float[] src, int offsetInFloat, int sizeInFloat)

Lưu trữ các mẫu âm thanh đầu vào src trong bộ đệm vòng.

Thông số
src nhập mẫu âm thanh vào AudioFormat.ENCODING_PCM_FLOAT . Đối với đầu vào đa kênh, mảng được xen kẽ.
offsetInFloat vị trí bắt đầu trong mảng src
kích thướcTrongFloat số lượng giá trị float được sao chép
Ném
Ngoại lệ Đối số bất hợp pháp dành cho định dạng âm thanh không tương thích hoặc kích thước đầu vào không chính xác

tải khoảng trống công khai (ngắn [] src, int offsetInShort, int sizeInShort)

Chuyển đổi các mẫu âm thanh đầu vào src thành ENCODING_PCM_FLOAT, sau đó lưu nó vào bộ đệm vòng.

Thông số
src nhập mẫu âm thanh vào AudioFormat.ENCODING_PCM_16BIT . Đối với đầu vào đa kênh, mảng được xen kẽ.
offsetInShort vị trí bắt đầu trong mảng src
kích thướcInShort số lượng giá trị ngắn được sao chép
Ném
Ngoại lệ Đối số bất hợp pháp nếu mảng nguồn không thể sao chép được

tải int công khai (bản ghi AudioRecord)

Tải dữ liệu mới nhất từ AudioRecord theo cách không bị chặn. Chỉ hỗ trợ ENCODING_PCM_16BIT và ENCODING_PCM_FLOAT.

Thông số
ghi một phiên bản của AudioRecord
Trả lại
  • số lượng giá trị âm thanh đã ghi có kích thước channelCount * sampleCount . Nếu không có dữ liệu mới trong AudioRecord hoặc xảy ra lỗi, phương thức này sẽ trả về 0.
Ném
Ngoại lệ Đối số bất hợp pháp cho định dạng mã hóa âm thanh không được hỗ trợ
Ngoại lệ nhà nước bất hợp pháp nếu việc đọc từ AudioRecord không thành công

tải khoảng trống công khai (float[] src)

Lưu trữ các mẫu âm thanh đầu vào src trong bộ đệm vòng.

Thông số
src nhập mẫu âm thanh vào AudioFormat.ENCODING_PCM_FLOAT . Đối với đầu vào đa kênh, mảng được xen kẽ.