2009-10-16 15 views
6

हाय मुझे 44.1kHz से 8kHz तक एक WAV ऑडियो फ़ाइल की नमूना दर को कम करने की आवश्यकता है। मुझे मैन्युअल रूप से बाइट सरणी के साथ सभी काम करना है ... यह अकादमिक उद्देश्यों के लिए है।जावा - डाउनस्लैप्लिंग WAV ऑडियो फ़ाइल

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

चूंकि मैं 44100 से 8000 हर्ट्ज तक डाउनसमलिंग कर रहा हूं, मैं 128 000 000 बाइट्स जैसे कुछ बाइट सरणी को कैसे विभाजित कर सकता हूं? अभी मैं i% 2 == 0, i% 2 == 1 और i% 80 == 0 के आधार पर 5, 6 या 7 बाइट्स पॉपिंग कर रहा हूं और इन 5, 6 या 7 बाइट्स की औसत नई फ़ाइल में दबाता हूं ।

परिणाम मूल की तुलना में वास्तव में एक छोटी ऑडियो फ़ाइल है लेकिन इसे विंडोज मीडिया प्लेयर पर नहीं खेला जा सकता है (कहता है कि फाइल पढ़ने के दौरान कोई त्रुटि है) और वहां बहुत शोर है हालांकि मैं पीछे सही ट्रैक सुन सकता हूं शोर।

तो, चीजों को पूरा करने के लिए, मुझे रैखिक इंटरपोलेशन भाग से संबंधित सहायता चाहिए। अग्रिम में धन्यवाद।

+0

यदि आप जिस कोड का उपयोग कर रहे हैं उसे पोस्ट करते हैं तो हमारे बग्स ढूंढने में हमारी सहायता करना आसान होगा। –

उत्तर

7

मुझे लगता है कि आपको उन नमूनों के औसत का उपयोग नहीं करना चाहिए क्योंकि यह एक औसत फ़िल्टर होगा, बिल्कुल नीचे नहीं है। बस हर 5 वें/6 वें/7 वें नमूने का उपयोग करें और इसे नई फ़ाइल में लिखें।

शायद इसमें कुछ अलियासिंग कलाकृतियां होंगी लेकिन समग्र रूप से पहचाना जा सकता है।

एक और, अधिक जटिल समाधान लेकिन संभवतः बेहतर परिणामों के साथ एक, गुणवत्ता के अनुसार, पहले अपने नमूने को एफएफटी या डीएफटी का उपयोग करके एक आवृत्ति वितरण में परिवर्तित करना होगा और फिर उचित नमूना दर के साथ इसे परिवर्तित करना होगा। ऐसा कुछ समय हो गया है क्योंकि मैंने ऐसा कुछ किया है लेकिन यह निश्चित रूप से करने योग्य है। यद्यपि यह ठीक से काम करने के लिए आपको थोड़ा सा पहेली करना पड़ सकता है।

इसके अलावा पूर्ण सरणी का एफटी नहीं लेते हैं, बल्कि सेगमेंट में आपको सेगमेंट सीमाओं की समस्या 0 होती है। कुछ साल पहले जब मैंने उन चीजों के साथ खेला था तो मैं एक व्यवहार्य समाधान के साथ नहीं आया था यह (क्योंकि यह कलाकृतियों को भी उत्पन्न करता है) लेकिन यदि आप सही किताबें पढ़ते हैं तो संभवतः एक है :-)

डब्ल्यूएमपी फ़ाइल के बारे में शिकायत करने के लिए: आपके द्वारा लिखे गए शीर्षलेख को संशोधित करें, है ना?

+0

औसत शायद एक बुरा विचार हाँ है। यदि आप केवल चेरी-पिकिंग नमूने से प्राप्त करते हैं, तो आप कम कलाकृतियों को चाहते हैं तो आप बस उछाल सकते हैं और फिर डाउनसमूल कर सकते हैं। –

+2

वाह! बहुत बहुत धन्यवाद "बस हर 5 वें/6 वें/7 वें नमूने का उपयोग करें और इसे नई फाइल में लिखें" बस मेरे पूरे मुद्दे को सही किया गया है! विश्वास नहीं कर सकता कि मैंने इस पर घंटों बिताए जबकि इसे लिखने में आपको 2 मिनट लग गए! एक बार फिर धन्यवाद! –

+1

आपका स्वागत है :-) यदि आप इसके बारे में सोचते हैं, औसत औसत * वास्तव में * बुरा विचार है। तरंगों का पूरा समग्र आकार खो गया है। और यह वास्तव में कुछ समझदार सुनने के लिए हमारे लिए महत्वपूर्ण है :) – Joey

संबंधित मुद्दे