捷徑

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, optional) – 濾波器表達式或 None 表示不套用任何濾波器。有關濾波器語法的詳細資訊,請參閱 https://ffmpeg.dev.org.tw/ffmpeg-filters.html#Audio-Filters

  • format (strNone, optional) – 如果提供,則將音訊編碼為對應的格式。預設值:None

  • encoder (strNone, optional) – 如果提供,則覆寫 format 使用的編碼器。預設值:None

  • codec_config (CodecConfigNone, optional) – 如果提供,則配置編碼解碼器。應與 format 選項一起提供。

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

範例 - 基本用法

若要使用 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.dev.org.tw/ffmpeg-filters.html#Filtergraph-description,有關可用濾波器的列表,請參閱 https://ffmpeg.dev.org.tw/ffmpeg-filters.html#toc-Audio-Filters

Tempo - https://ffmpeg.dev.org.tw/ffmpeg-filters.html#atempo

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

Echo - https://ffmpeg.dev.org.tw/ffmpeg-filters.html#aecho

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

Flanger - https://ffmpeg.dev.org.tw/ffmpeg-filters.html#flanger

>>> AudioEffector(effect="aflanger")

Vibrato - https://ffmpeg.dev.org.tw/ffmpeg-filters.html#vibrato

>>> AudioEffector(effect="vibrato")

Tremolo - https://ffmpeg.dev.org.tw/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) – 輸入波形。形狀:(時間, 通道)

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

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

返回值:

產生的張量。形狀:(時間, 通道)。影格數可能與輸入的不同。

返回類型:

Tensor

stream

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

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

參數:
  • waveform (Tensor) – 輸入波形。形狀:(時間, 通道)

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

  • frames_per_chunk (int) – 每次返回的影格數。

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

返回值:

處理後的塊序列。形狀:(時間, 通道),其中影格數與 frames_per_chunk 匹配,但最後一個塊除外,它可能較短。

返回類型:

Iterator[Tensor]

文件

Access comprehensive developer documentation for PyTorch

View Docs

教學

Get in-depth tutorials for beginners and advanced developers

View Tutorials

資源

Find development resources and get your questions answered

View Resources