Я пытаюсь получить данные из WAV-файла для выполнения БПФ, а затем использовать это, чтобы узнать частоту воспроизводимой ноты. Я узнал, как открыть файл, но я не могу понять из онлайн-документации, как получить данные в массив или список для выполнения операций над ним. Ниже приведен код, который я написал до сих пор.Как я могу получить данные из .wav-файла в массив или список для построения?
import wave
harp=wave.open('/Users/williamweiss2/Desktop/Test 2/harp.wav','r')
print("Frame rate of Harp sample is",harp.getframerate())
print(harp) #I thought that opening the file would automatically make an array.
Большое спасибо за ваши предложения.
http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.io. wavfile.read.html –
Обратите внимание, что только FFT не является надежной функцией для определения частоты тона воспроизводимой музыкальной ноты. Шаг является психоакустическим и, следовательно, может сильно отличаться от частоты спектра. Возможно, попробуйте алгоритм оценки шага, используя взвешенную автокорреляцию, ASDF или AMDF. – hotpaw2
@ hotpaw2 Спасибо за это. Я делаю это для класса, и в последнем назначении мы преобразовали содержимое файла .txt с использованием FFT, а затем зная скорость дискретизации, количество выборок и изменение частоты между гармониями, мы оценили шаг. Я пытаюсь сделать то же самое здесь. Я знаю, что могу получить количество выборок в записи и частоту дискретизации, но я изо всех сил пытаюсь изолировать данные в форме, в которой я могу их БПФ и строить коэффициенты. Думаешь, я на правильном пути? –