nvidia.dali.fn.readers.nemo_asr#
- nvidia.dali.fn.readers.nemo_asr(*, bytes_per_sample_hint=[0], dont_use_mmap=False, downmix=True, dtype=DALIDataType.FLOAT, initial_fill=1024, lazy_init=False, manifest_filepaths, max_duration=0.0, min_duration=0.0, num_shards=1, pad_last_batch=False, prefetch_queue_depth=1, preserve=False, quality=50.0, random_shuffle=False, read_ahead=False, read_idxs=False, read_sample_rate=True, read_text=True, sample_rate=-1.0, seed=-1, shard_id=0, shuffle_after_epoch=False, skip_cached_images=False, stick_to_shard=False, tensor_init_bytes=1048576, device=None, name=None)#
从 NVIDIA NeMo 兼容的 manifest 读取自动语音识别 (ASR) 数据(音频、文本)。
示例 manifest 文件
{ "audio_filepath": "path/to/audio1.wav", "duration": 3.45, "text": "this is a nemo tutorial" } { "audio_filepath": "path/to/audio1.wav", "offset": 3.45, "duration": 1.45, "text": "same audio file but using offset" } { "audio_filepath": "path/to/audio2.wav", "duration": 3.45, "text": "third transcript in this example" }
注意
只有
audio_filepath
字段是强制性的。如果未指定duration
,将使用整个音频文件。 缺少text
字段将生成一个空字符串作为文本。警告
尚未实现对
duration
和offset
字段的处理。 当前实现始终读取整个音频文件。此 reader 生成 1 到 3 个输出
解码后的音频数据:float,
shape=(audio_length,)
(可选,如果
read_sample_rate=True
)音频采样率:float,shape=(1,)
(可选,如果
read_text=True
)转录文本,作为空终止字符串:uint8,shape=(text_len + 1,)
(可选,如果
read_idxs=True
)manifest 条目的索引:int64,shape=(1,)
- 支持的后端
‘cpu’
- 关键字参数:
bytes_per_sample_hint¶ (int 或 list of int, 可选, 默认值 = [0]) –
输出大小提示,单位为字节每样本。
如果指定,运算符位于 GPU 或页锁定主机内存中的输出将被预先分配以容纳此大小的样本批次。
dont_use_mmap¶ (bool, 可选, 默认值 = False) –
如果设置为 True,Loader 将使用普通文件 I/O,而不是尝试在内存中映射文件。
当访问本地文件系统时,映射提供小的性能优势,但大多数网络文件系统不提供最佳性能。
downmix¶ (bool, 可选, 默认值 = True) – 如果为 True,则将所有输入通道下混合为单声道。 如果启用下混合,解码器将始终生成 1-D 输出
dtype¶ (
nvidia.dali.types.DALIDataType
, 可选, 默认值 = DALIDataType.FLOAT) –输出数据类型。
支持的类型:
INT16
,INT32
, 和FLOAT
。initial_fill¶ (int, 可选, 默认值 = 1024) –
用于洗牌的缓冲区大小。
如果
random_shuffle
为 False,则忽略此参数。lazy_init¶ (bool, 可选, 默认值 = False) – 仅在第一次运行时(而不是在构造函数中)解析和准备数据集元数据。
manifest_filepaths¶ (str 或 list of str) – NeMo 兼容 manifest 文件的路径列表。
max_duration¶ (float, 可选, 默认值 = 0.0) –
如果提供大于 0 的值,则指定音频样本的最大允许持续时间,以秒为单位。
持续时间超过此值的样本将被忽略。
min_duration¶ (float, 可选, 默认值 = 0.0) –
- 如果提供大于 0 的值,则指定最小允许持续时间,
以秒为单位,用于音频样本。
持续时间短于此值的样本将被忽略。
normalize_text¶ (bool) –
警告
参数 normalize_text 不再使用,将在未来的版本中删除。
num_shards¶ (int, 可选, 默认值 = 1) –
将数据划分为指定数量的部分(分片)。
这通常用于多 GPU 或多节点训练。
pad_last_batch¶ (bool, 可选, 默认值 = False) –
如果设置为 True,则通过重复最后一个样本来填充分片。
注意
如果各个分片之间的批次数量不同,则此选项可能会导致将整个重复样本批次添加到数据集中。
prefetch_queue_depth¶ (int, 可选, 默认值 = 1) –
指定内部 Loader 要预取的批次数量。
当 pipeline 受 CPU 阶段限制时,应增加此值,以内存消耗换取与 Loader 线程更好的交错。
preserve¶ (bool, 可选, 默认值 = False) – 阻止运算符从图中删除,即使其输出未使用。
quality¶ (float, 可选, 默认值 = 50.0) –
重采样质量,0 为最低,100 为最高。
0 对应于 sinc 滤波器的 3 个瓣; 50 给出 16 个瓣,100 给出 64 个瓣。
random_shuffle¶ (bool, 可选, 默认值 = False) –
确定是否随机洗牌数据。
使用大小等于
initial_fill
的预取缓冲区来顺序读取数据,然后随机选择样本以形成批次。read_ahead¶ (bool, 可选, 默认值 = False) –
确定是否应预读访问的数据。
对于 LMDB、RecordIO 或 TFRecord 等大型文件,此参数会减慢首次访问速度,但会缩短所有后续访问的时间。
read_idxs¶ (bool, 可选, 默认值 = False) –
- 是否输出样本在 manifest 文件中出现的索引
作为单独的输出
read_sample_rate¶ (bool, 可选, 默认值 = True) – 是否输出每个样本的采样率作为单独的输出
read_text¶ (bool, 可选, 默认值 = True) – 是否输出每个样本的转录文本作为单独的输出
sample_rate¶ (float, 可选, 默认值 = -1.0) – 如果指定,则为目标采样率(以 Hz 为单位),音频将重采样到该采样率。
seed¶ (int, 可选, 默认值 = -1) – 随机种子;如果未设置,将自动分配一个。
shard_id¶ (int, 可选, 默认值 = 0) – 要读取的分片的索引。
shuffle_after_epoch¶ (bool, 可选, 默认值 = False) – 如果为 true,reader 将在每个 epoch 后洗牌整个数据集
skip_cached_images¶ (bool, 可选, 默认值 = False) –
如果设置为 True,当样本在解码器缓存中时,将跳过加载数据。
在这种情况下,加载器的输出将为空。
stick_to_shard¶ (bool, 可选, 默认值 = False) –
确定 reader 是否应坚持数据分片,而不是遍历整个数据集。
如果使用解码器缓存,它可以显著减少要缓存的数据量,但可能会影响训练的准确性。
tensor_init_bytes¶ (int, 可选, 默认值 = 1048576) – 每个图像要分配多少内存的提示。
另请参阅