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 兼容的清单文件中读取自动语音识别 (ASR) 数据(音频、文本)。

清单文件示例

{
  "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 字段将生成一个空字符串作为文本。

警告

尚未实现对 durationoffset 字段的处理。当前的实现始终读取整个音频文件。

此读取器生成 1 到 3 个输出

  • 解码后的音频数据:float,shape=(audio_length,)

  • (可选,如果 read_sample_rate=True)音频采样率:float,shape=(1,)

  • (可选,如果 read_text=True)转录文本作为空终止字符串:uint8,shape=(text_len + 1,)

  • (可选,如果 read_idxs=True)清单条目的索引: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) –

    输出数据类型。

    支持的类型:INT16INT32FLOAT

  • initial_fill (int, 可选, 默认 = 1024) –

    用于洗牌的缓冲区大小。

    如果 random_shuffle 为 False,则忽略此参数。

  • lazy_init (bool, 可选, 默认 = False) – 仅在第一次运行时(而不是在构造函数中)解析和准备数据集元数据。

  • manifest_filepaths (strlist of str) – NeMo 兼容的清单文件路径列表。

  • 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) –

    是否将样本索引作为单独的输出输出,因为它们出现在清单文件中

    作为单独的输出

  • 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,则读取器在每个 epoch 后洗牌整个数据集

  • skip_cached_images (bool, 可选, 默认 = False) –

    如果设置为 True,则当样本在解码器缓存中时,将跳过加载数据。

    在这种情况下,加载器的输出将为空。

  • stick_to_shard (bool, 可选, 默认 = False) –

    确定读取器是否应坚持数据分片,而不是遍历整个数据集。

    如果使用解码器缓存,它会显着减少要缓存的数据量,但可能会影响训练的准确性。

  • tensor_init_bytes (int, 可选, 默认 = 1048576) – 每个图像要分配多少内存的提示。