module python khác nhau để đọc wav:
Có ít nhất các thư viện sau đây để đọc tập tin âm thanh sóng:
Ví dụ đơn giản nhất:
Đây là một cách đơn giản ví dụ với Pysoundfile:
import soundfile as sf
data, samplerate = sf.read('existing_file.wav')
Format của đầu ra:
Cảnh báo, các dữ liệu không phải lúc nào trong các định dạng tương tự, mà phụ thuộc vào thư viện. Ví dụ:
from scikits import audiolab
from scipy.io import wavfile
from sys import argv
for filetest in argv[1:]:
[x, fs, nbBits] = audiolab.wavread(filePath)
print '\nReading with scikits.audiolab.wavread: ', x
[fs, x] = wavfile.read(filetest)
print '\nReading with scipy.io.wavfile.read: ', x
Reading với scikits.audiolab.wavread: [0. 0. 0. ..., -0,00097656 -0,00079346 -0,00097656] Reading với scipy.io.wavfile.read: [0 0 0 ..., -32 -26 -32]
PySoundFile và Audiolab trả về float giữa -1 và 1 (như matab, đó là quy ước cho tín hiệu âm thanh). Scipy và các số nguyên trả về sóng, có thể được chuyển đổi theo phao theo số bit mã hóa.
Ví dụ:
from scipy.io.wavfile import read as wavread
[samplerate, x] = wavread(audiofilename) # x is a numpy array of integer, representing the samples
# scale to -1.0 -- 1.0
if x.dtype == 'int16':
nb_bits = 16 # -> 16-bit wav files
elif x.dtype == 'int32':
nb_bits = 32 # -> 32-bit wav files
max_nb_bit = float(2 ** (nb_bits - 1))
samples = x/(max_nb_bit + 1.0) # samples is a numpy array of float representing the samples
Nó thực sự khó hiểu khi một người khác với tên của tôi gửi một câu hỏi mà tôi đang yêu cầu, nhưng tôi không có bộ nhớ làm như vậy bản thân mình :) – Roman
Điều gì trên trái đất là số lục giác? – glglgl
@glglgl Có lẽ không phải điều có nghĩa là: https://en.wikipedia.org/wiki/Hexagonal_number :-) – JakeD