Cách đọc nhiều tệp wav trong Python

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ệ int

Tỷ lệ mẫu của tệp WAV

dữ liệu mảng numpy

Dữ 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 sf
file = "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 rate
for 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

Chủ Đề