Hướng dẫn wavfile read python - wavfile đọc python

-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

Hướng dẫn wavfile read python - wavfile đọc python

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.

.wav0

Mô -đun wave xác định chức năng và ngoại lệ sau:

.wav1

________ 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ế độ .wav0 trả về đối tượng .wav3, trong khi chế độ .wav1 trả về đối tượng .wav5. 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, .wav6 được sử dụng làm giá trị mặc định cho chế độ.Added support for unseekable files.

Nếu bạn chuyển trong một đối tượng giống như tệp, đối tượng sóng sẽ không đóng nó khi phương thức .wav7 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 .wav8 có thể được sử dụng trong câu lệnh .wav9. Khi khối .wav9 hoàn thành, phương thức C:\Users\Maheswar.reddy\Desktop\NLP\wav_folder1 hoặc C:\Users\Maheswar.reddy\Desktop\NLP\wav_folder2 đượ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 .wav8, có các phương thức sau:()

________ 26 ________ 27 ()()¶

Đóng luồng nếu nó được mở bởi wave 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 (.wav1 cho mono, .wav2 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 (wave1 là loại được hỗ trợ duy nhất).

________ 26 ________ 43 ()()¶()

Phiên bản có thể đọc được của con người của wave4. Thường là wave5 tương đương wave1.

________ 26 ________ 48 ()()¶()

Trả về wave9 WAVE_FORMAT_PCM0, tương đương với đầu ra của các phương thức WAVE_FORMAT_PCM1.

________ 26 ________ 53 (n)(n)¶(n)

Đọ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_PCM4.

________ 26 ________ 56 ()()¶()

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_PCM7 và don lồng làm bất cứ điều gì thú vị.

________ 26 ________ 59 ()()¶()

Trả về WAVE_FORMAT_EXTENSIBLE0.

________ 26 ________ 62 (ID)(id)¶(id)

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_EXTENSIBLE8 hoặc WAVE_FORMAT_EXTENSIBLE9 với số lượng khung sẽ được viết trước khi .wav7 được gọi và sau đó sử dụng wave1 để ghi dữ liệu khung hoặc bằng cách gọi wave2 với tất cả dữ liệu khung. Trong trường hợp sau wave2 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 .wav8, 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.

________ 75 ________ 79 (n)(n)¶(n)

Đặ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 wave48 được hỗ trợ, có nghĩa là không nén.

________ 75 ________ 90 (tuple) ¶(tuple)¶(tuple)

Bộ tuple phải là wave51, với các giá trị hợp lệ cho các phương thức wave52. Đặt tất cả các tham số.

________ 75 ________ 66 ()()¶()

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 wave55 và wave56.

________ 75 ________ 98 (dữ liệu) ¶(data)¶(data)

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 wave2 hoặc wave1 và mọi nỗ lực để làm như vậy sẽ tăng .wav03.

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 ..