tf.signal.frame
Stay organized with collections
Save and categorize content based on your preferences.
Expands signal
's axis
dimension into frames of frame_length
.
tf.signal.frame(
signal, frame_length, frame_step, pad_end=False, pad_value=0, axis=-1, name=None
)
Slides a window of size frame_length
over signal
's axis
dimension
with a stride of frame_step
, replacing the axis
dimension with
[frames, frame_length]
frames.
If pad_end
is True, window positions that are past the end of the axis
dimension are padded with pad_value
until the window moves fully past the
end of the dimension. Otherwise, only window positions that fully overlap the
axis
dimension are produced.
For example:
# 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 50 frames are generated since the last
# 152 samples do not form a full frame.
frames = tf.signal.frame(audio, 512, 180)
frames.shape.assert_is_compatible_with([3, 50, 512])
# When pad_end is enabled, the final frame is kept (padded with zeros).
frames = tf.signal.frame(audio, 512, 180, pad_end=True)
frames.shape.assert_is_compatible_with([3, 51, 512])
Args |
signal
|
A [..., samples, ...] Tensor . The rank and dimensions
may be unknown. Rank must be at least 1.
|
frame_length
|
The frame length in samples. An integer or scalar Tensor .
|
frame_step
|
The frame hop size in samples. An integer or scalar Tensor .
|
pad_end
|
Whether to pad the end of signal with pad_value .
|
pad_value
|
An optional scalar Tensor to use where the input signal
does not exist when pad_end is True.
|
axis
|
A scalar integer Tensor indicating the axis to frame. Defaults to
the last axis. Supports negative values for indexing from the end.
|
name
|
An optional name for the operation.
|
Returns |
A Tensor of frames with shape [..., frames, frame_length, ...] .
|
Raises |
ValueError
|
If frame_length , frame_step , pad_value , or axis are not
scalar.
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2020-10-01 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2020-10-01 UTC."],[],[]]