Python Ошибка записи манипуляции звуком Librosa - PullRequest
0 голосов
/ 31 января 2020

В моем коде Python я хочу изменить некоторые свойства звука, такие как высота, темп, величина и т. Д. Сделанная мной операция похожа на следующий код

import librosa
import scipy
from pydub import AudioSegment
ses ="abb.wav"


x,sr = librosa.load(ses)
import IPython.display as ipd
import numpy as np


print('samples = {}'.format(len(x)))
print('sample rate = {}'.format(sr))
print('seconds = {}'.format(len(x) / sr))



y_fast = librosa.effects.time_stretch(x,0.5)

print('seconds = {}'.format(len(y_fast) / sr))



input_length = len(y_fast)
streching = librosa.effects.time_stretch(y_fast.astype('float'), 1.65)
if len(streching) > input_length:
    streching = streching[:input_length]
else:
    streching = np.pad(streching, (0, max(0, input_length - len(streching))), "constant")


n=4                        
factor=2**(1.0 * n / 12.0)       

stretching=streching/factor

Audio(streching, rate=sr)


librosa.output.write_wav('aaaa.mp3', streching, sr)

Без вызова операции растяжения, я успешно проигрываю звук с помощью Audio () и записываю его в файл. С другой стороны, если я вызываю операции растяжения, я не могу успешно записать звуковые данные в виде файла WAV (он записан как WAV, но не может быть воспроизведен по-настоящему). Тем не менее, аудио работает правильно для этого растяжения. Есть ли какая-либо причина, по которой я не могу правильно записать его как .wav, когда я использую растяжение звука, или я делаю что-то не так? Заранее спасибо, король привет. Cengizhan YAPICIOĞLU

...