Ứng dụng của chúng tôi cần biết số lượng mẫu của các tệp âm thanh mà nó tải. Thư viện chúng tôi đang sử dụng có thể xác định một cách đáng tin cậy tốc độ lấy mẫu, nhưng không xác định số lượng mẫu. Có thể tính toán số lượng mẫu từ kích thước tệp và tỷ lệ mẫu không?Với một tệp WAV, kích thước tệp và tỷ lệ mẫu của nó, có thể tính số lượng mẫu không?
Trả lời
Giả sử tệp WAV là PCM, bạn có thể tính toán nó bằng cách sử dụng kích thước của đoạn dữ liệu. Số byte trên mỗi mẫu đơn giản là số bit trên mỗi mẫu chia cho tám. Số bit trên mỗi mẫu sẽ có mặt trong cấu trúc WAVEFORMAT. Điều này có thể được sử dụng để có được số lượng mẫu chính xác.
Dấu hiệu cho biết. Không, thông thường bạn cần phải diễn giải tiêu đề. Nhưng nếu định dạng, số lượng kênh và số bit trên mỗi mẫu được biết và giống nhau đối với tất cả các tệp bạn có thể tính toán theo lý thuyết từ kích thước tệp.
WAV là một định dạng đơn giản, không may đã có nhiều biến thể lạ của định dạng từ các nhà phát triển phần cứng và phần mềm lớn và nhỏ trong những năm qua. Thông thường, bạn có thể đếm trên định dạng được kosher nếu các tập tin đến từ một trình soạn thảo sóng chính thống hiện đại. Vì vậy, nếu các mẫu được chuẩn hóa bằng cách xuất chúng từ WaveLab hoặc tương tự, bạn có thể lưu mã (nhỏ) cho trình thông dịch tiêu đề.
Mô tả định dạng .wav dễ đọc nhất là here. StripWav là một chương trình nhỏ để chuẩn hóa mẫu; cũng có một công cụ dòng lệnh có khả năng hơn: sox. Sox hỗ trợ công việc hàng loạt, do đó, nó sẽ tốt hơn bằng cách sử dụng trình chỉnh sửa wave - giả sử tập hợp các tệp .wav là một tệp đã cho và không phải là 'động'.
Vì vậy: Nếu bạn có thể chuẩn hóa chúng một lần và cho tất cả với một công việc hàng loạt sox, điều đó có thể thực hiện được. Tôi đã sử dụng mô tả định dạng này và Sox để có hiệu quả tuyệt vời nhiều lần, chúc may mắn :)
Trong định dạng PCM wav tiêu đề chứa thông tin được gọi là khối lượng bao nhiêu byte một mẫu.
Thông thường nếu bạn có tệp wav PCM wav chuẩn không có siêu dữ liệu được đính kèm với nó (trường hợp thông thường). Blockalign là một số nguyên 2 byte tại offset 32 (từ 33 đến 34 byte từ đầu của tệp wav). Và kích thước tệp dữ liệu được gọi là datasize là số nguyên 4 byte ở độ lệch 40 (byte thứ 41 đến 44 tạo thành tệp khởi tạo của tệp wav).
Bây giờ, dữ liệu hóa/chặn khối là những gì bạn muốn.
PS
Trong trường hợp bạn có một định dạng wav phức tạp hơn, nếu nó RIFF, các Thông tin định dạng và dữ liệu được đưa vào "khối" khác nhau (cùng với một số khối khác mà bạn có thể không cần), và các offsets nói trên có thể không chính xác, sau đó bạn nên nhìn vào khối. Trong trường hợp của bạn, bạn cần phải tìm fmt và dữ liệu chunk.
Mỗi khối bắt đầu bằng một dữ liệu mã ASCII 4 byte được gọi là FOURCC, 'fmt' cho biết rằng đoạn bao gồm thông tin định dạng và 'dữ liệu' biểu thị một đoạn dữ liệu. Ngay sau khi FOURCC là một số nguyên 4 byte cho biết kích thước (tính theo byte) của đoạn sau (FOURCC và 4 byte này không được tính).
Tài liệu tham khảo:
- 1. cách lấy mẫu wav từ tệp wav?
- 2. Chuyển đổi tốc độ lấy mẫu khi đang đọc tệp WAV thành một mảng mẫu với Java
- 3. Cách tính kích thước tệp âm thanh?
- 4. Cách vẽ một tệp wav
- 5. Kích thước tệp có thể đọc được với hệ thống khuôn mẫu Twig
- 6. Tính kích thước tệp trong vỏ
- 7. Ok để có độ sâu ngăn xếp tuyến tính tỷ lệ thuận với một số kích thước đầu vào?
- 8. Tỷ lệ lấy mẫu API WebAudio
- 9. Sử dụng mẫu() với kích thước khoảng mẫu = 1
- 10. Cách căn giữa và chia tỷ lệ tệp SVG bên trong một tệp SVG khác
- 11. Delphi và iOS Kích thước tệp
- 12. Android: PSS (Tỷ lệ đặt theo tỷ lệ) Tính toán
- 13. Thay đổi kích thước UIImage với tỷ lệ co?
- 14. Các mẫu và mẫu lớp đẹp cùng với tất cả các đối số mẫu của nó
- 15. Ước tính số lượng từ của một tệp mà không cần đọc toàn bộ tệp
- 16. chức năng Member mẫu với số lượng các thông số tùy thuộc vào một mẫu tham số không thể thiếu
- 17. Tỷ lệ thay đổi kích thước một bitmap
- 18. Giảm/xóa cắt trong SoX khi chuyển đổi tỷ lệ mẫu
- 19. Có chất lượng, kích thước tệp hay lợi ích khác đối với kích thước JPEG là bội số của 8px hoặc 16px không?
- 20. Tôi có thể nhập một tham số mẫu mẫu không?
- 21. Thay đổi kích thước hình ảnh theo tỷ lệ với giới hạn MaxHeight và MaxWidth
- 22. Nhận ngoại lệ: Thuộc tính kích thước có kích thước không hợp lệ 0
- 23. lấy kích thước tệp của một tệp để wget trước khi wget-ing nó?
- 24. Làm cách nào để sửa kích thước biểu mẫu trong ứng dụng Biểu mẫu Windows C và không cho phép người dùng thay đổi kích thước của nó?
- 25. Thay đổi kích thước của ImageMagick PNG Tăng kích thước tệp
- 26. Thuộc tính kích thước ô mẫu UICollectionView iOS bỏ qua
- 27. Đọc kích thước và độ phân giải của tệp tiff mà không cần tải nó trước
- 28. Activeadmin và Formtastic: biểu mẫu không phản hồi: kích thước
- 29. Giảm kích thước tệp pdf
- 30. tỷ lệ làm mới để chèn/cập nhật cho đăng ký? tỷ lệ, số lượng, v.v.
tôi có thể làm việc ra các kích thước của đoạn dữ liệu từ kích thước tập tin, hay tôi cần phải biết nhiều hơn - ví dụ kích thước tiêu đề? – Simon
Các tệp WAV luôn có đoạn định dạng và một đoạn dữ liệu. Họ có thể có những phần khác. Cách duy nhất để đảm bảo kích thước dữ liệu là tìm và đọc thông số kích thước của nó. Bạn đang sử dụng ngôn ngữ và thư viện nào? –
C# và MediaInfoLib. – Simon