"Audio" (神经网络编码器)

NetEncoder["Audio"]

表示一个编码器,将音频文件或对象转换成音频样本张量.

NetEncoder[{"Audio","param"->val,}]

表示一个编码器,具有用于预处理的特定参数.

更多信息

  • "Audio" 编码器返回信号波形. 原始信号中的所有信息都表现在波形中.
  • NetEncoder[][input] 对一个输入应用编码器,产生一个输出.
  • NetEncoder[][{input1,input2,}] 对一系列输入应用编码器,产生一系列输出.
  • 编码器的输入可以为 Audio 对象或 File[] 表达式.
  • 编码器的输出是一个大小为 n×1 的矩阵,其中 n 是预处理后音频样本的数量.
  • 在构建网络时,可通过指定 "port"->NetEncoder[] 将编码器添加到网络的输入端口上.
  • 参数
  • 支持以下通用参数:
  • "Augmentation"None是否应用增广
    "Normalization"None是否应用归一化
    "SampleRate"16000目标采样率
    "TargetLength"All目标输出长度
  • 可以为每个编码器参数指定以下设置和子选项.
  • "Normalization" 可以接受以下设置:
  • None无归一化
    "Max"绝对最大值归一化到 1
    {"Max",val}绝对最大值归一化到 val
    {"RMS",val}输入音频信号的 RMS 归一化到 val
  • "TargetLength" 可以接受以下设置:
  • All与输入信号一样
    dur持续时间 dur 被指定为时间量
    nn 个样本
  • 如果指定的 "TargetLength" 不匹配输入信号的长度,则会进行填充或修剪.
  • "Augmentation" 可用以下键被指定为规则列表:
  • "Convolution"None在输入卷积脉冲响应
    "Noise"None在输入中添加噪声
    "TimeShift"None将输入移动指定的量
    "Volume"None用常量乘以输入
  • 任何接受数值的增广参数也会被指定为两个数的列表或单变量分布. 在第一种情况下,会根据给定边界间的均匀分布随机化值. 在第二种情况,会使用用户提供的分布.
  • "Convolution" 的可能值包括:
  • None无增广
    signalFileAudio 对象与输入卷积
    {mix,signal}与输入和 mix 参数卷积的信号
  • "Noise" 可能的值包括:
  • None无增广
    amp带有幅度 amp 的白噪声
    noiseFileAudio 对象包含要添加的噪声信号
    {amp,noise}噪声信号和其指定的幅度
  • 使用 "TimeShift"->t 移动输入 t 秒、如果必要则进行填充或剪裁. 使用 Scaled[s] 移动输入 s×dur 秒,其中,dur 是输入信号的持续时间. 使用 {t1,t2}Scaled[{ts1,t2}] 随机化指定时间之间的移动.
  • 使用 "Volume"->val 指定常量乘数.

范例

打开所有单元关闭所有单元

基本范例  (2)

创建一个音频 NetEncoder

用三个样本创建一个 Audio 对象:

Audio 对象应用该编码器:

绘制编码器结果:

范围  (3)

NetEncoder["Audio"] 可对 FileAudio 对象进行编码. 创建一个音频编码器:

File 对象应用该编码器:

对核内 Audio 对象应用该编码器:

对核外 Audio 对象应用该编码器:

创建 Audio 对象列表:

对一批输入应用 NetEncoder["Audio"]

创建一个音频 NetEncoder

将编码器添加到网络的输入上:

Audio 对象应用该网络:

Parameters  (3)

"Normalization"  (1)

用三个样本创建一个 Audio 对象:

应用编码器,设 "Normalization"->None 避免归一化:

应用编码器,设 "Normalization"->Automatic 将最大绝对值归一化为 1

求结果的最小值和最大值:

"SampleRate"  (1)

用三个样本创建一个 Audio 对象,采样率为 16000

采样率低于原始音频的编码器会给出更少的样本:

采样率高于原始音频的编码器会给出更多的样本:

"TargetLength"  (1)

用三个样本创建一个 Audio 对象:

应用编码器,设 "TargetLength"All 将返回三个样本:

应用编码器,设 "TargetLength"->5,用零进行填充,使输出长度为 5:

应用编码器,设 "TargetLength"2,只使用前两个样本:

可能存在的问题  (1)

如果输入是多通道信号,则返回通道的平均值: