codecamp

PyTorch torchaudio

原文:PyTorch torchaudio

torchaudio 程序包由 I / O,常用数据集和常见音频转换组成。

torchaudio.get_sox_bool(i=0)¶

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

参数

i (int 可选)–选择类型或获取具有所有可能选项的字典,请使用__members__查看未指定的所有选项。 (默认:sox_false0

退货

sox_bool 类型

返回类型

sox_bool

torchaudio.get_sox_encoding_t(i=None)¶

获取 sox 编码的 sox_encoding_t 枚举。

Parameters

i (int 可选)–选择类型或获取具有所有可能选项的字典,请使用__members__查看未指定的所有选项。 (默认:None

Returns

用于输出编码的 sox_encoding_t 类型

Return type

sox_encoding_t

torchaudio.get_sox_option_t(i=2)¶

获取 sox encodinginfo 选项的 sox_option_t 枚举。

Parameters

i (int 可选)–选择类型或获取具有所有可能选项的字典,请使用__members__查看未指定的所有选项。 (默认:sox_option_default2

Returns

sox_option_t 类型

Return type

sox_option_t

torchaudio.info(filepath)¶

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

Parameters

文件路径 (str)–音频文件的路径

Returns

si(sox_signalinfo_t)信号信息作为 python 对象。 EI(sox_encodinginfo_t)编码信息

Return type

元组[sox_signalinfo_t,sox_encodinginfo_t]

Example


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

torchaudio.initialize_sox()¶

初始化 sox 以与效果链一起使用。 对于简单加载,这不是必需的。 重要的是,只运行一次 <cite>initialize_sox</cite> ,并且不要在每个效果链之后都关闭,而是在完成所有效果链后才关闭。

torchaudio.load(filepath, out=None, normalization=True, channels_first=True, num_frames=0, offset=0, signalinfo=None, encodinginfo=None, filetype=None)¶

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

Parameters

  • 文件路径 (str pathlib.Path)–音频文件的路径
  • 输出 (torch张量 可选)–使用一个输出张量来代替创建一个张量。 (默认:None
  • 规范化 (bool 编号 可调用 可选)–如果布尔值<cite>为 True</cite> ,则输出除以 <cite>1 < < 31</cite> (假定带符号 32- 位音频),并标准化为 <cite>[-1,1]</cite> 。 如果<cite>数字</cite>,则输出除以该数字。如果<cite>可调用</cite>,则将输出作为参数传递给给定函数,然后将输出除以结果。 (默认:True
  • channels_first (bool)–首先设置通道,或先设置长度。 (默认:True
  • num_frames (int 可选)–要加载的帧数。 0 加载偏移量之后的所有内容。 (默认:0
  • 偏移量 (int 可选)–从文件开始到开始数据加载的帧数 。 (默认:0
  • signalinfo (sox_signalinfo_t 可选)– sox_signalinfo_t 类型,如果无法自动确定音频类型,则可能会有所帮助。 (默认:None
  • encodinginfo (sox_encodinginfo_t 可选)– sox_encodinginfo_t 类型,如果无法自动确定音频类型,则可以设置。 (默认:None
  • 文件类型 (str 可选)–如果 sox 无法自动确定文件类型或扩展名,请设置 。 (默认:None

Returns

大小为 <cite>[C x L]</cite> 或 <cite>[L x C]</cite> 的输出张量,其中 L 是音频帧数,C 是声道数。 一个整数,它是音频的采样率(如文件的元数据中所列)

Return type

元组[torch.张量, int ]

Example


>>> 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.load_wav(filepath, **kwargs)¶

加载波形文件。 假定 wav 文件每个样本使用 16 位,需要通过将输入右移 16 位来进行归一化。

Parameters

filepath (str or pathlib.Path) – Path to audio file

Returns

An output tensor of size <cite>[C x L]</cite> or <cite>[L x C]</cite> where L is the number of audio frames and C is the number of channels. An integer which is the sample rate of the audio (as listed in the metadata of the file)

Return type

Tuple[torch.Tensor, int]

torchaudio.save(filepath, src, sample_rate, precision=16, channels_first=True)¶

<cite>save_encinfo</cite> 的便捷功能。

Parameters

  • filepath (str) – Path to audio file
  • src (torch张量)–形状为 <cite>[C x L]</cite> 或 <cite>[L x C]的输入 2D 张量 ]</cite> 其中 L 是音频帧数,C 是声道数
  • sample_rate (int)–整数,它是音频的采样率(如文件的元数据中列出)
  • 精度 (int)–位精度(默认值:16
  • channels_first (bool)–首先设置通道,或先设置长度。 (默认:True

torchaudio.save_encinfo(filepath, src, channels_first=True, signalinfo=None, encodinginfo=None, filetype=None)¶

将音频信号的张量以 mp3,wav 等标准格式保存到磁盘。

Parameters

  • filepath (str) – Path to audio file
  • src (torch.Tensor) – An input 2D tensor of shape <cite>[C x L]</cite> or <cite>[L x C]</cite> where L is the number of audio frames, C is the number of channels
  • channels_first (bool) – Set channels first or length first in result. (Default: True)
  • signalinfo (sox_signalinfo_t )– sox_signalinfo_t 类型,如果无法自动确定音频类型,这可能会有所帮助。 (默认:None
  • encodinginfo (sox*encodinginfo\t*, optional) – A sox_encodinginfo_t type, which could be set if the audio type cannot be automatically determined. (Default: None)
  • filetype (*str*, optional) – A filetype or extension to be set if sox cannot determine it automatically. (Default: None)

Example


>>> data, sample_rate = torchaudio.load('foo.mp3')
>>> torchaudio.save('foo.wav', data, sample_rate)

torchaudio.shutdown_sox()¶

摊牌袜效果链。 简单加载不需要。 重要的是,只能拨打一次。 尝试重新初始化 sox 将导致段错误。

torchaudio.sox_encodinginfo_t()¶

创建一个 sox_encodinginfo_t 对象。 该对象可用于设置编码类型,位精度,压缩系数,反向字节,反向半字节,反向位和字节序。 可以在效果链中使用它来对最终输出进行编码或使用特定编码保存文件。 例如,可以使用 sox ulaw 编码进行 8 位 ulaw 编码。 请注意,在张量输出中,结果将是 32 位数字,但是唯一值的数量将由位精度确定。

Returns: sox_encodinginfo_t(object)

  • 编码(sox_encoding_t),输出编码
  • bits_per_sample(int),位精度,与 sox_signalinfo_t 中的<cite>精度</cite>相同
  • 压缩(浮动),有损格式的压缩,默认压缩为 0.0
  • reverse_bytes(sox_option_t),反向字节,使用 sox_option_default
  • 反向半字节(sox_option_t),反向半字节,使用 sox_option_default
  • reverse_bits(sox_option_t),反向字节,使用 sox_option_default
  • 对立的字节序(sox_bool),更改字节序,使用 sox_false

Example


>>> 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.sox_signalinfo_t()¶

创建一个 sox_signalinfo_t 对象。 该对象可用于设置效果的采样率,通道数,长度,位精度和净空倍数

Returns: sox_signalinfo_t(object)

  • rate(float),采样率为 float,实际上可能是整数 float
  • channel(int),音频通道数
  • 精度(int),位精度
  • 长度(int),样本中音频的长度*通道,0(未指定)和-1(未知)
  • 多重(浮点型,可选),净空乘数用于效果,None无乘数

Example


>>> si = torchaudio.sox_signalinfo_t()
>>> si.channels = 1
>>> si.rate = 16000.
>>> si.precision = 16
>>> si.length = 0
PyTorch torchvision
PyTorch 贡献指南
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Pytorch 音频

PyTorch 命名为 Tensor(实验性)

PyTorch 强化学习

PyTorch 用其他语言

PyTorch 语言绑定

PyTorch torchvision参考

PyTorch 音频参考

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }