-1
Nội dung chính ShowShow
- WAVE_READ Đối tượng
- WAVE_WRITE Đối tượng
- Làm cách nào để kết hợp nhiều tệp WAV trong Python?
- Làm cách nào để đọc một tệp wav trong Python?
- Mô -đun Python nào cho phép bạn đọc và viết các tệp WAV?
- Làm thế nào để bạn tải một tệp âm thanh trong Python?
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.Learn more.
Learn more.
Tôi có khoảng 30 tệp .wav
trong thư mục C:\Users\Maheswar.reddy\Desktop\NLP\wav_folder
. Tôi đang cố gắng viết mã để đọc tất cả các tệp .wav
trong thư mục, nhưng tôi không thể làm điều đó. Làm thế nào tôi có thể đọc tất cả các tệp cùng một lúc, được đặt tên của thư mục?
Tôi đã có thể đọc một tệp duy nhất đưa ra đường dẫn ngay bây giờ tôi muốn đọc tất cả các tệp cùng một lúc.
hỏi ngày 9 tháng 8 lúc 3:47Aug 9 at 3:47Aug 9 at 3:47
3
Không rõ ý bạn là "đọc tất cả các tệp cùng một lúc". Dưới đây là một ví dụ sử dụng Glob Pathlib mà bạn có thể mở rộng để xử lý các tệp theo tuần tự:
from pathlib import Path
base_path = Path[r"C:\Users\Maheswar.reddy\Desktop\NLP\wav_folder"]
for wav_file_path in base_path.glob["*.wav"]:
print[f"WAV File: {wav_file_path}"]
# do something, e.g. with open[wav_file_path] as wav_file:
Nếu bạn muốn xử lý đồng thời tất cả các tệp, bạn sẽ cần xem xét luồng hoặc đa xử lý.
Đã trả lời ngày 9 tháng 8 lúc 4:27Aug 9 at 4:27Aug 9 at 4:27
Nhập ngẫu nhiên ngẫu nhiênimport randomimport random
2.6561 Huy hiệu vàng15 Huy hiệu bạc20 Huy hiệu Đồng1 gold badge15 silver badges20 bronze badges1 gold badge15 silver badges20 bronze badges
1
Đối với trường hợp của hai tín hiệu, hãy thử điều này
[WAVE1, FS1] = Audioread ['Voice1.wav'];'Voice1.wav']; 'Voice1.wav'];
[wave2,fs2]=audioread['Voice2.wav'];'Voice2.wav'];'Voice2.wav'];
t1 = linspace [0, [numel [wave1] -1]/fs1, numel [wave1]];
T2 = Linspace [0, [numel [wave2] -1]/fs2, numel [wave2]];
subplot[2,1,1]
lô [t1, wave1];
subplot[2,1,2]
lô [t1, wave1];
Đối với nhiều tệp, hãy sử dụng cái này
Tên = {'Voice1.Wav', 'Voice2.wav', 'Voice3.wav', 'Voice4.wav'};'Voice1.wav', 'Voice2.wav', 'Voice3.wav', 'Voice4.wav'};'Voice1.wav', 'Voice2.wav', 'Voice3.wav', 'Voice4.wav'};
sóng = ô [kích thước [tên]];
fs = ô [kích thước [tên]];
subplot_cols = 3;
subplot_rows = ceil [numel [tên]/subplot_cols];
cho i = 1: numel [tên]i=1:numel[names]i=1:numel[names]
[Wave {i}, fs {i}] = Audioread ['sample.wav'];'sample.wav'];'sample.wav'];
t = linspace [0, [numel [wave {i}]-1]/fs {i}, numel [wave {i}]];
Subplot [subplot_rows, subplot_cols, i]
lô [t1, wave1];
tiêu đề [['tệp:' tên {i}]];'File: ' names{i}]];'File: ' names{i}]];
chấm dứt
Nếu tên của tất cả các tệp tuân theo một mẫu tương tự, thì hãy thử một cái gì đó như thế này
files = dir ['giọng nói*.wav'];'Voice*.wav']; 'Voice*.wav'];
name = {files.name};
sóng = ô [kích thước [tên]];
fs = ô [kích thước [tên]];
subplot_cols = 3;
subplot_rows = ceil [numel [tên]/subplot_cols];
cho i = 1: numel [tên]i=1:numel[names]i=1:numel[names]
[Wave {i}, fs {i}] = Audioread ['sample.wav'];'sample.wav'];'sample.wav'];
t = linspace [0, [numel [wave {i}]-1]/fs {i}, numel [wave {i}]];
Subplot [subplot_rows, subplot_cols, i]
lô [t1, wave1];
tiêu đề [['tệp:' tên {i}]];'File: ' names{i}]];'File: ' names{i}]];
chấm dứt
Nếu tên của tất cả các tệp tuân theo một mẫu tương tự, thì hãy thử một cái gì đó như thế này Lib/wave.py
files = dir ['giọng nói*.wav'];'Voice*.wav'];
name = {files.name};
Mã nguồn: lib/wave.py Lib/wave.py[file, mode=None]¶Mô -đun wave
cung cấp giao diện thuận tiện cho định dạng âm thanh WAV. Chỉ các tệp sử dụng WAVE_FORMAT_PCM
được hỗ trợ. Lưu ý rằng điều này không bao gồm các tệp sử dụng WAVE_FORMAT_EXTENSIBLE
ngay cả khi Subformat là PCM.
.wav
0Mô -đun wave
xác định chức năng và ngoại lệ sau:
.wav
1________ 8 ________ 9 [Tệp, Mode = none] ¶[file, mode=None]¶
Nếu tệp là một chuỗi, hãy mở tệp theo tên đó, nếu không, hãy coi nó như một đối tượng giống như tệp. Chế độ có thể là:
Chỉ đọc chế độ.
Chỉ viết chế độ.
Lưu ý rằng nó không cho phép đọc/ghi các tệp wav.
Chế độ .wav
0 trả về đối tượng .wav
3, trong khi chế độ .wav
1 trả về đối tượng .wav
5. Nếu chế độ bị bỏ qua và một đối tượng giống như tệp được truyền dưới dạng tệp, .wav
6 được sử dụng làm giá trị mặc định cho chế độ.Added support for unseekable files.
.wav
7 của nó được gọi; Trách nhiệm của người gọi là đóng đối tượng tệp.Hàm .wav
8 có thể được sử dụng trong câu lệnh .wav
9. Khi khối .wav
9 hoàn thành, phương thức C:\Users\Maheswar.reddy\Desktop\NLP\wav_folder
1 hoặc C:\Users\Maheswar.reddy\Desktop\NLP\wav_folder
2 được gọi.
WAVE_READ Đối tượng
Đã thay đổi trong phiên bản 3.4: Đã thêm hỗ trợ cho các tệp không thể nhìn thấy.Added support for unseekable files.
Ngoại lệ ________ 8 ________ 24¶[]¶Một lỗi được nêu ra khi một cái gì đó là không thể vì nó vi phạm đặc tả WAV hoặc đạt được sự thiếu hụt thực hiện.
Các đối tượng WAVE_READ, được trả về bởi.wav
8, có các phương thức sau:[]¶________ 26 ________ 27 [][]¶
Đóng luồng nếu nó được mở bởiwave
và làm cho thể hiện không thể sử dụng được. Điều này được gọi là tự động trên bộ sưu tập đối tượng.[]¶________ 26 ________ 30 [][]¶
Trả về số lượng kênh âm thanh [.wav
1 cho mono, .wav
2 cho âm thanh nổi].[]¶ ________ 26 ________ 34 [][]¶
Trả về chiều rộng mẫu trong byte.[]¶Trả về số lượng khung âm thanh.
________ 26 ________ 40 [][]¶[]¶Trả về loại nén [wave
1 là loại được hỗ trợ duy nhất].
Phiên bản có thể đọc được của con người của wave
4. Thường là wave
5 tương đương wave
1.
Trả về wave
9 WAVE_FORMAT_PCM
0, tương đương với đầu ra của các phương thức WAVE_FORMAT_PCM
1.
Đọc và trả về hầu hết các khung âm thanh của âm thanh, dưới dạng đối tượng WAVE_FORMAT_PCM
4.
Tua lại con trỏ tệp đến đầu luồng âm thanh.
Hai phương pháp sau đây được xác định để tương thích với mô -đun WAVE_FORMAT_PCM
7 và don lồng làm bất cứ điều gì thú vị.
Trả về WAVE_FORMAT_EXTENSIBLE
0.
Nêu ra một lỗi.
Hai phương pháp sau đây xác định một thuật ngữ vị trí trực tuyến, tương thích giữa chúng và nếu không thì phụ thuộc vào việc thực hiện.
________ 26 ________ 64 [POS][pos]¶[pos]¶Đặt con trỏ tệp đến vị trí được chỉ định.
________ 26 ________ 66 [][]¶[]¶Trả về vị trí con trỏ tệp hiện tại.
WAVE_WRITE Đối tượng
Đối với các luồng đầu ra có thể tìm kiếm, tiêu đề wave
sẽ tự động được cập nhật để phản ánh số lượng khung thực sự được viết. Đối với các luồng không thể nhìn thấy, giá trị NFRAME phải chính xác khi dữ liệu khung đầu tiên được viết. Giá trị NFRAME chính xác có thể đạt được bằng cách gọi WAVE_FORMAT_EXTENSIBLE
8 hoặc WAVE_FORMAT_EXTENSIBLE
9 với số lượng khung sẽ được viết trước khi .wav
7 được gọi và sau đó sử dụng wave
1 để ghi dữ liệu khung hoặc bằng cách gọi wave
2 với tất cả dữ liệu khung. Trong trường hợp sau wave
2 sẽ tính toán số lượng khung trong dữ liệu và đặt NFRAME phù hợp trước khi viết dữ liệu khung.
Các đối tượng WAVE_WRITE, được trả về bởi .wav
8, có các phương thức sau:
Đã thay đổi trong phiên bản 3.4: Đã thêm hỗ trợ cho các tệp không thể nhìn thấy.Added support for unseekable files.Added support for unseekable files.
________ 75 ________ 27 [][]¶[]¶Đảm bảo NFRAM là chính xác và đóng tệp nếu được mở bởi wave
. Phương pháp này được gọi là thu thập đối tượng. Nó sẽ tăng một ngoại lệ nếu luồng đầu ra không thể tìm kiếm và NFRAME không khớp với số lượng khung thực sự được viết.
Đặt số lượng kênh.
________ 75 ________ 81 [n][n]¶[n]¶Đặt chiều rộng mẫu thành n byte.
________ 75 ________ 83 [n][n]¶[n]¶Đặt tốc độ khung hình thành n.
Thay đổi trong phiên bản 3.2: Một đầu vào không phân tích cho phương pháp này được làm tròn vào số nguyên gần nhất.A non-integral input to this method is rounded to the nearest integer.A non-integral input to this method is rounded to the nearest integer.
________ 75 ________ 85 [n][n]¶[n]¶Đặt số lượng khung thành n. Điều này sẽ được thay đổi sau nếu số lượng khung thực sự được viết là khác nhau [nỗ lực cập nhật này sẽ gây ra lỗi nếu luồng đầu ra không thể tìm kiếm].
________ 75 ________ 87 [loại, tên] ¶[type, name]¶[type, name]¶Đặt loại nén và mô tả. Hiện tại, chỉ có loại nén wave
48 được hỗ trợ, có nghĩa là không nén.
Bộ tuple phải là wave
51, với các giá trị hợp lệ cho các phương thức wave
52. Đặt tất cả các tham số.
Trả về vị trí hiện tại trong tệp, với cùng một từ chối trách nhiệm cho các phương thức wave
55 và wave
56.
Viết khung âm thanh, mà không cần sửa NFRAM.
________ 75 ________ 100 [dữ liệu] ¶[data]¶[data]¶Viết khung âm thanh và đảm bảo NFRAME là chính xác. Nó sẽ gây ra lỗi nếu luồng đầu ra không thể tìm kiếm và tổng số khung đã được viết sau khi dữ liệu được viết không khớp với giá trị được đặt trước đó cho NFRAME.
Lưu ý rằng việc đặt bất kỳ tham số nào sau khi gọi wave
2 hoặc wave
1 và mọi nỗ lực để làm như vậy sẽ tăng .wav
03.
Làm cách nào để kết hợp nhiều tệp WAV trong Python?
Các tập tin được tạo kết hợp...
Cài đặt Python trên máy tính của bạn ..
Cài đặt mô -đun Pydub và sử dụng đối tượng nghe nhìn ..
Tải xuống và sử dụng mô -đun FFMPEG ..
Tạo thư mục dự án, tải xuống và thêm các tệp wav ..
Tạo một tệp tập lệnh để tham gia các tệp WAV bằng Python vào một tệp ..
Làm cách nào để đọc một tệp wav trong Python?
Open [] Hàm này mở một tệp để đọc/ghi dữ liệu âm thanh.Hàm cần hai tham số - thứ nhất tên tệp và chế độ thứ hai.Chế độ có thể là 'WB' để viết dữ liệu âm thanh hoặc 'RB' để đọc. This function opens a file to read/write audio data. The function needs two parameters - first the file name and second the mode. The mode can be 'wb' for writing audio data or 'rb' for reading. This function opens a file to read/write audio data. The function needs two parameters - first the file name and second the mode. The mode can be 'wb' for writing audio data or 'rb' for reading.
Mô -đun Python nào cho phép bạn đọc và viết các tệp WAV?
Mô -đun sóng cung cấp giao diện thuận tiện cho định dạng âm thanh WAV.
Làm thế nào để bạn tải một tệp âm thanh trong Python?
Trong chương này, bạn sẽ học cách sử dụng thư viện hữu ích này để đảm bảo tất cả các tệp âm thanh của bạn ở đúng hình dạng để phiên âm ....
Giới thiệu về Pydub.....
Nhập tệp âm thanh với Pydub ..
Phát một tệp âm thanh với pydub ..
Tham số âm thanh với pydub ..
Điều chỉnh các tham số âm thanh ..
Thao tác với các tệp âm thanh với pydub ..