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)[源代码]¶
已弃用
警告
此类已从 2.8 版本开始弃用。它将在 2.9 版本中移除。此弃用是由于一项大型重构工作,旨在将 TorchAudio 迁移到维护阶段。有关更多信息,请参阅 https://github.com/pytorch/audio/issues/3902。
应用各种滤波器和/或编解码器到波形。
2.1 版本新增。
- 参数 (Args)
- effect (str 或 None, 可选): 滤波器表达式或
None
表示不应用任何滤波器。 有关滤波器语法的详细信息,请参阅 https://ffmpeg.net.cn/ffmpeg-filters.html#Audio-Filters。
- format (str 或 None, 可选): 当提供时,将音频编码为
相应的格式。默认值:
None
。- encoder (str 或 None, 可选): 当提供时,覆盖
format
使用的编码器。 默认值:
None
。- codec_config (CodecConfig 或 None, 可选): 当提供时,配置编码编解码器。
应与
format
选项一起提供。- pad_end (bool, 可选): 当启用时,并且如果应用
滤波器/编解码器后波形变短,则在末尾填充静音。
- effect (str 或 None, 可选): 滤波器表达式或
- 示例 - 基本用法
要使用
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.net.cn/ffmpeg-filters.html#Filtergraph-description,有关可用滤波器列表,请参阅 https://ffmpeg.net.cn/ffmpeg-filters.html#toc-Audio-Filters。
Tempo - https://ffmpeg.net.cn/ffmpeg-filters.html#atempo
>>> AudioEffector(effect="atempo=1.5")
Echo - https://ffmpeg.net.cn/ffmpeg-filters.html#aecho
>>> AudioEffector(effect="aecho=0.8:0.88:60:0.4")
Flanger - https://ffmpeg.net.cn/ffmpeg-filters.html#flanger
>>> AudioEffector(effect="aflanger")
Vibrato - https://ffmpeg.net.cn/ffmpeg-filters.html#vibrato
>>> AudioEffector(effect="vibrato")
Tremolo - https://ffmpeg.net.cn/ffmpeg-filters.html#tremolo
>>> AudioEffector(effect="vibrato")
您还可以一次应用多个滤波器。
>>> AudioEffector(effect="")
- 示例 - 应用编解码器
可以使用
format
参数应用编解码器。format
可以是音频格式或容器格式。如果容器格式支持多种编码器,则可以使用encoder
参数指定。Wav 格式(不应用压缩,但样本被转换为 16 位有符号整数)
>>> AudioEffector(format="wav")
Ogg 格式,默认编码器
>>> AudioEffector(format="ogg")
Ogg 格式,带 vorbis
>>> AudioEffector(format="ogg", encoder="vorbis")
Ogg 格式,带 opus
>>> AudioEffector(format="ogg", encoder="opus")
Webm 格式,带 opus
>>> 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
的教程