मैं 2 ऑडियो फ़ाइलों की तुलना कैसे करूं, अंतर का प्रतिशत लौटाता है


12

वहाँ 2 ऑडियो फ़ाइलों की तुलना करने का एक तरीका है, जिससे अंतर का एक प्रतिशत वापस आ जाएगा? मैं C # VS08 , .net फ्रेमवर्क 3.5 का उपयोग कर रहा हूं ।

संपादित: ध्वनि में अंतर (उदाहरण के लिए। ऑडियो 1:, "HELP"ऑडियो 2:, "HELP ME PLEASE"यह इस ऑडियो के बीच प्रतिशत में अंतर लौटाएगा।)

मैं वर्तमान में wav प्रारूप में रिकॉर्ड की गई फ़ाइलों को सहेज रहा हूं, और इसकी बिट दर और गुणवत्ता भी वही होगी जो रिकॉर्ड की जाएगी और तुलना की जाएगी। मैं पूछना चाहता हूं कि क्या समान गुणों और समान प्रारूप (WAV) की 2 ऑडियो फाइलों में ध्वनि (केवल बायनेरिज़) की तुलना करने का कोई तरीका नहीं है, और 2 ऑडियो फ़ाइलों में 2 ध्वनियों के बीच प्रतिशत अंतर दिखाते हैं।

मदद की बहुत सराहना की जाएगी।


7
आप जो वर्णन कर रहे हैं वह डिजिटल सिग्नल प्रोसेसिंग के क्षेत्र में है। स्पष्ट रूप से कहें, अगर आपको यह करने की आवश्यकता है कि यह कैसे करना है, तो आप इसे करने के लिए तैयार नहीं हैं। मुझे बहुत संदेह है कि .NET में कुछ इतना परिष्कृत अंतर्निहित है।

मैंने हाल ही में इस विषय पर एक शोध पत्र देखा है: एक औद्योगिक शक्ति ऑडियो खोज एल्गोरिदम (पीडीएफ) वे आवृत्ति स्पेक्ट्रा की तुलना करते हैं। तकनीक का उपयोग एक लोकप्रिय iPhone ऐप Shazam में किया जाता है ।

3
प्रश्न का उत्तर देने के लिए हमें "समान" के अर्थ की सावधानीपूर्वक और सटीक परिभाषा की आवश्यकता होगी। क्या आप मानते हैं कि "समान" अर्थ wav फ़ाइलों के संदर्भ में है?

1
आप एक स्पीच रिकग्निशन प्रॉब्लम को अप्रोच करने का प्रयास कर रहे हैं जो पूरी दुनिया के गंभीर शोधकर्ता दशकों से निपटा रहे हैं। जितना यह करने में सक्षम होने के लिए एक अच्छी बात है, मुझे नहीं लगता कि यह डीएसपी, बायेसियन नेटवर्क, क्लासिफायर और इतने पर पूर्व ज्ञान के बिना एक व्यक्ति के लिए ट्रैक्टेबल है।
फोनन

2
क्या आप वास्तव में ऑडियो में अंतर की तुलना करना चाहते हैं, या केवल लिखित पाठ में? एक बार जब आप प्रारंभिक बाधा से गुजरते हैं, तो यह बहुत आसान है।
एमरे

जवाबों:


8

क्या आप कृपया "अंतर का प्रतिशत" परिभाषित कर सकते हैं?

उदाहरण के लिए, कृपया हमें बताएं कि आपको कौन सा मूल्य प्राप्त होने की उम्मीद है:

  • एक ही फाइल के दो संस्करणों के बीच अलग-अलग सेटिंग्स के साथ एनकोडेड?
  • एक ही फ़ाइल के दो संस्करणों के बीच, सिवाय इसके कि एक दूसरे की तुलना में थोड़ा तेज है?
  • एक ही ऑडियो इनपुट की दो रिकॉर्डिंग के बीच, लेकिन विभिन्न माइक्रोफोन / रिकॉर्डिंग उपकरण के माध्यम से?
  • एक ही शब्द कहने वाले एक ही व्यक्ति की दो रिकॉर्डिंग के बीच?
  • एक ही व्यक्ति की दो रिकॉर्डिंग्स के बीच एक ही शब्द को एक ही शब्द के साथ, एक अलग प्रोसिड (लय / मेलोडी) के साथ?
  • एक ही शब्द को कहने वाले विभिन्न व्यक्तियों की दो रिकॉर्डिंग के बीच?
  • एक ही व्यक्ति के दो रिकॉर्डिंग के बीच कुछ शब्दों को छोड़कर एक ही वाक्य?
  • एक व्यक्ति और एक गाय की रिकॉर्डिंग के बीच?
  • एक हवाई जहाज और संगीत की रिकॉर्डिंग के बीच?

आप क्या मापना चाहते हैं? भाषण सामग्री (शब्द)? राग, ताल? समग्र ऑडियो समानता? एन्कोडिंग / रिकॉर्डिंग उपकरण अंतर?


3
चलो हमारी सांस पकड़ नहीं; सवाल दो साल पुराना है और ओपी AWOL है।
एमरे

1
ओह, मैंने केवल (हाल ही में) प्रवास की तारीख देखी है।
pichenettes

3

कृपया ITU-T P.862 पर एक नज़र डालें । यह PESQ (भाषण गुणवत्ता का अवधारणात्मक मूल्यांकन) का मानकीकृत रूप है, एक टेलीफोनी प्रणाली के उपयोगकर्ता द्वारा अनुभव के रूप में भाषण की गुणवत्ता का मूल्यांकन करने के लिए मानकों का परिवार।

यह केवल भाषण के आसपास है (अन्य ऑडियो जानकारी नहीं)। आप दो ऑडियो फ़ाइलों की तुलना करते हैं, स्रोत और अपमानित होते हैं और आप प्रतिशत या MOS के बराबर मूल्य प्राप्त करते हैं।


2
DSP.stackexchange में आपका स्वागत है! उत्तर प्रदान करने के लिए धन्यवाद, लेकिन मैं सुझाव देता हूं कि अपने उत्तरों / प्रश्नों को बेहतर बनाने के लिए FAQ देखें । हस्ताक्षर हतोत्साहित हैं - आप वैसे भी अपने पंजीकृत हैंडल से "साइन" करते हैं। इसके अलावा, बाहरी सामग्री, उदाहरणों और स्पष्टीकरण के लिंक प्रदान करना जो आपके उत्तर में
वर्णित

-3

मैं टो ऑडियो फ़ाइल की तुलना के लिए एक जावास्क्रिप्ट फ़ंक्शन का उपयोग कर रहा हूं। उसी तर्क का उपयोग करके आप किसी भी भाषा में किसी भी फाइल की तुलना करने में सक्षम हैं।

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
सीधे बाइटस्ट्रीम की तुलना करने से काम नहीं चलता। दो रिकॉर्डिंग अवधारणात्मक रूप से अप्रभेद्य हो सकती हैं लेकिन आपके कोड के अनुसार 0% मिलान के साथ दो अलग-अलग बाईस्ट्रीम में एन्कोड हो जाती हैं।
pichenettes
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.