Последние несколько дней я изучал чтение wav-файлов для проекта аудио-визуализатора, который я делаю в python. Проект идет хорошо, но у меня есть несколько вопросов о данных, которые возвращаются при чтении wavfile и возвращении массива комплексных чисел из np.fft.fft ()
Так что просто начните с того, что комплексное число представляет? Реальная и мнимая часть?
Мой реальный вопрос здесь: мне также сказали, что частота является индексной позицией комплексного числа, это правда?
После загрузки аудиофайла и запуска его через FFT, я для Например, можно получить массив с длиной 10591232, действительно большое число, мой мыслительный процесс состоит в том, чтобы взять это число и разделить его на частоту дискретизации aud ios, чтобы получить список частот, используемых в секунду
Это неправильное мышление? если так, что должно быть сделано вместо? Я опубликую свой код ниже, чтобы также показать свое мышление. Извините за такой загруженный вопрос, который я искал в бесчисленных сообщениях StackOverflow и получил много разных ответов. Еще раз спасибо за чтение!
sample_rate, data = wavfile.read(sound_file)
channel_num = data.shape[1]
audio_length = data.shape[0] / sample_rate
time = np.linspace(0., audio_length, data.shape[0])
frequencies = np.fft.fft(time)
frequencies_per_second = np.array_split(frequencies, len(frequencies) / sample_rate)
pprint(len(frequencies_per_second[1]))
print(len(frequencies))