2012-03-07 48 views
8

Tôi cần có tín hiệu âm thanh và trích xuất các khung âm thanh chồng chéo từ đó. Sau đó tôi cần phải chuyển đổi những dữ liệu tần số (FFT thứ/giống như một spectrogram) và phân tích các thông tin tần số.Thư viện âm thanh tốt?

Ví dụ: nếu tôi có tệp mp3 1 phút, tôi muốn chia tệp thành các tệp nhỏ hơn, từ 00: 00.000 đến 00: 03.000, từ 00: 00.010 đến 00: 03.010. Sau đó, tôi cần phải xem phân tích tần số của từng tệp phụ.

Ngôn ngữ lập trình nào có công cụ âm thanh tốt có thể giúp tôi thực hiện việc này? Có các công cụ dòng lệnh linux mà tôi có thể sử dụng không? Điểm thưởng cho Node.js (vâng phải) hoặc Haskell, mà tôi quen thuộc nhất.

+0

Trong Python, tôi đã thành công với [Audiolab] (http://www.ar.media.kyoto-u.ac.jp/members/david/softwares/audiolab/sphinx/index.html) bằng Numpy. – Vortico

+0

Tôi cũng sẽ sử dụng Python/Numpy. Nếu bạn muốn xử lý các tệp mp3, bạn cần một thư viện để giải mã chúng, chẳng hạn như ffmpeg. Bạn có thể gọi ffmpeg từ python bằng cách sử dụng các cuộc gọi subprocess. – TJD

+0

Đã có một số cuộc thảo luận về các thư viện âm thanh cho node.js, nhưng tôi không biết bất cứ điều gì trưởng thành. Xem [thảo luận này trên danh sách gửi thư] (http://groups.google.com/group/nodejs/browse_thread/thread/5b62789562697956) cho các điểm nhập cảnh. Tôi đang nghĩ Python. –

Trả lời

2

Haskell:

http://hackage.haskell.org/package/hsndfile. Sau đó, nó chủ yếu chỉ là toán học, tôi tưởng tượng, với hmatrix và soforth.

+0

Tôi thực sự đang chơi đùa với python và scipy, nhưng không ai trong số họ đưa họ vào câu trả lời :) TY! Tôi có thể thử phiên bản haskell, nhưng các chức năng FFT làm cho bộ não của tôi bị tổn thương –

+0

Lưu ý: libsndfile (thư viện được bao bọc bởi hsndfile) không hoạt động với mp3. http: // www.mega-nerd.com/libsndfile/FAQ.html#Q020 –

3

MATLAB.

GNU Octave là bản sao phân loại miễn phí.

+0

Matlab Wow đắt tiền. Cảm ơn bạn đã thay thế. –

+0

@SeanClarkHess: Đắt hơn so với những gì, anh chàng? Bạn sẽ tốn bao nhiêu tiền để viết và gỡ lỗi tất cả mã đó? Ngoài ra, nếu bạn là sinh viên toàn thời gian, việc giảm giá cho sinh viên trên Matlab thường tốt đến nỗi bạn phải là một thằng ngốc hoàn toàn không thể lấy được nó. (Vào năm 2003, tôi đã làm việc bồi dưỡng. Tôi đã truy cập vào cửa hàng máy tính của trường đại học cho gói Microsoft. Tôi đã xem ấn bản Matlab của sinh viên. Tôi mất vài giây để quyết định nói "Hãy cho tôi một trong số đó" –

+0

So với miễn phí Tôi đang chuẩn bị một bài thuyết trình nội bộ về chủ đề cho việc khởi động của tôi.Vì vậy, giấy phép thương mại Tôi sẽ không bao giờ sử dụng nó cho mã sản xuất, chỉ cho bản demo Tôi không quen thuộc với MATLAB hơn tôi với mã cũ thông thường Tôi cần giấy phép "chỉ chơi xung quanh" cho Matlab :) –

1

Bạn đã xem xét SuperCollider? Đó là một ngôn ngữ đầy đủ tính năng và có nhiều tính năng xử lý âm thanh hơn hầu hết các thư viện cho các ngôn ngữ khác.

Các vấn đề liên quan