tf.signal.frame
Расширяет размерность signal в фреймы размера frame_length.
tf.signal.frame(
signal,
frame_length,
frame_step,
pad_end=False,
pad_value=0,
axis=-1,
name=None
)
Использование в блокнотах
| Используется в руководствах |
|---|
Сдвигает окно размера frame_length по размерности axis signal со шагом frame_step, заменяя размерность axis на [frames, frame_length] фреймов.
Если pad_end равно True, позиции окон, которые находятся за пределами размерности axis, заполняются значениями pad_value, пока окно не пройдет полностью за пределы этой размерности. В противном случае генерируются только позиции окон, которые полностью перекрывают размерность axis.
Например:
# A batch size 3 tensor of 9152 audio samples. audio = tf.random.normal([3, 9152]) # Compute overlapping frames of length 512 with a step of 180 (frames overlap # by 332 samples). By default, only 49 frames are generated since a frame # with start position j*180 for j > 48 would overhang the end. frames = tf.signal.frame(audio, 512, 180) frames.shape.assert_is_compatible_with([3, 49, 512]) # When pad_end is enabled, the final two frames are kept (padded with zeros). frames = tf.signal.frame(audio, 512, 180, pad_end=True) frames.shape.assert_is_compatible_with([3, 51, 512])
Если размерность вдоль axis равна N, и pad_end=False, количество фреймов можно вычислить следующим образом:
num_frames = 1 + (N - frame_size) // frame_step
Если pad_end=True, количество фреймов можно вычислить следующим образом:
num_frames = -(-N // frame_step) # ceiling division
| Аргументы | |
|---|---|
signal | [..., samples, ...] Tensor. Ранг и размеры могут быть неизвестны. Ранг должен быть не менее 1. |
frame_length | Длина фрейма в выборках. Целое число или скаляр Tensor. |
frame_step | Размер шага фрейма в выборках. Целое число или скаляр Tensor. |
pad_end | Нужно ли заполнять конец signal значениями pad_value. |
pad_value | Необязательный скаляр Tensor для использования в местах, где входной сигнал отсутствует, если pad_end равно True. |
axis | Необязательное целое число скаляр Tensor, указывающее ось для фреймирования. По умолчанию последняя ось. Поддерживает отрицательные значения для индексации с конца. |
name | Необязательное имя операции. |
| Возвращает | |
|---|---|
Tensor фреймов с формой [..., num_frames, frame_length, ...]. |
| Возможные ошибки | |
|---|---|
ValueError | Если frame_length, frame_step, pad_value или axis не являются скалярами. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/signal/frame