Как синхронизировать обход массива c numpy с воспроизведением musi c? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть массив numpy, в котором есть numpy массивы со значениями для каждой секунды файла c musi ... так что в основном, если у меня есть 372-секундный файл c, у меня есть numpy массив с 372 numpy массивами внутри него, и в каждом из них у меня есть 50 значений с плавающей запятой ... Я хочу пройти массив numpy так, чтобы каждую секунду я находился в массиве, который имеет значения, выбранные из песни .. . Как мне синхронизировать c обход массива вверх и воспроизведение c музыки? Я использую модули soundfile и sounddevice для чтения, выборки и воспроизведения файла musi c ... Вот мой код до сих пор, если кто-то захочет взглянуть на него:

import soundfile as sf
import sounddevice as sd
import math

import numpy as np

data, samplerate = sf.read('some_music_file.wav', dtype='int16')

frequencies = np.abs(np.fft.fft(data))

frequencies = np.max(frequencies, axis=1)

frequencies /= np.max(frequencies)
frequencies *= 255

frequencies = np.concatenate((frequencies, np.zeros((((math.floor(len(frequencies)/samplerate)+1)*samplerate)-len(frequencies)))))

samples = len(frequencies)

chunks = np.split(frequencies, samples/samplerate)

tempchunks = []
for chunk in chunks:
    tempchunk = []
    for idx in range(0, samplerate, int(samplerate/50)):
        tempchunk.append(chunk[idx])
    tempchunks.append(np.array(tempchunk))
chunks = np.array(tempchunks)

Любая помощь по этому поводу был бы очень признателен!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...