Có đọc dữ liệu dưới dạng ánh xạ bộ nhớ hay không [mặc định. Sai]. Không tương thích với một số độ sâu bit; . Chỉ được sử dụng trên các tệp thực
Mới trong phiên bản 0. 12. 0
Trả về . tỷ lệ intTỷ lệ mẫu của tệp WAV
dữ liệu mảng numpyDữ liệu được đọc từ tệp WAV. Kiểu dữ liệu được xác định từ tệp; . Dữ liệu là 1-D cho WAV 1 kênh hoặc 2-D của hình dạng [Nsamples, Nchannels] nếu không. Nếu đầu vào dạng tệp không có bộ mô tả tệp giống C [e. g. ,
file = "your_source_file.wav"49] được thông qua, điều này sẽ không thể ghi được
ghi chú
Các kiểu dữ liệu phổ biến. [1]
định dạng WAV
tối thiểu
tối đa
kiểu chữ NumPy
dấu phẩy động 32 bit
-1. 0
+1. 0
phao32
PCM số nguyên 32 bit
-2147483648
+2147483647
int32
PCM số nguyên 24 bit
-2147483648
+2147483392
int32
PCM số nguyên 16 bit
-32768
+32767
int16
PCM số nguyên 8 bit
0
255
uint8
Các tệp WAV có thể chỉ định độ sâu bit tùy ý và chức năng này hỗ trợ đọc bất kỳ độ sâu PCM số nguyên nào từ 1 đến 64 bit. Dữ liệu được trả về ở loại int numpy tương thích nhỏ nhất, ở định dạng căn trái. 8 bit trở xuống không được ký, trong khi 9 bit trở lên được ký
Ví dụ: dữ liệu 24 bit sẽ được lưu trữ dưới dạng int32, với MSB của dữ liệu 24 bit được lưu trữ tại MSB của int32 và thông thường, byte ít quan trọng nhất là 0x00. [Tuy nhiên, nếu một tệp thực sự chứa dữ liệu vượt quá độ sâu bit được chỉ định, thì các bit đó cũng sẽ được đọc và xuất ra. [2]]
Dấu hiệu và biện minh bit này phù hợp với định dạng bên trong gốc của WAV, cho phép ánh xạ bộ nhớ của các tệp WAV sử dụng 1, 2, 4 hoặc 8 byte cho mỗi mẫu [vì vậy không thể ánh xạ bộ nhớ vào các tệp 24 bit, nhưng 32 bit thì có thể]
IEEE float PCM ở định dạng 32 hoặc 64 bit được hỗ trợ, có hoặc không có mmap. Các giá trị vượt quá [-1, +1] không bị cắt bớt
PCM phi tuyến tính [mu-law, A-law] không được hỗ trợ
Người giới thiệu
[ 1 ]
Tập đoàn IBM và Tập đoàn Microsoft, “Thông số kỹ thuật dữ liệu và giao diện lập trình đa phương tiện 1. 0”, phần “Định dạng dữ liệu của mẫu”, tháng 8 năm 1991 http. //www. phương tiện xúc giác. com/info/MCI_Control_Info. html
[ 2 ]
Adobe Systems Incorporated, “Hướng dẫn sử dụng Adobe Audition 3”, phần “Định dạng tệp âm thanh. 24-bit Packed Int [loại 1, 20-bit]”, 2007
import librosa import soundfile as sffile = "your_source_file.wav"x, sr = librosa.load[file, sr=None]you will get x as audio file in numpy array and sr as original sampling ratefor i in range[0, len[x],5 * sr]y = x[5 * sr * i: 5 * sr *[i+1]]sf.write["dest_audio"+str[i]+".wav", y, sr]tôi có một. wav dài vài phút mà tôi muốn chia thành 10 giây khác nhau. tập tin wav
Đây là mã python của tôi cho đến nay
import wave import math def main[filename, time]: read = wave.open[filename, 'r'] #get sample rate frameRate = read.getframerate[] #get number of frames numFrames = read.getnframes[] #get duration duration = numFrames/frameRate #get all frames as a string of bytes frames = read.readframes[numFrames] #get 1 frame as a string of bytes oneFrame = read.readframes[1] #framerate*time == numframesneeded numFramesNeeded=frameRate*time #numFramesNeeded*oneFrame=numBytes numBytes = numFramesNeeded*oneFrame #splice frames to get a list strings each representing a 'time' length #wav file x=0 wavList=[] while x+time