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<=duration:
        curFrame= frames[x:x+time]
        x=x+time
        wavList.append(curFrame)

In ấn sản lượng

file = "your_source_file.wav"
50

file = "your_source_file.wav"
51

Tôi biết rằng đây là một danh sách các khung. Làm cách nào để tạo một tệp wav cho từng thành phần trong danh sách này (tệp đầu tiên. wav sẽ là

file = "your_source_file.wav"
52? . tập tin wav

CHỈNH SỬA. Đây là một câu hỏi trùng lặp về Cách ghép một tệp âm thanh (định dạng wav) thành các mối nối 1 giây trong python?

Các tệp âm thanh là một phương tiện phổ biến để truyền thông tin. Vì vậy, hãy xem cách làm việc với các tệp âm thanh bằng Python. Python cung cấp một mô-đun có tên là pydub để làm việc với các tệp âm thanh. pydub là một thư viện Python chỉ hoạt động với. tập tin wav. Bằng cách sử dụng thư viện này, chúng tôi có thể phát, tách, hợp nhất, chỉnh sửa. tập tin âm thanh wav

Cài đặt

Mô-đun này không được tích hợp sẵn với Python. Để cài đặt, gõ lệnh dưới đây trong thiết bị đầu cuối

________số 8

Sau đây là một số chức năng có thể được thực hiện bởi pydub

  1. Đang phát tệp âm thanh
  2. Chúng tôi có thể nhận được một số thông tin nhất định của tệp như kênh chiều dài
  3. Tăng/Giảm âm lượng đã cho. tập tin wav
  4. Hợp nhất hai hoặc nhiều tệp âm thanh
  5. Xuất tệp âm thanh
  6. Tách một tập tin âm thanh

Để truy cập các tệp âm thanh đầu vào, hãy nhấp vào đây. Hãy xem mã cho một số chức năng của thư viện pydub

1) Phát tệp âm thanh. Điều này được thực hiện bằng cách sử dụng phương thức play()

Python3




file = "your_source_file.wav"
55

file = "your_source_file.wav"
56
file = "your_source_file.wav"
54
file = "your_source_file.wav"
58
file = "your_source_file.wav"
59

file = "your_source_file.wav"
56
file = "your_source_file.wav"
61
file = "your_source_file.wav"
58

22050
1
2
17106
60000
50
1

 


22050
1
2
17106
60000
50
2


22050
1
2
17106
60000
50
3


22050
1
2
17106
60000
50
4


22050
1
2
17106
60000
50
5

22050
1
2
17106
60000
50
6

22050
1
2
17106
60000
50
7

22050
1
2
17106
60000
50
8

22050
1
2
17106
60000
50
6
file = "your_source_file.wav"
80
file = "your_source_file.wav"
81

file = "your_source_file.wav"
82
file = "your_source_file.wav"
83

22050
1
2
17106
60000
50
6
file = "your_source_file.wav"
85
file = "your_source_file.wav"
86

 

file = "your_source_file.wav"
87

file = "your_source_file.wav"
88

đầu ra

https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20200811180636/Mẫu. làn sóng

2) Biết về. tập tin wav. đối với điều này, chúng tôi sẽ sử dụng các thuộc tính của đối tượng tệp âm thanh

Python3




file = "your_source_file.wav"
89

file = "your_source_file.wav"
56
file = "your_source_file.wav"
54
file = "your_source_file.wav"
58
file = "your_source_file.wav"
59

 

file = "your_source_file.wav"
554


22050
1
2
17106
60000
50
5

22050
1
2
17106
60000
50
6

22050
1
2
17106
60000
50
7

22050
1
2
17106
60000
50
8

22050
1
2
17106
60000
50
6
file = "your_source_file.wav"
80
file = "your_source_file.wav"
81
file = "your_source_file.wav"
83

22050
1
2
17106
60000
50
6
file = "your_source_file.wav"
85
file = "your_source_file.wav"
86

 

file = "your_source_file.wav"
566

file = "your_source_file.wav"
567
file = "your_source_file.wav"
568
file = "your_source_file.wav"
569
file = "your_source_file.wav"
540

file = "your_source_file.wav"
541

 

file = "your_source_file.wav"
542

file = "your_source_file.wav"
567
file = "your_source_file.wav"
544

file = "your_source_file.wav"
545

 

file = "your_source_file.wav"
546

file = "your_source_file.wav"
567
file = "your_source_file.wav"
548

file = "your_source_file.wav"
549

 

file = "your_source_file.wav"
580

file = "your_source_file.wav"
567
file = "your_source_file.wav"
582

file = "your_source_file.wav"
583

 

 

file = "your_source_file.wav"
584

file = "your_source_file.wav"
567
file = "your_source_file.wav"
586
file = "your_source_file.wav"
587
file = "your_source_file.wav"
86

file = "your_source_file.wav"
589

 

file = "your_source_file.wav"
590

file = "your_source_file.wav"
567
file = "your_source_file.wav"
568
file = "your_source_file.wav"
593
file = "your_source_file.wav"
540

file = "your_source_file.wav"
595

 

file = "your_source_file.wav"
596

file = "your_source_file.wav"
597

file = "your_source_file.wav"
598

file = "your_source_file.wav"
596

file = "your_source_file.wav"
560

22050
1
2
17106
60000
50
6
file = "your_source_file.wav"
562
file = "your_source_file.wav"
563
file = "your_source_file.wav"
86

file = "your_source_file.wav"
567
file = "your_source_file.wav"
566

đầu ra


22050
1
2
17106
60000
50

3) Tăng/Giảm dung lượng của file. Bằng cách sử dụng toán tử '+' và '-'

Python3




file = "your_source_file.wav"
89

file = "your_source_file.wav"
58
file = "your_source_file.wav"
54

file = "your_source_file.wav"
56
file = "your_source_file.wav"
61
file = "your_source_file.wav"
58

22050
1
2
17106
60000
50
1

 


22050
1
2
17106
60000
50
5

22050
1
2
17106
60000
50
file = "your_source_file.wav"
616

22050
1
2
17106
60000
50
8

22050
1
2
17106
60000
50
6
file = "your_source_file.wav"
80
file = "your_source_file.wav"
81


22050
1
2
17106
60000
50
01
file = "your_source_file.wav"
83

22050
1
2
17106
60000
50
6
file = "your_source_file.wav"
85
file = "your_source_file.wav"
86


22050
1
2
17106
60000
50
06


22050
1
2
17106
60000
50
07

22050
1
2
17106
60000
50
6

22050
1
2
17106
60000
50
5

22050
1
2
17106
60000
50
10

22050
1
2
17106
60000
50
11

 


22050
1
2
17106
60000
50
12


22050
1
2
17106
60000
50
13

22050
1
2
17106
60000
50
6

22050
1
2
17106
60000
50
5

22050
1
2
17106
60000
50
16

22050
1
2
17106
60000
50
17

 


22050
1
2
17106
60000
50
18


22050
1
2
17106
60000
50
19

 


22050
1
2
17106
60000
50
20

file = "your_source_file.wav"
88

 


22050
1
2
17106
60000
50
22


22050
1
2
17106
60000
50
23

 


22050
1
2
17106
60000
50
24

đầu ra

https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20200811182026/output2. làn sóng

4) Hợp nhất các tập tin. Điều này được thực hiện bằng toán tử '+'

Python3




file = "your_source_file.wav"
55

file = "your_source_file.wav"
56
file = "your_source_file.wav"
54
file = "your_source_file.wav"
58
file = "your_source_file.wav"
59

file = "your_source_file.wav"
56
file = "your_source_file.wav"
61
file = "your_source_file.wav"
58

22050
1
2
17106
60000
50
1

 


22050
1
2
17106
60000
50
34

22050
1
2
17106
60000
50
6

22050
1
2
17106
60000
50
7

22050
1
2
17106
60000
50
37
file = "your_source_file.wav"
86


22050
1
2
17106
60000
50
39

22050
1
2
17106
60000
50
6

22050
1
2
17106
60000
50
7____180
file = "your_source_file.wav"
86

 


22050
1
2
17106
60000
50
44


22050
1
2
17106
60000
50
45

22050
1
2
17106
60000
50
6

22050
1
2
17106
60000
50
34

22050
1
2
17106
60000
50
10

22050
1
2
17106
60000
50
39


22050
1
2
17106
60000
50
50


22050
1
2
17106
60000
50
51


22050
1
2
17106
60000
50
52

đầu ra

https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20200811180732/Output3. làn sóng

5) Xuất tập tin. Điều này được thực hiện bằng phương thức export()

Python3





22050
1
2
17106
60000
50
53

file = "your_source_file.wav"
56
file = "your_source_file.wav"
54
file = "your_source_file.wav"
58
file = "your_source_file.wav"
59


22050
1
2
17106
60000
50
50


22050
1
2
17106
60000
50
59


22050
1
2
17106
60000
50
5

22050
1
2
17106
60000
50
6

22050
1
2
17106
60000
50
7____180
file = "your_source_file.wav"
86

file = "your_source_file.wav"
596


22050
1
2
17106
60000
50
66

22050
1
2
17106
60000
50
67


22050
1
2
17106
60000
50
66

22050
1
2
17106
60000
50
69


22050
1
2
17106
60000
50
66

22050
1
2
17106
60000
50
71

 

file = "your_source_file.wav"
596


22050
1
2
17106
60000
50
73

22050
1
2
17106
60000
50
6

22050
1
2
17106
60000
50
5

22050
1
2
17106
60000
50
10

22050
1
2
17106
60000
50
11

 


22050
1
2
17106
60000
50
78


22050
1
2
17106
60000
50
79

22050
1
2
17106
60000
50
6

22050
1
2
17106
60000
50
81
file = "your_source_file.wav"
81


22050
1
2
17106
60000
50
83
file = "your_source_file.wav"
83

22050
1
2
17106
60000
50
6
file = "your_source_file.wav"
85
file = "your_source_file.wav"
86

đầu ra

https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20200811180631/louder_wav_file. làn sóng

6) Tách âm thanh. Tách âm thanh bằng phương thức split_to_mono()

Python3




file = "your_source_file.wav"
55

file = "your_source_file.wav"
56
file = "your_source_file.wav"
54
file = "your_source_file.wav"
58
file = "your_source_file.wav"
59

file = "your_source_file.wav"
56
file = "your_source_file.wav"
61
file = "your_source_file.wav"
58

22050
1
2
17106
60000
50
1

 


22050
1
2
17106
60000
50
97


22050
1
2
17106
60000
50
98

22050
1
2
17106
60000
50
6

22050
1
2
17106
60000
50
7
file = "your_source_file.wav"
801
file = "your_source_file.wav"
86

 

file = "your_source_file.wav"
803

file = "your_source_file.wav"
804

22050
1
2
17106
60000
50
6
file = "your_source_file.wav"
806

file = "your_source_file.wav"
567
file = "your_source_file.wav"
808

file = "your_source_file.wav"
567
file = "your_source_file.wav"
810
file = "your_source_file.wav"
811
file = "your_source_file.wav"
812

 

 

file = "your_source_file.wav"
813
file = "your_source_file.wav"
811
file = "your_source_file.wav"
815

22050
1
2
17106
60000
50
6
file = "your_source_file.wav"
817
file = "your_source_file.wav"
81
file = "your_source_file.wav"
83

22050
1
2
17106
60000
50
6
file = "your_source_file.wav"
85
file = "your_source_file.wav"
86

Làm cách nào để đọc tệp WAV bằng Python?

open() Hàm này mở tệp để đọc/ghi dữ liệu âm thanh. Hàm cần hai tham số - đầu tiên là tên tệp và thứ hai là chế độ. Chế độ có thể là 'wb' để ghi dữ liệu âm thanh hoặc 'rb' để đọc.

Làm cách nào để chia tệp WAV trong Python?

Đây là đoạn mã python mà tôi sử dụng để chia nhỏ tệp theo nhu cầu. Tôi sử dụng thư viện pydub từ https. //github. com/jiaaro/pydub. Bạn có thể sửa đổi đoạn trích cho phù hợp với yêu cầu của mình. từ pydub nhập AudioSegment t1 = t1 * 1000 #Hoạt động tính bằng mili giây t2 = t2 * 1000 newAudio = AudioSegment .

Mô-đun Python nào cho phép bạn đọc và ghi các tệp âm thanh WAV?

Mô-đun sóng cung cấp giao diện thuận tiện cho định dạng âm thanh WAV.

ID riff là gì?

Định dạng tệp trao đổi tài nguyên (RIFF) là định dạng vùng chứa tệp chung để lưu trữ dữ liệu trong các khối được gắn thẻ . Nó chủ yếu được sử dụng để lưu trữ đa phương tiện như âm thanh và video, mặc dù nó cũng có thể được sử dụng để lưu trữ bất kỳ dữ liệu tùy ý nào.