# torchaudio

> 原文： [https://pytorch.org/audio](https://pytorch.org/audio)

[`torchaudio`](#module-torchaudio "torchaudio") 程序包由 I / O，常用数据集和常见音频转换组成。

包装参考

*   [torchaudio.sox_effects](sox_effects.html)
    *   [SoxEffect](sox_effects.html#soxeffect)
    *   [SoxEffectsChain](sox_effects.html#soxeffectschain)
*   [torchaudio.datasets](datasets.html)
    *   [COMMONVOICE](datasets.html#commonvoice)
    *   [LIBRISPEECH](datasets.html#librispeech)
    *   [VCTK](datasets.html#vctk)
    *   [是](datasets.html#yesno)
*   [torchaudio.compliance.kaldi](compliance.kaldi.html)
    *   [功能](compliance.kaldi.html#functions)
*   [torchaudio.kaldi_io](kaldi_io.html)
    *   [矢量](kaldi_io.html#vectors)
    *   [矩阵](kaldi_io.html#matrices)
*   [torchaudio.transforms](transforms.html)
    *   [频谱图](transforms.html#spectrogram)
    *   [AmplitudeToDB](transforms.html#amplitudetodb)
    *   [MelScale](transforms.html#melscale)
    *   [MelSpectrogram](transforms.html#melspectrogram)
    *   [MFCC](transforms.html#mfcc)
    *   [MuLawEncoding](transforms.html#mulawencoding)
    *   [MuLawDecoding](transforms.html#mulawdecoding)
    *   [重采样](transforms.html#resample)
    *   [ComplexNorm](transforms.html#complexnorm)
    *   [ComputeDeltas](transforms.html#computedeltas)
    *   [TimeStretch](transforms.html#timestretch)
    *   [频率屏蔽](transforms.html#frequencymasking)
    *   [时标](transforms.html#timemasking)
*   [torchaudio.functional](functional.html)
    *   [istft](functional.html#istft)
    *   [频谱图](functional.html#spectrogram)
    *   [振幅 _ 至 _DB](functional.html#amplitude-to-db)
    *   [create_fb_matrix](functional.html#create-fb-matrix)
    *   [create_dct](functional.html#create-dct)
    *   [mu_law_encoding](functional.html#mu-law-encoding)
    *   [mu_law_decoding](functional.html#mu-law-decoding)
    *   [complex_norm](functional.html#complex-norm)
    *   [角度](functional.html#angle)
    *   [相位](functional.html#magphase)
    *   [phase_vocoder](functional.html#phase-vocoder)
    *   [lfilter](functional.html#lfilter)
    *   [biquad](functional.html#biquad)
    *   [lowpass_biquad](functional.html#lowpass-biquad)
    *   [highpass_biquad](functional.html#highpass-biquad)
    *   [equalizer_biquad](functional.html#equalizer-biquad)
    *   [mask_along_axis](functional.html#mask-along-axis)
    *   [mask_along_axis_iid](functional.html#mask-along-axis-iid)
    *   [compute_deltas](functional.html#compute-deltas)
    *   [detect_pitch_frequency](functional.html#detect-pitch-frequency)

* * *

```
torchaudio.get_sox_bool(i=0)¶
```

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

参数

**i**  ([_int_](https://docs.python.org/3/library/functions.html#int "(in Python v3.8)") _，_ _可选_）–选择类型或获取具有所有可能选项的字典，请使用`__members__`查看未指定的所有选项。 (默认：`sox_false`或`0`）

退货

sox_bool 类型

返回类型

sox_bool

* * *

```
torchaudio.get_sox_encoding_t(i=None)¶
```

获取 sox 编码的 sox_encoding_t 枚举。

Parameters

**i**  ([_int_](https://docs.python.org/3/library/functions.html#int "(in Python v3.8)") _，_ _可选_）–选择类型或获取具有所有可能选项的字典，请使用`__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_](https://docs.python.org/3/library/functions.html#int "(in Python v3.8)") _，_ _可选_）–选择类型或获取具有所有可能选项的字典，请使用`__members__`查看未指定的所有选项。 (默认：`sox_option_default`或`2`）

Returns

sox_option_t 类型

Return type

sox_option_t

* * *

```
torchaudio.info(filepath)¶
```

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

Parameters

**文件路径** ([_str_](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.8)"))–音频文件的路径

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 以与效果链一起使用。 对于简单加载，这不是必需的。 重要的是，只运行一次 &lt;cite&gt;initialize_sox&lt;/cite&gt; ，并且不要在每个效果链之后都关闭，而是在完成所有效果链后才关闭。

* * *

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

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

Parameters

*   **文件路径** ([_str_](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.8)") _或_ [_pathlib.Path_](https://docs.python.org/3/library/pathlib.html#pathlib.Path "(in Python v3.8)"))–音频文件的路径

*   **输出** ([_torch张量_](https://pytorch.org/docs/stable/tensors.html#torch.Tensor "(in PyTorch vmaster (1.4.0a0+bb32d52 ))") _，_ _可选_）–使用一个输出张量来代替创建一个张量。 (默认：`None`）

*   **规范化** ([_bool_](https://docs.python.org/3/library/functions.html#bool "(in Python v3.8)") _，_ _编号_ _或_ _可调用_ _，_ _可选_）–如果布尔值&lt;cite&gt;为 True&lt;/cite&gt; ，则输出除以 &lt;cite&gt;1 &lt; &lt; 31&lt;/cite&gt; (假定带符号 32- 位音频），并标准化为 &lt;cite&gt;[-1，1]&lt;/cite&gt; 。 如果&lt;cite&gt;数字&lt;/cite&gt;，则输出除以该数字。如果&lt;cite&gt;可调用&lt;/cite&gt;，则将输出作为参数传递给给定函数，然后将输出除以结果。 (默认：`True`）

*   **channels_first**  ([_bool_](https://docs.python.org/3/library/functions.html#bool "(in Python v3.8)"))–首先设置通道，或先设置长度。 (默认：`True`）

*   **num_frames**  ([_int_](https://docs.python.org/3/library/functions.html#int "(in Python v3.8)") _，_ _可选_）–要加载的帧数。 0 加载偏移量之后的所有内容。 (默认：`0`）

*   **偏移量** ([_int_](https://docs.python.org/3/library/functions.html#int "(in Python v3.8)") _，_ _可选_）–从文件开始到开始数据加载的帧数 。 (默认：`0`）

*   **signalinfo**  (_sox_signalinfo_t_ _，_ _可选_）– sox_signalinfo_t 类型，如果无法自动确定音频类型，则可能会有所帮助。 (默认：`None`）

*   **encodinginfo**  (_sox_encodinginfo_t_ _，_ _可选_）– sox_encodinginfo_t 类型，如果无法自动确定音频类型，则可以设置。 (默认：`None`）

*   **文件类型** ([_str_](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.8)") _，_ _可选_）–如果 sox 无法自动确定文件类型或扩展名，请设置 。 (默认：`None`）

Returns

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

Return type

元组[[torch.张量](https://pytorch.org/docs/stable/tensors.html#torch.Tensor "(in PyTorch vmaster (1.4.0a0+bb32d52 ))")， [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.8)") ]

```
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_](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.8)") _or_ [_pathlib.Path_](https://docs.python.org/3/library/pathlib.html#pathlib.Path "(in Python v3.8)")) – Path to audio file

Returns

An output tensor of size &lt;cite&gt;[C x L]&lt;/cite&gt; or &lt;cite&gt;[L x C]&lt;/cite&gt; 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](https://pytorch.org/docs/stable/tensors.html#torch.Tensor "(in PyTorch vmaster (1.4.0a0+bb32d52 ))"), [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.8)")]

* * *

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

&lt;cite&gt;save_encinfo&lt;/cite&gt; 的便捷功能。

Parameters

*   **filepath** ([_str_](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.8)")) – Path to audio file

*   **src**  ([_torch张量_](https://pytorch.org/docs/stable/tensors.html#torch.Tensor "(in PyTorch vmaster (1.4.0a0+bb32d52 ))"))–形状为 &lt;cite&gt;[C x L]&lt;/cite&gt; 或 &lt;cite&gt;[L x C]的输入 2D 张量 ]&lt;/cite&gt; 其中 L 是音频帧数，C 是声道数

*   **sample_rate**  ([_int_](https://docs.python.org/3/library/functions.html#int "(in Python v3.8)"))–整数，它是音频的采样率(如文件的元数据中列出）

*   **精度** ([_int_](https://docs.python.org/3/library/functions.html#int "(in Python v3.8)"))–位精度(默认值：`16`）

*   **channels_first**  ([_bool_](https://docs.python.org/3/library/functions.html#bool "(in Python v3.8)"))–首先设置通道，或先设置长度。 (默认：`True`）

* * *

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

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

Parameters

*   **filepath** ([_str_](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.8)")) – Path to audio file

*   **src** ([_torch.Tensor_](https://pytorch.org/docs/stable/tensors.html#torch.Tensor "(in PyTorch vmaster (1.4.0a0+bb32d52 ))")) – An input 2D tensor of shape &lt;cite&gt;[C x L]&lt;/cite&gt; or &lt;cite&gt;[L x C]&lt;/cite&gt; where L is the number of audio frames, C is the number of channels

*   **channels_first** ([_bool_](https://docs.python.org/3/library/functions.html#bool "(in Python v3.8)")) – 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_](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.8)")_,_ _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 中的&lt;cite&gt;精度&lt;/cite&gt;相同

*   压缩(浮动），有损格式的压缩，默认压缩为 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

```