يحتوي JES على دعم أساسي لتحرير الصوت ، ولكن يمكنك استخدامه لتنفيذ بعض المهام المفيدة.

JES هو برنامج يتيح لك تعديل الصور والأصوات ومقاطع الفيديو برمجيًا. يحتوي JES على العديد من الوظائف المدمجة وأدوات التصحيح لمساعدتك على تعلم لغة جايثون.

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

كيفية تغيير حجم مقطع صوتي

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

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

الكود المستخدم في هذا المشروع متوفر في هذا جيثب ريبو بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.

  1. افتح تطبيق JES على جهاز الكمبيوتر الخاص بك.
  2. قم بإنشاء وظيفة جديدة تسمى changeVolume () ، والتي تأخذ الحجم الذي تريد التغيير إليه كمدخل:
    defحجم التغيير(المجلد):
  3. instagram viewer
  4. داخل الوظيفة ، افتح موجهًا لتطلب من المستخدم تحديد ملف صوتي صالح. بالرغم من أن JES غير متوافق مع ملفات mp3 ، فلا يزال بإمكانك استيراد ملفات WAV. أضف بعض التحقق للتأكد من توافق الملف:
    ملف = pickAFile () 

    لو ملف! = لا أحدو file.endswith (".wav"):
    # كود لملف صالح
    آخر:
    مطبعة("تم تحديد ملف غير صالح. الرجاء اختيار ملف WAV صالح. ")

  5. إذا كان الملف المحدد صالحًا ، فقم بإنشاء كائن صوتي منه:
    الصوت = makeSound (ملف)
  6. حلقة خلال كل عينة من الصوت:
    ل أنا في يتراوح(0، getLength (الصوت)):
  7. تحقق مما إذا كان المستخدم قد نجح أعلى في الوظيفة لرفع مستوى الصوت أعلى. إذا كان الأمر كذلك ، فاحصل على قيمة العينة في هذا الفهرس باستخدام دالة getSampleValueAt () المضمنة. قم بزيادة الحجم بمضاعفة السعة ، واستخدم setSampleValueAt () لتعيين القيمة الجديدة:
    لو المجلد == 'أعلى':
    sampleVal = getSampleValueAt (صوت ، أنا)
    setSampleValueAt (sound، i، sampleVal * 2)
  8. تحقق مما إذا كان المستخدم قد نجح تحت في الوظيفة لجعل مستوى الصوت أكثر ليونة. إذا كان الأمر كذلك ، احصل على قيمة العينة في هذا الفهرس ، وقسمها على 2 بدلاً من ذلك ، لتقليل السعة:
    لو المجلد == 'تحت':
    sampleVal = getSampleValueAt (صوت ، أنا)
    setSampleValueAt (sound، i، sampleVal / 2)
  9. استخدم وظيفة Explore () لفتح نافذة المستكشف للصوت:
    استكشاف (الصوت)
  10. اضغط على برنامج التحميل الموجود بين منطقة البرمجة وسطر الأوامر. احفظ الملف إذا طُلب منك:
  11. قم بتشغيل وظيفة changeVolume () في سطر الأوامر ، وتمرير "up" كوسيطة للدالة:
    changeVolume ("لأعلى")
  12. باستخدام نافذة مستكشف الملفات ، انتقل إلى ملف صوت صالح:
  13. اضغط على تشغيل الصوت بالكامل زر باستخدام النافذة الجديدة:
  14. في سطر الأوامر ، قم بتشغيل changeVolume () مرة أخرى مع القيمة "down" كوسيطة ، وحدد ملفًا:
    changeVolume ("لأسفل")
  15. في نافذة المستكشف ، سترى أن موجات الصوت أصغر. اضغط على تشغيل الصوت بالكامل زر باستخدام النافذة الجديدة:

كيفية عكس مقطع صوتي

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

  1. في وظيفة جديدة ، اطلب من المستخدم تحديد ملف WAV ، وتحقق من صحة الملف:
    defعكس الصوت():
    ملف = pickAFile ()

    لو ملف! = لا أحدو file.endswith (".wav"):
    # كود لملف صالح
    آخر:
    مطبعة("تم تحديد ملف غير صالح. الرجاء اختيار ملف WAV صالح. ")

  2. قم بإنشاء كائن صوتي جديد من الملف المحدد:
    الصوت = makeSound (ملف) 
  3. استخدم وظيفة makeEmptySound المدمجة لإنشاء كائن صوتي فارغ جديد. سيتكون هذا من نفس عدد العينات مثل الصوت الأصلي. ستكون قيمة السعة لكل عينة 0:
    newReversedSound = makeEmptySound (getLength (sound))
  4. التكرار خلال كل عينة من كائن الصوت الفارغ الجديد:
    ل أنا في يتراوح(0، getLength (newReversedSound)):
  5. لكل عينة في تلك المرحلة ، احصل على العينة في الطرف المقابل للصوت. على سبيل المثال ، إذا كان طول العينة 100 ، وكان المؤشر الحالي هو 0 ، فسيحصل هذا على قيمة العينة في الفهرس 99. وبالمثل ، إذا كان المؤشر الحالي 3 ، فسيحصل هذا على قيمة العينة في الفهرس 96:
    sampleVal = getSampleValueAt (صوت ، getLength (صوت) - 1 - أنا)
  6. انسخ قيمة العينة من الطرف الآخر للصوت إلى الفهرس الحالي للصوت الجديد:
    setSampleValueAt (newReversedSound، i، sampleVal)
  7. استكشف الصوت المعكوس الجديد. يمكنك أيضًا استكشاف الصوت الأصلي لأغراض المقارنة:
    استكشاف (الصوت)
    استكشاف (newReversedSound)
  8. اضغط على برنامج التحميل الموجود بين منطقة البرمجة وسطر الأوامر. احفظ الملف إذا طُلب منك ذلك.
  9. قم بتشغيل الوظيفة باستخدام سطر الأوامر:
    عكس الصوت ()
  10. اعرض الصوت الأصلي والصوت المعكوس باستخدام نوافذ المستكشف. اضغط على تشغيل الصوت بالكامل زر لسماع الاختلافات:

كيفية الانضمام إلى مقطعين صوتيين معًا

لضم مقطعين صوتيين معًا ، يمكنك أن تطلب من المستخدم تحديد ملفي WAV منفصلين. انسخ كل عينة من كلا الصوتين على كائن الصوت الجديد.

  1. قم بإنشاء وظيفة جديدة تسمى JoinSounds ():
    defالانضمام():
  2. استخدم الدالة pickAFile () لمطالبة المستخدم بتحديد الملف الأول. إذا كانت غير صالحة ، اطبع رسالة خطأ:
    file1 = pickAFile ()

    لو ملف 1 == لا أحدأولا file1.endswith (".wav"):
    مطبعة("تم تحديد ملف غير صالح. الرجاء اختيار ملف WAV صالح. ")

  3. استخدم وظيفة pickAFile () مرة أخرى لتطلب من المستخدم ملف صوتي ثاني صالح:
    file2 = pickAFile () 

    لو file2 == لا أحدأولا file2.endswith (".wav"):
    مطبعة("تم تحديد ملف غير صالح. الرجاء اختيار ملف WAV صالح. ")

  4. قم بإنشاء كائنين صوتيين من ملفي الصوت المحددين:
    sound1 = makeSound (ملف 1) 
    sound2 = makeSound (ملف 2)
  5. اجمع أطوال الصوتين معًا لحساب طول الصوت المنضم الجديد. أنشئ كائنًا صوتيًا فارغًا جديدًا باستخدام الطول:
    newSoundLength = getLength (sound1) + getLength (sound2)
    JoinSound = makeEmptySound (newSoundLength)
  6. حلقة خلال كل عينة من الصوت الأول. انسخ قيمة العينة في كل فهرس إلى الصوت الجديد:
    ل أنا في يتراوح(0، getLength (sound1)):
    sampleVal = getSampleValueAt (sound1، i)
    setSampleValueAt (JoinSound، i، sampleVal)
  7. حلقة خلال كل عينة من الصوت الثاني. انسخ قيمة العينة في كل فهرس إلى الصوت الجديد ، بعد الصوت الأول:
    ل أنا في يتراوح(0، getLength (sound2)):
    sampleVal = getSampleValueAt (sound2، i)
    endOfFirstSound = getLength (sound1) - 1
    setSampleValueAt (JoinSound ، endOfFirstSound + i ، sampleVal)
  8. استكشف الصوت باستخدام وظيفة الاستكشاف ():
    استكشف (انضم إلى الصوت)
  9. اضغط على برنامج التحميل الموجود بين منطقة البرمجة وسطر الأوامر. احفظ الملف إذا طُلب منك ذلك.
  10. قم بتشغيل الوظيفة باستخدام سطر الأوامر:
    الانضمام إلى الأصوات ()
  11. اعرض الصوت المرتبط باستخدام النافذة الجديدة ، وانقر فوق تشغيل الصوت بالكامل زر لسماع الصوت:

استيراد وتحرير ملفات الصوت باستخدام JES

أنت الآن تفهم كيفية استيراد ملفات الصوت وتحريرها باستخدام JES. هناك العديد من الوظائف المضمنة الأخرى التي يجب أن تقدمها JES ، والتي ستتيح لك إجراء تحرير صوت أكثر تقدمًا.

يمكنك معرفة المزيد حول الوظائف الأخرى المتاحة باستخدام نافذة تعليمات JES.