हाय मुझे 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 बाइट्स की औसत नई फ़ाइल में दबाता हूं ।
परिणाम मूल की तुलना में वास्तव में एक छोटी ऑडियो फ़ाइल है लेकिन इसे विंडोज मीडिया प्लेयर पर नहीं खेला जा सकता है (कहता है कि फाइल पढ़ने के दौरान कोई त्रुटि है) और वहां बहुत शोर है हालांकि मैं पीछे सही ट्रैक सुन सकता हूं शोर।
तो, चीजों को पूरा करने के लिए, मुझे रैखिक इंटरपोलेशन भाग से संबंधित सहायता चाहिए। अग्रिम में धन्यवाद।
यदि आप जिस कोड का उपयोग कर रहे हैं उसे पोस्ट करते हैं तो हमारे बग्स ढूंढने में हमारी सहायता करना आसान होगा। –