2013-02-15 25 views
6

Tôi cần có khả năng phát tệp MP3 ở tốc độ khác nhau mà không ảnh hưởng đến quảng cáo chiêu hàng (hoặc thay đổi độ cao sau khi tăng tốc, bất kỳ điều gì), Ngoài ra, quá trình chuyển đổi này cần phải liền mạch nhất có thể. Rõ ràng là có những ứng dụng thực hiện việc này để có thể, nhưng có vẻ như không thể thực hiện được với API MediaPlayer và API SoundPool chỉ có thể thay đổi cả quảng cáo chiêu hàng và tỷ lệ (trừ khi tôi thiếu một thứ gì đó).Làm thế nào để tăng tốc độ phát nhạc trong thời gian thực trong Android mà không thay đổi độ cao?

Bất kỳ ý tưởng nào về cách đạt được điều này? Bất kỳ thư viện API/bên thứ ba nào có thể trợ giúp?

Cảm ơn.

+1

Thử tham khảo [câu hỏi này] (http://stackoverflow.com/q/11260043/752320). – Geobits

+0

Bạn đã tìm thấy bất kỳ cách nào để đạt được điều này? –

+0

Chúng tôi đã kết thúc bằng thư viện của bên thứ ba, ghi vào luồng và đọc từ đó bằng cách sử dụng AudioTrack. – Gal

Trả lời

1

Có một kỹ thuật chung được gọi là Time Scale Modification có thể thực hiện việc này. Đây là một công cụ có sẵn mà tôi chưa đánh giá: http://sourceforge.net/projects/mffmtimescale/.

Nếu bạn phóng to trên một dòng thời gian của âm thanh, nó trông giống như một màn hình nhịp tim cũ - một mô hình lượn sóng của các đỉnh và thung lũng. Đối với nguyên âm, mô hình là gần như cố định, có nghĩa là nó lặp đi lặp lại, giống như một xung nhịp tim khỏe mạnh. Một âm thanh nguyên âm ahhhh duy nhất có thể lặp lại mô hình của nó 3-7 lần trong bài phát biểu bình thường. Một thuật toán TSM xóa một số trong những sự lặp lại đó, và cần sử dụng một bộ lọc để giới thiệu các tạo phẩm bằng cách cắt/nối các sự lặp lại không hoàn hảo. Không gian trống cũng có thể giảm, nhưng cần phải cẩn thận để không xóa hết không gian trống - bằng tiếng Anh từ "bóng đá" thực sự có khoảng cách giữa "chân" và "bóng" (nói chậm). TSM cũng có thể làm ngược lại, bơm trong không gian trống tại các điểm quyền hoặc thêm giai đoạn lặp lại giai đoạn vào nguyên âm. Điều này tất cả thêm vào một cái gì đó khá phức tạp và phần nào phụ thuộc vào ngôn ngữ đòi hỏi rất nhiều điều chỉnh - mà đối với hầu hết các ứng dụng có nghĩa là bạn sẽ không muốn phát triển của riêng bạn.

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