سؤال

مرحبا أنا بحاجة إلى باختزال wav ملف الصوت معدل العينة من 44.1 كيلو هرتز إلى 8kHz.يجب أن تفعل كل العمل يدويا مع صفيف بايت...إنه للأغراض الأكاديمية.

أنا حاليا باستخدام 2 دروس الحوض المصدر ، البوب ودفع صفائف بايت.كل شيء على ما يرام حتى تصل إلى الجزء حيث كنت بحاجة إلى باختزال البيانات قطعة باستخدام الخطية.

أنا منذ الاختزال من 44100 إلى 8000 هرتز, كيف أقحم صفيف بايت تحتوي على شيء مثل 128 000 000 بايت?الآن أنا ظهرت 5 ، 6 أو 7 بايت اعتمادا على i%2 == 0, i%2 == 1 وأنا%80 == 0 و دفع متوسط هذه 5 ، 6 أو 7 بايت في الملف الجديد.

والنتيجة هي في الواقع أصغر ملف الصوت من الأصلي ولكن لا يمكن تشغيلها على ويندوز ميديا بلاير (يقول هناك خطأ في قراءة الملف) و هناك الكثير من الضجيج على الرغم من أنني يمكن أن تسمع الصحيح وراء الضوضاء.

حتى أن مجموع الأمور, أنا بحاجة إلى مساعدة بشأن الخطية جزء.شكرا مقدما.

هل كانت مفيدة؟

المحلول

أعتقد أنه لا يجب استخدام متوسط من تلك العينات كما أنه سيكون مرشح المتوسط ، وليس بالضبط الاختزال.مجرد استخدام كل 5/6/7 عينة الكتابة إلى الملف الجديد.

التي ربما يكون لها بعض الآثار التعرج ولكن العام قد يكون التعرف عليها.

آخر أكثر تعقيدا الحل ولكن على الارجح واحدة مع نتائج أفضل جودة من الحكمة أن أول تحويل العينات إلى توزيع الترددات باستخدام FFT أو DFT ومن ثم تحويله مرة أخرى مع معدل العينة.انها كانت فترة من الوقت منذ أن كنت قد فعلت مثل هذا الشيء لكنه بالتأكيد قابلة للتنفيذ.قد تحتاج إلى عزف حولها قليلا للحصول على انها تعمل بشكل صحيح ، على الرغم من.

أيضا عندما لا أخذ قدم من مجموعة كاملة بل في قطاعات لديك مشكلة الجزء حدود 0.قبل بضع سنوات عندما لعبت مع تلك الأشياء التي لم تأتي مع حل هذا (لأنه يولد التحف كذلك) ولكن ربما هناك واحد إذا كنت تقرأ الكتب الصحيحة :-)

أما بالنسبة ومب تشكو الملف:لك هل تعديل رأس تكتب وفقا لذلك, أليس كذلك ؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top