R क्रॉस-प्लेटफ़ॉर्म और मुक्त / खुला स्रोत है।
इसे लोड करें, tuneR
और seewave
पुस्तकालयों को लोड करें (पैकेज प्रबंधक से उन्हें स्थापित करें यदि अभी तक स्थापित नहीं है)।
library(tuneR)
library(seewave)
फिर, अपने MP3 या WAV फ़ाइल को लोड करें:
w = readMP3("dog-whistle-0.mp3")
w = readWave("dog-whistle-0.wav")
अब, स्पेक्ट्रम और उसकी चोटियों को देखें:
fpeaks(meanspec(w), nmax=1)
परिणाम:
संख्यात्मक परिणाम:
fpeaks(meanspec(w), nmax=1, plot=FALSE)
12.05859
उपरोक्त केवल गैर-संगीत डेटा के साथ काम करता है। जब आप संगीत की आवृत्तियों का विश्लेषण करते हैं, तो आप पाएंगे कि सबसे अधिक आवृत्तियाँ हमेशा 12-20 kHz के आसपास रहेंगी, जो साधन में शामिल हैं। हालांकि, यह उच्चतम आवृत्ति आपको उस नोट का अनुमान नहीं देगी जो कि खेला जा रहा है, क्योंकि एक संगीत नोट, जब एक उपकरण द्वारा खेला जाता है, तो कई आवृत्तियों से बना होगा।
यह एक उपकरण का तथाकथित "टिमब्रे" है, और आप पाएंगे कि एक बांसुरी द्वारा 440 हर्ट्ज पर एक इलेक्ट्रिक गिटार द्वारा खेले गए ए की तुलना में विभिन्न आवृत्ति घटक शामिल होंगे।
आपका सबसे अच्छा दांव स्लाइडिंग समय खिड़कियों पर आवृत्ति चोटियों को देखकर एक प्रमुख आवृत्ति विश्लेषण चलाना है, और जांचें कि सबसे अधिक कहां होता है।
हालांकि "समय के साथ आवृत्ति" जैसी कोई चीज नहीं है। आप केवल कुछ स्लाइडिंग समय खिड़कियों पर औसत (या प्रमुख) आवृत्ति की साजिश कर सकते हैं । सीवेव समय की खिड़कियों का चयन करने के बारे में काफी कुछ कार्य प्रदान करता है, लेकिन यह जटिल हो जाता है।
आप उपयोग कर सकते हैं
s = specprop(meanspec(w, from=10, to=11))
स्पेक्ट्रम गुणों को 10 से 11 सेकंड तक प्राप्त करने के लिए और फिर कॉल करें s$centroid
या s$mean
उस विशेष समय खिड़की के केंद्रक या माध्य आवृत्तियों को प्राप्त करें (हालांकि 1 सेकंड ऑडियो विश्लेषण के लिए काफी बड़ा है)।
यदि आपकी वेव फ़ाइल 44.1 kHz नमूनाकरण का उपयोग करती है, तो आप गणना प्रयास को कम करने के लिए इसे घटा सकते हैं, उदाहरण के लिए 16 kHz।
w = downsample(w, 16000)
लेकिन याद रखें कि Nyquist प्रमेय के अनुसार , अधिकतम आवृत्ति जिसे अब दर्शाया जा सकता है वह 8 kHz है।
आप एक पिच डिटेक्शन सॉफ्टवेयर की तलाश भी कर सकते हैं। इस तरह , हालांकि MATLAB की आवश्यकता है।
fpeaks
, क्या आप जानते हैं कि अगर कोई ऐसा कार्य है जो समय के खिलाफ आवृत्ति के ग्राफ को प्लॉट करता है?