سؤال

وأنا أتساءل ما هو مكتبة سمعية الموصى بها للاستخدام؟

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

وأنا أفكر والفكرة هي أن عينة البيانات من الميكروفون، والقيام بتحليل على قطع من 5-10ms (من ما قرأت). ثم نفذ الاتحاد الفرنسي للتنس لمعرفة أي تردد يحتوي على أكبر الذروة.

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

المحلول

ومارسياس سيكون خيار كبير للقيام بذلك، انها بنيت بالضبط هذا النوع من المهام.

لضبط أداة، ما عليك القيام به هو أن يكون هناك الخوارزمية التي تقدر الأساسية التردد (F0) من الصوت. وهناك عدد من خوارزميات للقيام بذلك، واحدة من أحدث وأفضل هو يين الخوارزمية، والذي تم تطويره من قبل آلان دي Cheveigne. I مؤخرا بإضافة خوارزمية YIN لمارسياس، واستخدامه ميت بسيطة.

وهنا رمز الأساسية التي ستستخدم في مارسياس:

  MarSystemManager mng;

  // A series to contain everything
  MarSystem* net = mng.create("Series", "series");

  // Process the data from the SoundFileSource with AubioYin
  net->addMarSystem(mng.create("SoundFileSource", "src"));
  net->addMarSystem(mng.create("ShiftInput", "si"));
  net->addMarSystem(mng.create("AubioYin", "yin"));

  net->updctrl("SoundFileSource/src/mrs_string/filename",inAudioFileName);

  while (net->getctrl("SoundFileSource/src/mrs_bool/notEmpty")->to<mrs_bool>()) {
    net->tick();
    realvec r = net->getctrl("mrs_realvec/processedData")->to<mrs_realvec>();
    cout << r(0,0) << endl;
  }

وهذا الرمز أولا بإنشاء كائن Series، والتي سوف نضيف المكونات. في السلسلة، كل عنصر من العناصر يتلقى إخراج MarSystem سابقة في المسلسل. نحن ثم إضافة SoundFileSource، والتي يمكن أن تغذي في ملف الرعايا أو MP3. في. نحن ثم إضافة كائن ShiftInput الذي النواتج قطع متداخلة من الصوت، والتي ثم يتم إدخالها في جسم AubioYin الذي يقدر التردد الأساسي للأن جزءا من الصوت.

ونحن نقول بعد ذلك SoundFileSource أننا نريد لقراءة inAudioFileName الملف.

والبيان الوقت ثم حلقات حتى يدير SoundFileSource من البيانات. داخل في حين حلقة، ونحن نأخذ البيانات إلى أن الشبكة قد معالجة وانتاج (0،0) عنصر، وهو تقدير تردد الأساسية.

وهذا هو أسهل عند استخدام بيثون لمارسياس.

نصائح أخرى

توجيه أن تساعد. لا تستخدم ALSA للتطبيق الخاص بك. استخدام API مستوى أعلى. تقرر اذا كنت ترغب في استخدام JACK، http://jackaudio.org/applications ثلاثة المستقبلون صك لك كما يمكن استخدام المثال رمز.

http://clam-project.org/ CLAM هو إطار برنامج متكامل للبحث وتطوير التطبيقات في الصوت والموسيقى المجال. ويوفر النموذج المفاهيمي وكذلك أدوات للتحليل والتركيب ومعالجة الإشارات الصوتية.

ولديهم API عظيم، واجهة المستخدم الرسومية لطيف وعدد قليل من التطبيقات الجاهزة حيث يمكنك أن ترى كل شيء.

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

جرأة يتضمن ميزة تردد مؤامرة والمدمج في مرشحات الاتحاد الفرنسي للتنس.

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