快捷方式

AudioEffector

class torchaudio.io.AudioEffector(effect: Optional[str] = None, format: Optional[str] = None, *, encoder: Optional[str] = None, codec_config: Optional[CodecConfig] = None, pad_end: bool = True)[source]

將各種濾波器和/或編解碼器應用於波形。

版本 2.1 新增功能。

引數:
  • effect (strNone, 可選) – 濾波器表示式,或設定為 None 表示不應用濾波器。有關濾波器語法的詳細資訊,請參閱 https://ffmpeg.org/ffmpeg-filters.html#Audio-Filters

  • format (strNone, 可選) – 提供時,將音訊編碼為相應的格式。預設值:None

  • encoder (strNone, 可選) – 提供時,覆蓋 format 所使用的編碼器。預設值:None

  • codec_config (CodecConfigNone, 可選) – 提供時,配置編碼編解碼器。應與 format 選項一起提供。

  • pad_end (bool, 可選) – 啟用時,如果應用效果/編解碼器後波形變短,則在末尾填充靜音。

示例 - 基本用法

要使用 AudioEffector,首先使用一組 effectformat 來例項化它。

>>> # instantiate the effector
>>> effector = AudioEffector(effect=..., format=...)

然後,使用 apply()stream() 方法來應用它們。

>>> # Apply the effect to the whole waveform
>>> applied = effector.apply(waveform, sample_rate)
>>> # Apply the effect chunk-by-chunk
>>> for chunk in effector.stream(waveform, sample_rate):
>>>    ...
示例 - 應用效果

請參閱 https://ffmpeg.org/ffmpeg-filters.html#Filtergraph-description 瞭解濾波器描述概述,並參閱 https://ffmpeg.org/ffmpeg-filters.html#toc-Audio-Filters 瞭解可用濾波器列表。

Tempo (速度) - https://ffmpeg.org/ffmpeg-filters.html#atempo

>>> AudioEffector(effect="atempo=1.5")

Echo (回聲) - https://ffmpeg.org/ffmpeg-filters.html#aecho

>>> AudioEffector(effect="aecho=0.8:0.88:60:0.4")

Flanger (鑲邊) - https://ffmpeg.org/ffmpeg-filters.html#flanger

>>> AudioEffector(effect="aflanger")

Vibrato (顫音) - https://ffmpeg.org/ffmpeg-filters.html#vibrato

>>> AudioEffector(effect="vibrato")

Tremolo (震音) - https://ffmpeg.org/ffmpeg-filters.html#tremolo

>>> AudioEffector(effect="vibrato")

您也可以同時應用多個效果。

>>> AudioEffector(effect="")
示例 - 應用編解碼器

可以使用 format 引數應用編解碼器。format 可以是音訊格式或容器格式。如果容器格式支援多個編碼器,可以使用 encoder 引數指定。

Wav 格式(未應用壓縮,但樣本轉換為 16 位有符號整數)

>>> AudioEffector(format="wav")

帶預設編碼器的 Ogg 格式

>>> AudioEffector(format="ogg")

帶 vorbis 編碼器的 Ogg 格式

>>> AudioEffector(format="ogg", encoder="vorbis")

帶 opus 編碼器的 Ogg 格式

>>> AudioEffector(format="ogg", encoder="opus")

帶 opus 編碼器的 Webm 格式

>>> AudioEffector(format="webm", encoder="opus")
示例 - 應用帶配置的編解碼器

參考:https://trac.ffmpeg.org/wiki/Encode/MP3

帶預設配置的 MP3

>>> AudioEffector(format="mp3")

帶可變位元率的 MP3

>>> AudioEffector(format="mp3", codec_config=CodecConfig(qscale=5))

帶固定位元率的 MP3

>>> AudioEffector(format="mp3", codec_config=CodecConfig(bit_rate=32_000))
使用 AudioEffector 的教程
AudioEffector Usages

AudioEffector 用法

AudioEffector 用法
Audio Data Augmentation

音訊資料增強

音訊資料增強

方法

apply

AudioEffector.apply(waveform: Tensor, sample_rate: int, output_sample_rate: Optional[int] = None) Tensor[source]

將效果和/或編解碼器應用於整個張量。

引數:
  • waveform (Tensor) – 輸入波形。形狀:(time, channel)

  • sample_rate (int) – 輸入波形的取樣率。

  • output_sample_rate (intNone, 可選) – 輸出取樣率。如果提供,將覆蓋輸出取樣率。否則,結果張量將被重新取樣以具有與輸入相同的取樣率。預設值:None

返回:

結果張量。形狀:(time, channel)。幀數可能與輸入的幀數不同。

返回型別:

Tensor

stream

AudioEffector.stream(waveform: Tensor, sample_rate: int, frames_per_chunk: int, output_sample_rate: Optional[int] = None) Iterator[Tensor][source]

逐塊將效果和/或編解碼器應用於給定張量。

引數:
  • waveform (Tensor) – 輸入波形。形狀:(time, channel)

  • sample_rate (int) – 波形的取樣率。

  • frames_per_chunk (int) – 一次返回的幀數。

  • output_sample_rate (intNone, 可選) – 輸出取樣率。如果提供,將覆蓋輸出取樣率。否則,結果張量將被重新取樣以具有與輸入相同的取樣率。預設值:None

返回:

一系列處理過的塊。形狀:(time, channel),其中幀數與 frames_per_chunk 匹配,除了最後一個塊可能更短。

返回型別:

Iterator[Tensor]

文件

訪問 PyTorch 開發者文件大全

檢視文件

教程

獲取針對初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並解答您的疑問

檢視資源