audio¶
- class janim.items.audio.Audio(file_path: str = '', begin: float = -1, end: float = -1, **kwargs)¶
基类:
object音频
可以配置
audio_channels选项控制读取的声道数(默认为2)另见:
Config- audio_cache_map: dict[tuple, tuple[ndarray, int, str, str]] = {}¶
- copy() Self¶
- set_samples(data: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) None¶
- read(file_path: str, begin: float = -1, end: float = -1) Self¶
从文件中读取音频
可以指定
begin和end来截取音频的一部分
- sample_count() int¶
所有采样点的数量
- duration() float¶
持续时间
- clip(begin: float = 0, end: float = -1) Self¶
裁剪音频
保留
begin到end之间的部分若
begin缺省,则表示从最开始若
end缺省(-1),则表示到最末尾
- mul(value: float | Iterable[float]) Self¶
乘以给定的
value,value可以含有多个元素(比如一个列表)例如:
audio.mul(0.5)可以使音高减半audio.mul([1, 0])可以使开始时最强,结束时最弱audio.mul(np.sin(np.linspace(0, 2 * np.pi, audio.sample_count())))可以使音高随时间乘以 sin 函数的一个周期
- fade_in(duration: float) Self¶
应用
duration秒的淡入
- fade_out(duration: float) Self¶
应用
duration秒的淡出
- recommended_ranges(*, amplitude_threshold_ratio: float = 0.02, gap_duration: float = 0.15) Generator[tuple[float, float], None, None]¶
得到若干个可用区段
(start, end),一般用于配音音频,也就是会忽略没声音的部分,得到有声音的区段的起止时间与
recommended_range()的区别是,该方法得到的是若干个区段, 举个例子,如果在讲了一句话后停了一会,再接着讲,那么前后就会被分成两段amplitude_threshould_ratio: 振幅低于该比率的就认为是没声音的gap_duration: 如果没声音的时长大于该时间,则将前后分段
- recommended_range(*, amplitude_threshold_ratio: float = 0.02) tuple[float, float] | None¶
得到可用区段
(start, end),一般用于配音音频,也就是会忽略没声音的部分,得到有声音的区段的起止时间与
recommended_ranges()的区别是,该方法得到的是最开始到最末尾的整个区段amplitude_threshould_ratio: 振幅低于该比率的就认为是没声音的