سؤال

لدي برنامج يقوم بتنزيل بيانات PCM من خادم ويب، والذي يستخدمه لاحقا للعب من خلال مشغل PCM القياسي. أريد أن أكون قادرا على السماح للمستخدمين بتغيير درجة بيانات PCM أثناء لعبها.

لا أحد يعرف كيفية القيام بذلك؟

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

المحلول

لا أعرف أي مكتبة معالجة الإشارات الرقمية ل C #، ولكن يبدو أن هذا هو عينة مصدر كاملة للتحول في الملعب في .NET:
http://sites.google.com/site/mikescoderama/pitch-shifting.

نصائح أخرى

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

ولكن هناك اعتماد - تغيير الملعب من خلال اللعب في معدلات أخذ العينات المختلفة لن يغير الملعب فحسب، بل طول الصوت أيضا. من الممكن تغيير المدة والملعب بشكل مستقل، لكن هذا ليس بالأمر السهل ويشمل مبلغا عاديا من المعالجة الجانبية لتحقيق نوعية جيدة. يتم عادة في مجال التردد باستخدام تحويلات فورييه سريعة.

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