Làm cách nào để so sánh 2 tệp âm thanh, trả về phần trăm chênh lệch


12

Có cách nào để so sánh 2 tệp âm thanh, theo đó phần trăm chênh lệch sẽ được trả về? Tôi đang sử dụng C # VS08 , .net framework 3.5.

Đã chỉnh sửa: sự khác biệt về âm thanh (ví dụ như Audio 1 : "HELP", Audio 2 : "HELP ME PLEASE", nó sẽ trả về sự khác biệt về tỷ lệ phần trăm giữa 2 âm thanh này.)

Tôi hiện đang lưu các tệp được ghi ở định dạng wav, tốc độ và chất lượng bit của nó cũng sẽ giống như những gì sẽ được ghi lại và so sánh với. Tôi muốn hỏi liệu có cách nào để so sánh âm thanh (không chỉ là nhị phân) trong 2 tệp âm thanh có cùng thuộc tính và cùng định dạng (WAV) hay không và hiển thị phần trăm chênh lệch giữa 2 âm thanh trong 2 tệp âm thanh.

Trợ giúp sẽ được đánh giá rất cao.


7
Những gì bạn đang mô tả là trong lĩnh vực xử lý tín hiệu số. Nói một cách thẳng thắn, nếu bạn cần hỏi làm thế nào để làm điều đó, bạn không có hình dạng sẵn sàng để làm điều đó. Tôi rất nghi ngờ rằng .NET có một cái gì đó rất tinh vi được tích hợp sẵn.

Gần đây tôi đã thấy một bài nghiên cứu về chủ đề này: Thuật toán tìm kiếm âm thanh cường độ công nghiệp (PDF) Họ so sánh phổ tần số. Kỹ thuật này được sử dụng trong một ứng dụng iPhone phổ biến Shazam .

3
Để trả lời câu hỏi, chúng ta sẽ cần một định nghĩa cẩn thận và chính xác về ý nghĩa của "tương tự". Bạn tin "tương tự" nghĩa là gì trong ngữ cảnh của các tệp wav?

1
Bạn đang cố gắng tiếp cận một vấn đề nhận dạng giọng nói mà các nhà nghiên cứu nghiêm túc trên toàn thế giới đã giải quyết trong nhiều thập kỷ. Nhiều như điều này là một điều tuyệt vời để có thể làm, tôi không nghĩ rằng nó có thể dễ dàng cho một người mà không có kiến ​​thức trước về DSP, mạng Bayes, phân loại, v.v.
Phonon

2
Bạn có thực sự muốn so sánh sự khác biệt trong âm thanh, hoặc chỉ trong văn bản được phiên âm? Điều đó dễ dàng hơn nhiều, một khi bạn vượt qua rào cản ban đầu.
Emre

Câu trả lời:


8

Bạn có thể vui lòng xác định "phần trăm chênh lệch" không?

Ví dụ: vui lòng cho chúng tôi biết giá trị nào bạn mong muốn nhận được:

  • Giữa hai phiên bản của cùng một tệp được mã hóa với các cài đặt khác nhau?
  • Giữa hai phiên bản của cùng một tệp, ngoại trừ phiên bản nào nhanh hơn phiên bản kia?
  • Giữa hai bản ghi của cùng một đầu vào âm thanh, nhưng thông qua các thiết bị ghi / micrô khác nhau?
  • Giữa hai bản thu âm của cùng một người nói cùng một từ?
  • Giữa hai bản ghi âm của cùng một người nói cùng một từ, với một giai điệu khác nhau (nhịp điệu / giai điệu)?
  • Giữa hai bản ghi âm của những người khác nhau nói cùng một từ?
  • Giữa hai bản ghi âm của cùng một người nói cùng một câu trừ một vài từ?
  • Giữa một bản ghi âm của một người và một con bò?
  • Giữa một bản ghi âm của một chiếc máy bay và âm nhạc?

Bạn muốn đo lường cái gì? Nội dung bài phát biểu (lời nói)? Giai điệu, nhịp điệu? Sự tương đồng âm thanh tổng thể? Mã hóa / ghi khác biệt thiết bị?


3
Chúng ta đừng nín thở; Câu hỏi là hai tuổi và OP là AWOL.
Emre

1
Rất tiếc, tôi chỉ nhận thấy ngày di chuyển (gần đây).
pichenettes

3

Xin hãy xem ITU-T P.862 . Đây là dạng PESQ được tiêu chuẩn hóa (Đánh giá cảm nhận về chất lượng lời nói) , họ của các tiêu chuẩn để đánh giá chất lượng giọng nói như người dùng hệ thống điện thoại đã trải nghiệm.

Đây chỉ là xung quanh lời nói (không phải thông tin âm thanh khác). Bạn so sánh hai tệp âm thanh, nguồnxuống cấp và bạn có được giá trị tương đương phần trăm hoặc MOS.


2
Chào mừng bạn đến với DSP.stackexchange! Cảm ơn bạn đã cung cấp câu trả lời, nhưng tôi khuyên bạn nên xem Câu hỏi thường gặp để cải thiện câu trả lời / câu hỏi của bạn. Chữ ký không được khuyến khích - dù sao bạn cũng "ký" với tay cầm đã đăng ký của mình. Ngoài ra, cung cấp liên kết đến tài liệu bên ngoài, ví dụ và làm rõ cho các phương pháp bạn đề cập trong câu trả lời của bạn là một cách thực hành tốt :)
Penelope

-3

Tôi đang sử dụng một chức năng javascript để so sánh tập tin âm thanh kéo. Bằng cách sử dụng cùng một logic, bạn có thể so sánh bất kỳ tệp nào trong bất kỳ ngôn ngữ nào.

function compireAudio(){ 
var audio1 = "http://soundjax.com/reddo/86502%5Ealarm.mp3"; 
var audio2 = "http://soundjax.com/reddo/44368%5EALARME.mp3";
var i,j,d;
var matching = 0;
var t = 0;var i,j,d;
var matching = 0;
var t = 0;
var audio1Arr = Array();
var audio1Len = audio1.length;
for (i = 1; i<=audio1Len; i++)
{
    //reverse so its like a stack
    d = audio1.charCodeAt(audio1Len-i);
    for (j = 0; j < 8; j++) 
    {
        audio1Arr.push(d%2);
        d = Math.floor(d/2);
    }
}
var audio2Len = audio2.length;
for (i = 1; i<=audio2Len; i++)
{
    //reverse so its like a stack
    d = audio2.charCodeAt(audio2Len-i);
    for (j = 0; j < 8; j++) 
    {
        if(d%2 == audio1Arr[t])
        {
            matching++;
        }
        d = Math.floor(d/2);
        t++;
    }
}
var avarage = Number(matching)/((Number(t)+Number(audio1Arr.length))/Number(2))*Number(100);
alert('The Matching with the two audio is '+avarage+' %.');

}


3
Trực tiếp so sánh bytestream không hoạt động. Hai bản ghi có thể không thể phân biệt về mặt nhận thức nhưng được mã hóa thành hai luồng khác nhau với độ khớp 0% theo mã của bạn.
pichenettes
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.