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 | getFormat () |
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 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ẽ. |
---|