Xác định vùng đệm vòng và một số hàm hiệu dụng để chuẩn bị mẫu âm thanh đầu vào.
Lớp này duy trì Vùng đệm chuông để lưu giữ dữ liệu âm thanh đầu vào. Ứng dụng có thể cấp dữ liệu âm thanh đầu vào thông qua phương thức "load" và truy cập vào các mẫu âm thanh tổng hợp thông qua phương thức "getTensorBuffer".
Xin lưu ý rằng lớp này chỉ có thể xử lý âm thanh đầu vào ở dạng Độ chính xác đơn (trong AudioFormat.ENCODING_PCM_16BIT
) hoặc Âm thanh ngắn (trong AudioFormat.ENCODING_PCM_FLOAT
). Bên trong, lớp này chuyển đổi và lưu trữ tất cả các mẫu âm thanh trong phương thức mã hoá Độ chính xác đơn PCM.
Cách sử dụng thông thường 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) }
Lớp lồng ghép
lớp | TensorAudio.TensorAudioFormat | Gói một vài hằng số mô tả định dạng của các mẫu âm thanh đến, cụ thể là số kênh và tốc độ lấy mẫu. |
Phương thức công khai
tĩnh TensorAudio |
create(định dạng AudioFormat, int sampleCounts)
Tạo một thực thể
TensorAudio với vùng đệm vòng có kích thước sampleCounts * format.getChannelCount() . |
tĩnh TensorAudio |
create(định dạng TensorAudio.TensorAudioFormat, int sampleCounts)
|
TensorAudio.TensorAudioFormat |
Hàm getFormat()
|
TensorBuffer |
Hàm getTensorBuffer()
Trả về một số thực
TensorBuffer có độ chính xác đơn chứa tất cả các mẫu âm thanh hiện có trong AudioFormat.ENCODING_PCM_FLOAT , tức là |
void |
load(short[] src)
Chuyển đổi các mẫu âm thanh đầu vào
src thành ENCODING_PCM_FLOAT, sau đó lưu trữ mẫu đó trong bộ đệm vòng. |
void |
load(float[] src, int offsetInFloat, int sizeInFloat)
Lưu trữ các mẫu âm thanh đầu vào
src trong vùng đệm đổ chuông. |
void |
load(short[] 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 trữ mẫu đó trong bộ đệm vòng. |
int |
load(bản ghi AudioRecord)
Tải dữ liệu mới nhất từ
AudioRecord theo cách không chặn luồng thực thi. |
void |
load(float[] src)
Lưu trữ các mẫu âm thanh đầu vào
src trong vùng đệm đổ chuông. |
Các phương thức kế thừa
Phương thức công khai
công khai tĩnh TensorAudio tạo (định dạng AudioFormat, int sampleCounts)
Tạo một thực thể TensorAudio
với vùng đệm vòng có kích thước sampleCounts
* format.getChannelCount()
.
Tham số
định dạng | AudioFormat theo yêu cầu của mẫu TFLite. Trường này xác định số lượng kênh và tốc độ lấy mẫu. |
---|---|
sampleCounts | số lượng mẫu được đưa vào mô hình |
công khai tĩnh TensorAudio tạo (định dạngTensorAudio.TensorAudioFormat, int sampleCounts)
Tạo một thực thể AudioRecord
với vùng đệm vòng có kích thước sampleCounts
* format.getChannels()
.
Tham số
định dạng | TensorAudio.TensorAudioFormat dữ liệu âm thanh dự kiến được tải vào lớp này. |
---|---|
sampleCounts | số lượng mẫu được đưa vào mô hình |
công khai TensorBuffer getTensorBuffer ()
Trả về một số thực TensorBuffer
chứa tất cả các mẫu âm thanh hiện có trong AudioFormat.ENCODING_PCM_FLOAT
, tức là các giá trị nằm trong khoảng [-1, 1].
công khai void load (short[] src)
Chuyển đổi các mẫu âm thanh đầu vào src
thành ENCODING_PCM_FLOAT, sau đó lưu trữ mẫu đó trong bộ đệm vòng.
Tham số
src | mẫu âm thanh đầu vào trong AudioFormat.ENCODING_PCM_16BIT . Đối với đầu vào đa kênh, mảng được xen kẽ.
|
---|
công khai void load (float[] src, int offsetInFloat, int sizeInFloat)
Lưu trữ các mẫu âm thanh đầu vào src
trong vùng đệm đổ chuông.
Tham số
src | mẫu âm thanh đầu vào trong 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 |
sizeInFloat | số lượng giá trị số thực cần sao chép |
Gửi
IllegalArgumentException | đối với đị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 |
---|
công khai void load (short[] 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 trữ mẫu đó trong bộ đệm vòng.
Tham số
src | mẫu âm thanh đầu vào trong 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 |
sizeInShort | số lượng giá trị ngắn cần sao chép |
Gửi
IllegalArgumentException | nếu không thể sao chép mảng nguồn |
---|
công khai int tải (bản ghi AudioRecord)
Tải dữ liệu mới nhất từ AudioRecord
theo cách không chặn luồng thực thi. Chỉ
hỗ trợ ENCODING_PCM_16BIT và ENCODING_PCM_FLOAT.
Tham số
kỷ lục | một thực thể của AudioRecord |
---|
Giá trị trả về
- số lượng giá trị âm thanh được 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, thì phương thức này sẽ trả về 0.
Gửi
IllegalArgumentException | cho định dạng mã hoá âm thanh không được hỗ trợ |
---|---|
IllegalStateException | nếu đọc từ AudioRecord không thành công |
công khai void load (float[] src)
Lưu trữ các mẫu âm thanh đầu vào src
trong vùng đệm đổ chuông.
Tham số
src | mẫu âm thanh đầu vào trong AudioFormat.ENCODING_PCM_FLOAT . Đối với đầu vào đa kênh, mảng được xen kẽ.
|
---|