Bagaimana saya membandingkan 2 file audio, mengembalikan persentase perbedaan

12

Apakah ada cara untuk membandingkan 2 file audio, di mana persentase perbedaan akan dikembalikan? Saya menggunakan C # VS08 , .net framework 3.5.

Diedit: perbedaan suara (seperti misalnya Audio 1 "HELP":, Audio 2:, "HELP ME PLEASE"itu akan mengembalikan perbedaan persentase antara 2 audio ini.)

Saat ini saya menyimpan file yang direkam dalam format wav, dan kecepatan bit serta kualitasnya juga akan sama dengan apa yang akan direkam dan dibandingkan. Saya ingin bertanya apakah ada cara untuk membandingkan suara (bukan hanya binari) dalam 2 file audio dengan properti yang sama dan format yang sama (WAV), dan menunjukkan perbedaan persentase antara 2 suara dalam 2 file audio.

Bantuan akan sangat dihargai.

Jav_Rock
sumber
7
Apa yang Anda gambarkan adalah dalam domain pemrosesan sinyal digital. Terus terang, jika Anda perlu bertanya bagaimana melakukannya, Anda tidak dalam kondisi siap untuk melakukannya. Saya sangat meragukan bahwa .NET memiliki sesuatu yang begitu canggih.
Saya telah melihat makalah penelitian tentang masalah ini baru-baru ini: Algoritma Pencarian Audio Kekuatan Industri (PDF) Mereka membandingkan spektrum frekuensi. Teknik ini digunakan dalam aplikasi iPhone populer Shazam .
3
Untuk menjawab pertanyaan itu, kita perlu definisi yang cermat dan tepat tentang arti "serupa". Apa yang Anda yakini "serupa" artinya dalam konteks file wav?
1
Anda mencoba mendekati masalah pengenalan ucapan yang telah ditangani oleh para peneliti serius di seluruh dunia selama beberapa dekade. Sebanyak ini adalah hal yang keren untuk dapat dilakukan, saya tidak berpikir itu bisa dilakukan untuk satu orang tanpa pengetahuan sebelumnya tentang DSP, jaringan Bayesian, pengklasifikasi, dan sebagainya.
Telepon
2
Apakah Anda benar-benar ingin membandingkan perbedaan dalam audio, atau hanya dalam teks yang ditranskripsi? Itu jauh lebih mudah, setelah Anda melewati rintangan awal.
Emre

Jawaban:

8

Bisakah Anda mendefinisikan "persentase perbedaan"?

Misalnya, beri tahu kami nilai mana yang Anda harapkan:

  • Antara dua versi file yang sama dikodekan dengan pengaturan yang berbeda?
  • Antara dua versi file yang sama, kecuali yang satu sedikit lebih cepat dari yang lain?
  • Antara dua rekaman input audio yang sama, tetapi melalui berbagai mikrofon / peralatan rekaman?
  • Antara dua rekaman orang yang sama mengatakan kata yang sama?
  • Antara dua rekaman orang yang sama mengatakan kata yang sama, dengan prosodi yang berbeda (ritme / melodi)?
  • Antara dua rekaman orang yang berbeda mengatakan kata yang sama?
  • Antara dua rekaman dari orang yang sama mengatakan kalimat yang sama kecuali untuk beberapa kata?
  • Antara rekaman seseorang dan seekor sapi?
  • Antara rekaman pesawat terbang dan musik?

Apa yang ingin Anda ukur? Isi pidato (kata-kata)? Melodi, ritme? Kesamaan audio keseluruhan? Perbedaan pengkodean / perekaman peralatan?

pichenettes
sumber
3
Jangan menahan nafas; pertanyaannya adalah dua tahun dan OP adalah AWOL.
Emre
1
Ups, saya perhatikan hanya tanggal migrasi (terakhir).
pichenettes
3

Silakan lihat ITU-T P.862 . Ini adalah bentuk standar PESQ (Evaluasi Perseptual Kualitas Bicara) , keluarga standar untuk mengevaluasi kualitas bicara seperti yang dialami oleh pengguna sistem telepon.

Ini hanya seputar pidato (bukan informasi audio lainnya). Anda membandingkan dua file audio, sumber dan terdegradasi dan Anda mendapatkan nilai dalam persen atau setara MOS.

JJPOMBAR
sumber
2
Selamat datang di DSP.stackexchange! Terima kasih telah memberikan jawaban, tetapi saya sarankan untuk melihat FAQ untuk meningkatkan jawaban / pertanyaan Anda. Tanda tangan tidak disarankan - Anda "masuk" dengan gagang terdaftar Anda. Juga, memberikan tautan ke materi eksternal, contoh, dan klarifikasi untuk pendekatan yang Anda sebutkan dalam jawaban Anda adalah praktik yang baik :)
penelope
-3

Saya menggunakan satu fungsi javascript untuk membandingkan file audio belakangnya. Dengan menggunakan logika yang sama Anda dapat membandingkan file apa pun dalam bahasa apa pun.

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+' %.');

}

Punnoose yang keras
sumber
3
Membandingkan bytestream secara langsung tidak berhasil. Dua rekaman dapat secara perseptual tidak dapat dibedakan tetapi dapat dikodekan menjadi dua aliran yang berbeda dengan pencocokan 0% sesuai dengan kode Anda.
pichenettes