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 (str 或 None, 可選) – 濾波器表示式,或設定為
None表示不應用濾波器。有關濾波器語法的詳細資訊,請參閱 https://ffmpeg.org/ffmpeg-filters.html#Audio-Filters。format (str 或 None, 可選) – 提供時,將音訊編碼為相應的格式。預設值:
None。encoder (str 或 None, 可選) – 提供時,覆蓋
format所使用的編碼器。預設值:None。codec_config (CodecConfig 或 None, 可選) – 提供時,配置編碼編解碼器。應與
format選項一起提供。pad_end (bool, 可選) – 啟用時,如果應用效果/編解碼器後波形變短,則在末尾填充靜音。
- 示例 - 基本用法
要使用
AudioEffector,首先使用一組effect和format來例項化它。>>> # 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 的教程