目录

torchaudio.backend

概述

torchaudio.backend模块为音频文件 I/O 功能提供实现,这些功能是 、 和 。torchaudio.infotorchaudio.loadtorchaudio.load_wavtorchaudio.save

目前有四种实现可用。

强烈建议不要使用 backend,因为它无法正确处理 16 位整数 WAV 以外的格式。有关详细信息,请参阅 #726"sox"

注意

请不要直接调用 函数,而是使用 、 ,并在适当的后端设置下使用 torchaudio.backendtorchaudio.infotorchaudio.loadtorchaudio.load_wavtorchaudio.save

可用性

"sox"后端需要 C++ 扩展模块,该模块包含在 Linux/macOS 二进制发行版中。这些后端在 Windows 上不可用。"sox_io"

"soundfile"backend 需要 .请参阅 SoundFile 文档进行安装。SoundFile

默认后端和弃用的更改

后端模块正在进行一次重大改革。下表总结了弃用和删除的时间表。

后端

0.8.0

0.9.0

"sox_io"

Linx/macOS 上的默认值

Linux/macOS 上的默认值

"sox"(已弃用)

可用

删除

"soundfile"

Windows 上的默认值

Windows 上的默认值

"soundfile"(传统接口、 已弃用)

可用

删除

  • 和 backends 已弃用,并将在 0.9.0 版本中删除。"sox""soundfile" (legacy interface)

通用数据结构

用于报告音频文件元数据的结构体。

AudioMetaData

sample_rate:int,num_frames:int,num_channels:int,bits_per_sample:int编码:str[来源]torchaudio.backend.common.AudioMetaData

返回函数的类型。torchaudio.info

这个类由 “sox_io” 后端“soundfile” 后端使用,具有新的接口

变量
  • sample_rateint) – 采样率

  • num_framesint) – 帧数

  • num_channelsint) – 通道数

  • bits_per_sampleint) – 每个样本的位数。对于有损格式,此值为 0, 或者当它无法准确推断时。

  • encodingstr) – 音频编码。

SignalInfo(已弃用)

class channels: Optional[int] = Nonerate: Optional[float] = Noneprecision: Optional[int] = Nonelength: Optional[int] = None[来源]torchaudio.backend.common.SignalInfo

函数的返回类型之一。torchaudio.info

此类由具有传统接口(已弃用)的 “sox” 后端 (已弃用) 和 “soundfile” 后端使用。

查看 https://fossies.org/dox/sox-14.4.2/structsox__signalinfo__t.html

变量
  • channelsOptional[int]) – 通道数

  • rateOptional[float]) – 采样率

  • precisionOptional[int]) – 位深度

  • lengthOptional[int]) – 对于 sox 后端,样本数。 (帧 * 通道)。对于 soundfile backend,帧数。

EncodingInfo(已弃用)

class 编码: Any = Nonebits_per_sample: Optional[int] = Nonecompression: Optional[float] = Nonereverse_bytes: Any = Nonereverse_nibbles: Any = Nonereverse_bits: Any = Noneopposite_endian: Optional[bool] = None[来源]torchaudio.backend.common.EncodingInfo

函数的返回类型之一。torchaudio.info

此类由具有传统接口(已弃用)的 “sox” 后端 (已弃用) 和 “soundfile” 后端使用。

查看 https://fossies.org/dox/sox-14.4.2/structsox__encodinginfo__t.html

变量
  • encodingOptional[int]) – sox_encoding_t

  • bits_per_sampleOptional[int]) – 位深度

  • compressionOptional[float]) – 压缩选项

  • reverse_bytes任意)–

  • reverse_nibbles任何) –

  • reverse_bits任何) –

  • opposite_endian可选[bool]) –

Sox IO 后端

后端在 Linux/macOS 上可用且为默认版本,在 Windows 上不可用。"sox_io"

该后端的 I/O 功能支持 TorchScript

您可以通过以下方式从另一个后端切换到后端;sox_io

torchaudio.set_audio_backend("sox_io")

信息

torchaudio.backend.sox_io_backend.info(文件路径:str格式:可选[str] = None → torchaudio.backend.common.AudioMetaData[来源]

获取音频文件的信号信息。

参数
  • filepath路径类对象文件类对象) –

    音频数据源。当函数没有被 TorchScript 编译时, (例如),接受以下类型;torch.jit.script

    • path-like: 文件路径

    • file-like: 具有方法的对象, 返回最大长度的字节字符串。read(size: int) -> bytessize

    当函数由 TorchScript 编译时,只允许使用 type。str

    注意

    • 当输入类型为类文件对象时,此函数不能 为某些格式获取正确的长度 (), 例如 和 。 在本例中,的值为 。num_samplesmp3vorbisnum_samples0

    • 此参数被有意注释为仅由于 TorchScript 编译器兼容性。str

  • formatstroptional) – 使用给定格式覆盖格式检测。 当 libsox 无法推断格式时,提供参数可能会有所帮助 from 标头或扩展,

返回

给定音频的元数据。

返回类型

AudioMetaData

负荷

torchaudio.backend.sox_io_backend.load(文件路径:strframe_offset:int = 0num_frames:int = -1标准化:bool = Truechannels_first:bool = True格式:可选[str] = None→ Tuple[torch.Tensor, int][来源]

从文件加载音频数据。

注意

此函数可以处理底层 libsox 可以处理的所有编解码器, 但是,它已在以下格式上进行了测试;

  • WAV、AMB

    • 32 位浮点

    • 32 位有符号整数

    • 16 位有符号整数

    • 8 位无符号整数(仅限 WAV)

  • MP3 的

  • FLAC的

  • OGG/VORBIS

  • 作品

  • AMR-NB 系列

加载 、 、 和其他编解码器不会 handle 时,您的安装必须链接到相应的编解码器库,例如 OR 等。MP3FLACOGG/VORBISOPUSlibsoxtorchaudiolibsoxlibmadlibmp3lame

默认情况下 (, ),此函数返回 dtype 和 shape 为 的 Tensor。 样本被归一化以适应 的范围。normalize=Truechannels_first=Truefloat32[channel, time][-1.0, 1.0]

当输入格式为整数类型的 WAV 时,例如 32 位有符号整数、16 位 有符号整数和 8 位无符号整数(不支持 24 位有符号整数), 通过提供 ,该函数可以返回整数 Tensor,其中样本 在相应 dtype 的整个范围内表示,即 Tensor 对于 32 位有符号 PCM、16 位有符号 PCM 和 8 位无符号 PCM。normalize=Falseint32int16uint8

normalize参数对 32 位浮点 WAV 和其他格式(如 和 )没有影响。 对于这些格式,此函数始终返回 Tensor,其值归一化为 。flacmp3float32[-1.0, 1.0]

参数
  • filepath路径类对象文件类对象) –

    音频数据源。当函数没有被 TorchScript 编译时, (例如),接受以下类型;torch.jit.script

    • path-like: 文件路径

    • file-like: 具有方法的对象, 返回最大长度的字节字符串。read(size: int) -> bytessize

    当函数由 TorchScript 编译时,只允许使用 type。str

    注意:此参数被有意注释为仅由于 TorchScript 编译器兼容性。str

  • frame_offsetint) – 开始读取数据之前要跳过的帧数。

  • num_framesint) – 要读取的最大帧数。 读取所有剩余样本, 从 . 如果没有足够的帧数,此函数可能会返回较少的帧数 帧。-1frame_offset

  • normalizebool) - 当 时,此函数始终返回 ,样本值为 标准化为 . 如果 input file 是整数 WAV,则 give 会将生成的 Tensor 类型更改为 integer 类型。 此参数对整数 WAV 类型以外的格式没有影响。Truefloat32[-1.0, 1.0]False

  • channels_firstbool) – 当为 True 时,返回的 Tensor 具有维度 。 否则,返回的 Tensor 的维度为 。[channel, time][time, channel]

  • formatstroptional) – 使用给定格式覆盖格式检测。 当 libsox 无法推断格式时,提供参数可能会有所帮助 from 标头或扩展,

返回

生成的 Tensor 和 sample rate。

如果输入文件具有整数 wav 格式且标准化处于关闭状态,则它具有 integer 类型,else 类型。如果 ,则它有 else 。float32channels_first=True[channel, time][time, channel]

返回类型

元组[torch.张量int]

torchaudio.backend.sox_io_backend.load_wav(文件路径:strframe_offset:int = 0num_frames:int = -1channels_first:bool = True→ Tuple[torch.Tensor, int][来源]

加载波形文件。

定义此函数只是为了与其他后端兼容 对于简单的使用案例,例如 . 实现方式与 相同。torchaudio.load_wav(filepath)

torchaudio.backend.sox_io_backend.save(文件路径:str,src:torch。张量sample_rate:int,channels_first:bool = True压缩:可选[浮点] = 无格式:可选[str] = 无编码:可选[str] = 无bits_per_sample:可选[int] = 无[来源]

将音频数据保存到文件。

参数
  • filepathstrpathlib.Path) – 保存文件的路径。 此函数也处理对象,但带有 Comments 至于 TorchScript 编译器兼容性。pathlib.Pathstr

  • srcTorch.Tensor) – 要保存的音频数据。必须是 2D 张量。

  • sample_rateint) – 采样率

  • channels_firstbool) – 如果 ,则给定的张量被解释为 , 否则。True[channel, time][time, channel]

  • compression可选[float]) –

    用于 WAV 以外的格式。 这对应于 command 的 option。-Csox

    "mp3"

    具有品质因数的比特率 (in),例如 ,或 具有品质因数的 VBR 编码,例如 .违约:。kbps128.2-4.2-4.5

    "flac"

    整数 from to 。 是默认且最高的压缩率。088

    "ogg","vorbis"

    编号 from 到 ; 是最高的压缩率 和最低质量。违约:。-110-13

    有关详细信息,请参阅 http://sox.sourceforge.net/soxformat.html

  • formatstr可选) –

    覆盖音频格式。 当 argument 是 path-like object 时,音频格式是从 文件扩展名。如果文件扩展名缺失或不同,您可以指定 使用此参数的正确格式。filepath

    当 argument 是 file-like object 时,此参数是必需的。filepath

    有效值为 、 和 。"wav""mp3""ogg""vorbis""amr-nb""amb""flac""sph""gsm""htk"

  • encodingstr可选) –

    更改受支持格式的编码。 此参数仅对支持的格式有效,例如 , 和 。有效值为;"wav"""amb""sph"

    • "PCM_S"(有符号整数线性 PCM)

    • "PCM_U"(无符号整数线性 PCM)

    • "PCM_F"(浮点 PCM)

    • "ULAW"(mu-law)

    • "ALAW"(A-法律)

    默认值

    如果未提供,则根据 和 选择默认值。formatbits_per_sample

    "wav","amb"
    • 如果两者都未提供 和 ,则encodingbits_per_sampledtype
      Tensor 用于确定默认值。 - 如果 dtype 为 - 如果 dtype 为 或 dtype 为"PCM_U"uint8"PCM_S"int16int32` - ``"PCM_F"float32
    • "PCM_U"如果bits_per_sample=8

    • "PCM_S"否则

    "sph"格式;
    • 默认值为"PCM_S"

  • bits_per_sampleint可选) –

    更改受支持格式的位深度。 当 是 、 、 或 之一时,您可以更改 位深度。有效值为 、 和 。format"wav""flac""sph""amb"8163264

    默认值;

    如果未提供,则根据 和 选择默认值format"encoding";

    "wav","amb";
    • 如果两者都未提供 和 ,则encodingbits_per_sampledtype
      Tensor 的 Tensor 被使用。 - 如果 dtype 为 - 如果 dtype 为 - 如果 dtype 为 或8uint816int1632int32float32
    • 8if 是 , 或encoding"PCM_U""ULAW""ALAW"

    • 16if 是encoding"PCM_S"

    • 32if 是encoding"PCM_F"

    "flac"格式;
    • 默认值为24

    "sph"格式;
    • 16如果是 、 或 未提供。encoding"PCM_U""PCM_S""PCM_F"

    • 8if is 或encoding"ULAW""ALAW"

    "amb"格式;
    • 8if 是 , 或encoding"PCM_U""ULAW""ALAW"

    • 16如果提供或未提供。encoding"PCM_S"

    • 32if 是encoding"PCM_F"

支持的格式/编码/位深度/压缩是;

"wav","amb"
  • 32 位浮点 PCM

  • 32 位有符号整数 PCM

  • 24 位有符号整数 PCM

  • 16 位有符号整数 PCM

  • 8 位无符号整数 PCM

  • 8 位 mu law

  • 8 位 A-law

注意:默认编码/位深度由输入 Tensor 的 dtype 决定。

"mp3"

固定比特率(如 128kHz)和可变比特率压缩。 默认:高质量的 VBR。

"flac"
  • 8 位

  • 16 位

  • 24 位 (默认)

"ogg","vorbis"
  • 不同的质量水平。默认值:约 112kbps

"sph"
  • 8 位有符号整数 PCM

  • 16 位有符号整数 PCM

  • 24 位有符号整数 PCM

  • 32 位有符号整数 PCM(默认)

  • 8 位 mu law

  • 8 位 A-law

  • 16 位 A-law

  • 24 位 A-law

  • 32 位 A-law

"amr-nb"

比特率范围从 4.75 kbit/s 到 12.2 kbit/s。默认值:4.75 kbit/s

"gsm"

有损语音压缩,CPU 密集型。

"htk"

使用其默认的单通道 16 位 PCM 格式。

注意

要保存为本机无法处理的格式(例如 、 和 ),您安装的 具有 链接到相应的编解码器库,例如 OR 等。libsox"mp3""flac""ogg""vorbis"torchaudiolibsoxlibmadlibmp3lame

Sox 后端 (已弃用)

后端在 Linux/macOS 上可用,在 Windows 上不可用。此后端已弃用,并将在 release 中删除。"sox"0.9.0

您可以通过以下方式从另一个后端切换到后端;sox

torchaudio.set_audio_backend("sox")

信息

torchaudio.backend.sox_backend.info(文件路径:str →元组[torchaudio.backend.common.SignalInfo, torchaudio.backend.common.EncodingInfo] [来源]

从音频文件获取元数据,而不加载信号。

参数

filepath – 音频文件的路径

返回

一个 si (sox_signalinfo_t) 信号

info 作为 Python 对象。ei (sox_encodinginfo_t) 编码信息

返回类型

(sox_signalinfo_t、sox_encodinginfo_t)

>>> si, ei = torchaudio.info('foo.wav')
>>> rate, channels, encoding = si.rate, si.channels, ei.encoding

负荷

torchaudio.backend.sox_backend.load(文件路径: strout: 可选[torch.张量] = 无归一化:bool = True,channels_first:bool = True,num_frames:int = 0偏移量:int = 0,signalinfo:torchaudio.backend.common.SignalInfo = 无编码信息:torchaudio.backend.common.EncodingInfo = 无文件类型:可选[str] = 无→ Tuple[torch.Tensor, int][来源]

将音频文件从磁盘加载到张量中

参数
  • filepath – 音频文件的路径

  • out – 要使用的可选输出张量,而不是创建一个。(默认:None)

  • normalization (规范化) – 可选规范化。 如果布尔值为 True,则输出除以 1 << 31。 假设输入是有符号的 32 位音频,则标准化为 [-1, 1]。 如果为 float,则 output 除以该数字。 如果 Callable,则输出将作为参数传递给给定的函数 然后,输出除以结果。(默认:True)

  • channels_first – 在结果中首先设置通道或首先设置长度。(默认:True)

  • num_frames – 要加载的帧数。0 加载偏移量之后的所有内容。 (默认:0)

  • offset – 从文件开头开始数据加载的帧数。 (默认:0)

  • signalinfo – sox_signalinfo_t类型,如果 无法自动确定音频类型。(默认:None)

  • encodinginfo – sox_encodinginfo_t类型,如果 无法自动确定音频类型。(默认:None)

  • filetype – 如果 sox 无法确定,则要设置的文件类型或扩展名 自然而然。(默认:None)

返回

大小为 [C x L][L x C] 的输出张量,其中

L 是音频帧数, C 是通道数。 一个整数,即音频的采样率(如文件的元数据中所列)

返回类型

(张量、int)

>>> data, sample_rate = torchaudio.load('foo.mp3')
>>> print(data.size())
torch.Size([2, 278756])
>>> print(sample_rate)
44100
>>> data_vol_normalized, _ = torchaudio.load('foo.mp3', normalization=lambda x: torch.abs(x).max())
>>> print(data_vol_normalized.abs().max())
1.
torchaudio.backend.sox_backend.load_wav(filepath**kwargs[来源]

加载波形文件。

它假设 wav 文件每个样本使用 16 位,需要通过以下方式进行规范化 将 input 右移 16 位。

参数

filepath – 音频文件的路径

返回

大小为 [C x L][L x C] 的输出张量,其中 L 是数字

音频帧数,C 是声道数。一个整数,它是 音频(如文件的元数据中所列)

返回类型

(张量、int)

torchaudio.backend.sox_backend.save(文件路径:str,src:torch。张量sample_rate:int精度:int = 16,channels_first:bool = True→无[来源]

将 Tensor on file 保存为音频文件

参数
  • filepath – 音频文件的路径

  • src – 形状为 [C x L][L x C] 的输入 2D 张量,其中 L 为 音频帧数,C 是声道数

  • sample_rate – 一个整数,它是 音频(如文件的元数据中所列)

  • 位精度 (默认precision) –16)

  • channels_firstbooloptional) – 在结果中首先设置通道或首先设置长度。( 违约:True)

别人

torchaudio.backend.sox_backend.get_sox_bool(i: int = 0) → Any[来源]

获取 sox_bool 的 sox encodinginfo 选项的枚举。

参数

iint可选) – 选择类型或获取包含所有可能选项的字典 用于在未指定时查看所有选项。(默认值:或__members__sox_false0)

返回

A sox_bool型

返回类型

sox_bool

torchaudio.backend.sox_backend.get_sox_encoding_t(i: int = None → torchaudio.backend.common.EncodingInfo[来源]

获取 sox_encoding_t 的 sox 编码的枚举。

参数

iint可选) – 选择类型或获取包含所有可能选项的字典 用于在未指定时查看所有选项。(默认:__members__None)

返回

用于输出编码的 sox_encoding_t 类型

返回类型

sox_encoding_t

torchaudio.backend.sox_backend.get_sox_option_t(i: int = 2) → Any[来源]

获取 sox encodinginfo 选项的 sox_option_t 的枚举。

参数

iint可选) – 选择类型或获取包含所有可能选项的字典 用于在未指定时查看所有选项。 (默认值:或__members__sox_option_default2)

返回

A sox_option_t型

返回类型

sox_option_t

torchaudio.backend.sox_backend.save_encinfo(文件路径:str,src:torch。张量channels_first:bool = True,signalinfo:可选[torchaudio.backend.common.SignalInfo] = None,encodinginfo:可选[torchaudio.backend.common.EncodingInfo] = None文件类型:Optional[str] = None→无[源]

将音频信号的张量作为标准格式(如 mp3、wav 等)保存到磁盘。

参数
  • filepathstr) – 音频文件的路径

  • srcTensor) - 形状为 [C x L][L x C] 的输入 2D 张量,其中 L 为 音频帧数,C 是声道数

  • channels_firstbooloptional) – 在结果中首先设置通道或首先设置长度。(默认:True)

  • signalinfosox_signalinfo_t可选) – sox_signalinfo_t类型,如果 无法自动确定音频类型(默认值:)。None

  • encodinginfosox_encodinginfo_t可选) – sox_encodinginfo_t类型,如果 无法自动确定音频类型(默认值:)。None

  • filetypestroptional) – 如果 sox 无法确定,则要设置的文件类型或扩展名 自然而然。(默认:None)

>>> data, sample_rate = torchaudio.load('foo.mp3')
>>> torchaudio.save('foo.wav', data, sample_rate)
torchaudio.backend.sox_backend.sox_encodinginfo_t()→ torchaudio.backend.common.EncodingInfo[来源]

创建 sox_encodinginfo_t 对象。此对象可用于设置编码 类型、位精度、压缩因子、反向字节、反向半字节、 反向位和字节序。这可以在效果链中用于对 final output 或保存具有特定编码的文件。例如,可以 使用 SOX ULAW 编码进行 8 位 ULAW 编码。张量输出中的注释 结果将是一个 32 位数字,但唯一值的数量将由 位精度。

返回: sox_encodinginfo_t(object)
  • 编码 (sox_encoding_t)、输出编码

  • bits_per_sample (int),位精度,与 sox_signalinfo_t 中的精度相同

  • compression (float),有损格式的压缩,0.0 默认压缩

  • reverse_bytes (sox_option_t),反向字节,使用 sox_option_default

  • reverse_nibbles (sox_option_t), 反向啃食, 使用 sox_option_default

  • reverse_bits (sox_option_t),反向字节,使用 sox_option_default

  • opposite_endian (sox_bool)、更改字节序、使用 sox_false

>>> ei = torchaudio.sox_encodinginfo_t()
>>> ei.encoding = torchaudio.get_sox_encoding_t(1)
>>> ei.bits_per_sample = 16
>>> ei.compression = 0
>>> ei.reverse_bytes = torchaudio.get_sox_option_t(2)
>>> ei.reverse_nibbles = torchaudio.get_sox_option_t(2)
>>> ei.reverse_bits = torchaudio.get_sox_option_t(2)
>>> ei.opposite_endian = torchaudio.get_sox_bool(0)
torchaudio.backend.sox_backend.sox_signalinfo_t()→ torchaudio.backend.common.SignalInfo[来源]

创建 sox_signalinfo_t 对象。此对象可用于设置样本 速率、通道数、长度、位精度和余量乘数 主要用于效果

返回: sox_signalinfo_t(object)
  • rate (float),采样率作为浮点数,实际上很可能是整数浮点数

  • channel (int), 音频通道数

  • 精度 (int)、位精度

  • length (int),样本中的音频长度 * 通道,0 表示未指定,-1 表示未知

  • mult (float, optional), 用于效果和无乘数的 headroom multiplierNone

>>> si = torchaudio.sox_signalinfo_t()
>>> si.channels = 1
>>> si.rate = 16000.
>>> si.precision = 16
>>> si.length = 0

Soundfile 后端

安装 SoundFile 后,后端可用。此后端是 Windows 上的默认值。"soundfile"

您可以通过以下方式从另一个后端切换到后端;"soundfile"

torchaudio.set_audio_backend("soundfile")

注意

如果要从 “soundfile” (传统接口) 切换到后端<soundfile_legacy_backend>,请在切换后端之前设置 flag。torchaudio.USE_SOUNDFILE_LEGACY_INTERFACE

信息

torchaudio.backend._soundfile_backend.info(文件路径:str格式:可选[str] = None → torchaudio.backend.common.AudioMetaData[来源]

获取音频文件的信号信息。

参数
  • filepath路径类对象文件类对象) –

    音频数据源。 ..注意:

    * This argument is intentionally annotated as ``str`` only,
      for the consistency with "sox_io" backend, which has a restriction
      on type annotation due to TorchScript compiler compatiblity.
    

  • formatstroptional) – 未使用。PySoundFile 不接受格式提示。

返回

给定音频的元数据。

返回类型

AudioMetaData

负荷

torchaudio.backend._soundfile_backend.load(文件路径:strframe_offset:int = 0num_frames:int = -1标准化:bool = Truechannels_first:bool = True格式:可选[str] = None→ Tuple[torch.Tensor, int][来源]

从文件加载音频数据。

注意

此函数可以处理的格式取决于 soundfile 安装。 此函数在以下格式上进行了测试;

  • WAV

    • 32 位浮点

    • 32 位有符号整数

    • 16 位有符号整数

    • 8 位无符号整数

  • FLAC的

  • OGG/VORBIS

默认情况下 (, ),此函数返回 dtype 和 shape 为 的 Tensor。 样本被归一化以适应 的范围。normalize=Truechannels_first=Truefloat32[channel, time][-1.0, 1.0]

当输入格式为整数类型的 WAV 时,例如 32 位有符号整数、16 位 有符号整数和 8 位无符号整数(不支持 24 位有符号整数), 通过提供 ,该函数可以返回整数 Tensor,其中样本 在相应 dtype 的整个范围内表示,即 Tensor 对于 32 位有符号 PCM、16 位有符号 PCM 和 8 位无符号 PCM。normalize=Falseint32int16uint8

normalize参数对 32 位浮点 WAV 和其他格式(如 和 )没有影响。 对于这些格式,此函数始终返回 Tensor,其值归一化为 。flacmp3float32[-1.0, 1.0]

参数
  • filepath路径类对象文件类对象) –

    音频数据源。 ..注意:

    * This argument is intentionally annotated as ``str`` only,
      for the consistency with "sox_io" backend, which has a restriction
      on type annotation due to TorchScript compiler compatiblity.
    

  • frame_offsetint) – 开始读取数据之前要跳过的帧数。

  • num_framesint) – 要读取的最大帧数。 读取所有剩余样本, 从 . 如果没有足够的帧数,此函数可能会返回较少的帧数 帧。-1frame_offset

  • normalizebool) - 当 时,此函数始终返回 ,样本值为 标准化为 . 如果 input file 是整数 WAV,则 give 会将生成的 Tensor 类型更改为 integer 类型。 此参数对整数 WAV 类型以外的格式没有影响。Truefloat32[-1.0, 1.0]False

  • channels_firstbool) – 当为 True 时,返回的 Tensor 具有维度 。 否则,返回的 Tensor 的维度为 。[channel, time][time, channel]

  • formatstroptional) – 未使用。PySoundFile 不接受格式提示。

返回

生成的 Tensor 和 sample rate。

如果输入文件具有整数 wav 格式且标准化处于关闭状态,则它具有 integer 类型,else 类型。如果 ,则它有 else 。float32channels_first=True[channel, time][time, channel]

返回类型

元组[torch.张量int]

torchaudio.backend._soundfile_backend.load_wav(文件路径:strframe_offset:int = 0num_frames:int = -1channels_first:bool = True→ Tuple[torch.Tensor, int][来源]

加载波形文件。

定义此函数只是为了与其他后端兼容 对于简单的使用案例,例如 . 实现方式与 相同。torchaudio.load_wav(filepath)

torchaudio.backend._soundfile_backend.save(文件路径:str,src:torch。张量sample_rate:int,channels_first:bool = True压缩:可选[浮点] = 无格式:可选[str] = 无编码:可选[str] = 无bits_per_sample:可选[int] = 无[来源]

将音频数据保存到文件。

注意

此函数可以处理的格式取决于 soundfile 安装。 此函数在以下格式上进行了测试;

  • WAV

    • 32 位浮点

    • 32 位有符号整数

    • 16 位有符号整数

    • 8 位无符号整数

  • FLAC的

  • OGG/VORBIS

参数
  • filepathstrpathlib.Path) – 音频文件的路径。 此函数还处理对象,但为了与 “sox_io” 后端保持一致,对类型注释有限制 用于 TorchScript 编译器兼容性。pathlib.Pathstr

  • srcTorch.Tensor) – 要保存的音频数据。必须是 2D 张量。

  • sample_rateint) – 采样率

  • channels_firstbool) – 如果 ,则给定的张量被解释为 , 否则。True[channel, time][time, channel]

  • compressionOptional[float]) – 未使用。 它仅用于与 “sox_io” 后端的接口兼容性。

  • formatstr可选) –

    覆盖音频格式。 当 argument 为 path-like object时,audio 格式为 从文件扩展名推断。如果缺少文件扩展名或 不同,则可以使用此参数指定正确的格式。filepath

    当 argument 是类文件对象时, 此参数是必需的。filepath

    有效值为 、 、 和 。"wav""ogg""vorbis""flac""sph"

  • encodingstr可选) –

    更改受支持格式的编码。 此参数仅对支持的格式有效,sush as 和 .有效值为;"wav"""flac""sph"

    • "PCM_S"(有符号整数线性 PCM)

    • "PCM_U"(无符号整数线性 PCM)

    • "PCM_F"(浮点 PCM)

    • "ULAW"(mu-law)

    • "ALAW"(A-法律)

  • bits_per_sampleintoptional) – 更改 支持的格式。 当 是 、 或 之一时 , 您可以更改位深度。 有效值为 、 、 和 。format"wav""flac""sph"816243264

支持的格式/编码/位深度/压缩为:

"wav"
  • 32 位浮点 PCM

  • 32 位有符号整数 PCM

  • 24 位有符号整数 PCM

  • 16 位有符号整数 PCM

  • 8 位无符号整数 PCM

  • 8 位 mu law

  • 8 位 A-law

注意:默认编码/位深度由

输入 Tensor。

"flac"
  • 8 位

  • 16 位

  • 24 位 (默认)

"ogg","vorbis"
  • 不接受更改配置。

"sph"
  • 8 位有符号整数 PCM

  • 16 位有符号整数 PCM

  • 24 位有符号整数 PCM

  • 32 位有符号整数 PCM(默认)

  • 8 位 mu law

  • 8 位 A-law

  • 16 位 A-law

  • 24 位 A-law

  • 32 位 A-law

旧版接口(已弃用)

"soundfile"出于向后兼容的原因,可以使用具有传统接口的后端,但此接口已弃用,并将在版本中删除。0.9.0

要切换到此后端/接口,请在切换后端之前设置 flag。torchaudio.USE_SOUNDFILE_LEGACY_INTERFACE

torchaudio.USE_SOUNDFILE_LEGACY_INTERFACE = True
torchaudio.set_audio_backend("soundfile")  # The legacy interface

信息

torchaudio.backend.soundfile_backend.info(文件路径:str →元组[torchaudio.backend.common.SignalInfo, torchaudio.backend.common.EncodingInfo] [来源]

从音频文件获取元数据,而不加载信号。

参数

filepath – 音频文件的路径

返回

一个 si (sox_signalinfo_t) 信号

info 作为 Python 对象。ei (sox_encodinginfo_t) 编码信息

返回类型

(sox_signalinfo_t、sox_encodinginfo_t)

>>> si, ei = torchaudio.info('foo.wav')
>>> rate, channels, encoding = si.rate, si.channels, ei.encoding

负荷

torchaudio.backend.soundfile_backend.load(文件路径: strout: 可选[torch.张量] = 无归一化:可选[bool] = True,channels_first:可选[bool] = True,num_frames:int = 0偏移量:int = 0,signalinfo:torchaudio.backend.common.SignalInfo = 无编码信息:torchaudio.backend.common.EncodingInfo = 无文件类型:可选[str] = None → Tuple[torch.Tensor, int][来源]

将音频文件从磁盘加载到张量中

参数
  • filepath – 音频文件的路径

  • out – 要使用的可选输出张量,而不是创建一个。(默认:None)

  • normalization (规范化) – 可选规范化。 如果布尔值为 True,则输出除以 1 << 31。 假设输入是有符号的 32 位音频,则标准化为 [-1, 1]。 如果为 float,则 output 除以该数字。 如果 Callable,则输出将作为参数传递给给定的函数 然后,输出除以结果。(默认:True)

  • channels_first – 在结果中首先设置通道或首先设置长度。(默认:True)

  • num_frames – 要加载的帧数。0 加载偏移量之后的所有内容。 (默认:0)

  • offset – 从文件开头开始数据加载的帧数。 (默认:0)

  • signalinfo – sox_signalinfo_t类型,如果 无法自动确定音频类型。(默认:None)

  • encodinginfo – sox_encodinginfo_t类型,如果 无法自动确定音频类型。(默认:None)

  • filetype – 如果 sox 无法确定,则要设置的文件类型或扩展名 自然而然。(默认:None)

返回

大小为 [C x L][L x C] 的输出张量,其中

L 是音频帧数, C 是通道数。 一个整数,即音频的采样率(如文件的元数据中所列)

返回类型

(张量、int)

>>> data, sample_rate = torchaudio.load('foo.mp3')
>>> print(data.size())
torch.Size([2, 278756])
>>> print(sample_rate)
44100
>>> data_vol_normalized, _ = torchaudio.load('foo.mp3', normalization=lambda x: torch.abs(x).max())
>>> print(data_vol_normalized.abs().max())
1.
torchaudio.backend.soundfile_backend.load_wav(filepath**kwargs[来源]

加载波形文件。

它假设 wav 文件每个样本使用 16 位,需要通过以下方式进行规范化 将 input 右移 16 位。

参数

filepath – 音频文件的路径

返回

大小为 [C x L][L x C] 的输出张量,其中 L 是数字

音频帧数,C 是声道数。一个整数,它是 音频(如文件的元数据中所列)

返回类型

(张量、int)

torchaudio.backend.soundfile_backend.save(文件路径:str,src:torch。张量sample_rate:int精度:int = 16,channels_first:bool = True→无[来源]

将 Tensor on file 保存为音频文件

参数
  • filepath – 音频文件的路径

  • src – 形状为 [C x L][L x C] 的输入 2D 张量,其中 L 为 音频帧数,C 是声道数

  • sample_rate – 一个整数,它是 音频(如文件的元数据中所列)

  • 位精度 (默认precision) –16)

  • channels_firstbooloptional) – 在结果中首先设置通道或首先设置长度。( 违约:True)

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源