叛逆的猴子 · 纪念辛亥革命110周年特别版 | ...· 2 月前 · |
不羁的电影票 · 2022年 日语系大事记· 4 月前 · |
谦和的火柴 · 韩剧《九尾狐传》涉抄袭,韩剧穿中国汉服,长白 ...· 5 月前 · |
深情的奔马 · AeroFan字幕组 AOA ...· 1 年前 · |
粗眉毛的松鼠 · 王鹤棣代言费_王鹤棣代言费2022_王鹤棣代 ...· 1 年前 · |
我是一个新的学习者音频编辑库- 派杜布 。我想改变一些音频文件的播放速度使用Pydub(例如. .wav/mp3格式文件),但我不知道如何制作它。我看到的唯一能够解决这个问题的模块是 effect.py中的加速比模块 。然而,对于我该如何称呼它没有任何解释。
有人能解释一下在Pydub如何完成这个任务吗?非常感谢!
(一个相关的问题: Pydub -如何在不改变播放速度的情况下改变帧速率 ,但我想做的是在不改变音频质量的情况下改变播放速度。)
发布于 2020-03-02 19:00:35
from pydub import AudioSegment
from pydub import effects
root = r'audio.wav'
velocidad_X = 1.5 # No puede estar por debajo de 1.0
sound = AudioSegment.from_file(root)
so = sound.speedup(velocidad_X, 150, 25)
so.export(root[:-4] + '_Out.mp3', format = 'mp3')
发布于 2019-12-10 14:53:36
这可以使用吡咯烷酮包,这需要橡皮筋库,可以拉伸音频,同时保持音高和高质量。我使用brew在MacOS上安装了这个库,在Ubuntu上也安装了apt。对于极限拉伸,请查看PaulStretch
brew install rubberband
这简单地适用于librosa包。
import librosa
import pyrubberband
import soundfile as sf
y, sr = librosa.load(filepath, sr=None)
y_stretched = pyrubberband.time_stretch(y, sr, 1.5)
sf.write(analyzed_filepath, y_stretched, sr, format='wav')
为了使吡咯烷酮直接与来自pydub的AudioSegment一起工作,而不使用librosa,我篡改了这个函数:
def change_audioseg_tempo(audiosegment, tempo, new_tempo):
y = np.array(audiosegment.get_array_of_samples())
if audiosegment.channels == 2:
y = y.reshape((-1, 2))
sample_rate = audiosegment.frame_rate
tempo_ratio = new_tempo / tempo
print(tempo_ratio)
y_fast = pyrb.time_stretch(y, sample_rate, tempo_ratio)
channels = 2 if (y_fast.ndim == 2 and y_fast.shape[1] == 2) else 1
y = np.int16(y_fast * 2 ** 15)
new_seg = pydub.AudioSegment(y.tobytes(), frame_rate=sample_rate, sample_width=2, channels=channels)
return new_seg
发布于 2020-07-03 12:24:33
我知道已经很晚了,但我编写了一个程序来将mp3转换成不同的播放速度。
首先,转换.MP3 -> .Wav,因为PYRubberBand只支持.wav格式。然后在时间和音高的同时,避免花栗鼠效应。
import wave
import sys
from pydub import AudioSegment
#sound = AudioSegment.from_file("deviprasadgharpehai.mp3")
sound = AudioSegment.from_mp3(sys.argv[1])
sound.export("file.wav", format="wav")
print(sys.argv[1])
import soundfile as sf
import pyrubberband as pyrb
y, sr = sf.read("file.wav")
# Play back at extra low speed
y_stretch = pyrb.time_stretch(y, sr, 0.5)
# Play back extra low tones
y_shift = pyrb.pitch_shift(y, sr, 0.5)
sf.write("analyzed_filepathX5.wav", y_stretch, sr, format='wav')
sound = AudioSegment.from_wav("analyzed_filepathX5.wav")
sound.export("analyzed_filepathX5.mp3", format="mp3")
# Play back at low speed
y_stretch = pyrb.time_stretch(y, sr, 0.75)
# Play back at low tones
y_shift = pyrb.pitch_shift(y, sr, 0.75)
sf.write("analyzed_filepathX75.wav", y_stretch, sr, format='wav')
sound = AudioSegment.from_wav("analyzed_filepathX75.wav")
sound.export("analyzed_filepathX75.mp3", format="mp3")
# Play back at 1.5X speed
y_stretch = pyrb.time_stretch(y, sr, 1.5)
# Play back two 1.5x tones
y_shift = pyrb.pitch_shift(y, sr, 1.5)
sf.write("analyzed_filepathX105.wav", y_stretch, sr, format='wav')
sound = AudioSegment.from_wav("analyzed_filepathX105.wav")
sound.export("analyzed_filepathX105.mp3", format="mp3")
# Play back at same speed
y_stretch = pyrb.time_stretch(y, sr, 1)
不羁的电影票 · 2022年 日语系大事记 4 月前 |