الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طلب برنامج جازاكم الله خيرا

مغلق
بدأه toyoki في 26 أكتوبر 2006 · 0 رد · 549 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1
أنس عبد الله كتب:
===============================================

طبعا أريد أن أنوه بأن الهدف الأساسي لهذا البرنامج ليس الأغاني فالعمل على نشر وتطوير الأغاني حرام وأنا لم أستمر بهذا المشروع للنهاية وأخرجه للنور بسبب الحرام والحلال ولكن أرجو أن يتم استخدامه من

أجل استخدامات أخرى وأنا بريء أمام الله من أي استخدام غير شرعي له.

===============================================

السلام عليكم ... :)

العقرب يريد برنامج لمطابقة الصوت مع النصوص

أي أنه يريد برنامج يتم تحميل ملف text وملف wave أو mp3 ومن ثم يتم تشغيل الملف الصوتي ونقوم نحن بالضغط على الجملة التي نسمعها وبذلك يتم حقظ بداية الموقع الخاص بها

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

حسنا :

كل ذلك يتوفر في البرنامج التالي:

akrab.JPG

حيث نرى ضمن هذه الصورة المتواضعة كلمات النص الذي نريد أن نواقت بينه وبين الأغنية التي يتم الاستماع لها الآن

خطوات استخدام البرنامج هي:

1- الضغط على زر تحميل وتحميل ملف الـ text العادي الذي يحتوي على النص التالي:

موسيقى

من دون قصد كتاب فتحته .. كتاب رفيقي مش معقول

هايدا خطك دغري عرفته .. مكتوب بحبك على طول

من دون قصد كتاب فتحته .. كتاب رفيقي مش معقول

هايدا خطك دغري عرفته .. مكتوب بحبك على طول
.......
حتى نهاية الأغنية

2- ثم يطلب منا البرنامج أن نعطيه مسار الأغنية الصوتية التي تقابل هذه الكلمات، أعطيه ملف الـ mp3 الذي يوافق هذه الكلمات

بعدها يتم تفعيل أزرار معينة ضمن البرنامج وتظهر لدينا شاشة مشابهة للشاشة السابقة

الآن نقوم بتشغيل الأغنية وذلك بالنقر على الزر الموجود على المسجل أسفل الناقذة على اليسار

حسنا الآن نحن نسمع الأغنية ولكن حالما نسمع الجملة الأولى من الأغنية (من دون قصد كتاب فتحته .. كتاب رفيقي مش معقول) وحالما نسمع بداية حرف الميم في بداية الجملة نقوم

بالضغط عليها على الفورم السابق فنرى أن البرنامج قد وضع لنا قيمتين على الشكل التالي

101 ثانية وهي قيمة الوقت الذي انتهت عنده الموسيقى

101 وهي قيمة بداية جملة (من دون قصد كتاب فتحته .. كتاب رفيقي مش معقول)

الآن نتوقف قليلا وننتظر حتى تأتي الجملة التي بعدها: (هايدا خطك دغري عرفته .. مكتوب بحبك على طول)

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

108 وهي نهاية لجملة (من دون قصد كتاب فتحته .. كتاب رفيقي مش معقول)

108 وهي بداية جملة (هايدا خطك دغري عرفته .. مكتوب بحبك على طول)

ونستمر هكذا إلى النهاية حتى ننتهي من الأغنية

ولكن مالذي حدث من الناحية البرمجية

أريد أن تعرفو شي بدائي وهو أن عبارات الأغنية التي ضمن الـ Labels والـ Scroll bar تعمل وكأنها كائن واحد أي أن الأغنية مرتبطة بالـ ScrollBar وذلك بواسطة تعليمات برمجية بسيطة

الشيء الثاني وهو أنه عندما فتحنا الأغنية فإن البرنامج قد قام بحجز مصفوفة مؤلفة من 200 عنصر كحد أعظمي (عدد عبارات الأغنية) وكل سجل من سجلات المصفوفة يتم حجزه بالشكل

التالي:

Private Type Rec
    Words As String
    Duration As Double
End Type

أي أن كل سجل هو عبارة عن قيمتين الأولى هي للنص الخاص بالسجل والثانية هي لتوقيت السجل ضمن الأغنية

ولكن في البداية يتم تحميل كل الـ Duration بالقيمة صفر وذلك لأن الكمبيوتر لم يغرف بعد أين تتوضع هذه السجلات بالنسبة للملف الصوتي ولكنك عمدما نقرت بالماوس على كل عنصر من

عناصر الأغنية فإنك بذلك تقوم بإملاء الـ Duration سجل بعد سجل

الآن وبعدما أنتهينا من مرحلة المواقتة واستطعنا أن نربط كل عبارة ببدايتها الزمنية لا بد من أن نقوم بحفظ التعديلات التي أدخلناها وذلك عن طريق الأمر حفظ

وسيقوم البرنامج بحفظ النص والمدة الزمنية بملف ذو امتداد tim وذلك للاستخدامات المستقبلية

أي أن البرنامج يفتح ملفات من نوعين

ملفات txt وهي ملفات نصوص فقط من دون مدة زمنية مع كل نص

ملفات tim وهي عبارة عن ملفات text أيضا ولكن يفصل بين كل سطر وسطر آخر قيمة زمنية تعبر عن إزاحة العبارة الزمنيو عن بداية الملف الصوتي المرفق

ويقوم البرنامج بالتسجيل بصيغة tim فقط ولكن لن يتم التسجيل إلا إذا كانت العبارات كلها وراء بعضها البعض من ناحية الوقت

الآن بقيت فكرة واحدة فقط وهي فكرة المعاينة

يتعتمد فكرة المعاينة على خاصية ربط المصفوفة السابقة مع خاصية الـ Current Position الخاصة بعنصر الـ Active Movie وذلك عن طريق متحول عام اسمه pop حيث يلاحق هذا المتحول

الخاصية Current Position ويحرص دائما على أن يأخذ قيمة معقولة له حسب الكود التالي:

    If cmdLoad.Enabled = False Then
        If (sndMP3.CurrentPosition > SongWords(pop).Duration) And (sndMP3.CurrentPosition > SongWords(pop + 1).Duration) Then
            pop = pop + 1
        End If
        If (sndMP3.CurrentPosition < SongWords(pop).Duration) And (sndMP3.CurrentPosition < SongWords(pop + 1).Duration) Then
            pop = pop - 1
        End If
        If (sndMP3.CurrentPosition > SongWords(pop).Duration) And (sndMP3.CurrentPosition < SongWords(pop + 1).Duration) Then
            lblPrev.Caption = SongWords(pop).Words
        End If
    End If

بالإمكان تحميل المشروع من هنا وتطويره:

http://mypage.ayna.com/anaskurdy/Final-Audio.rar

ملاحظة:

إذا صادفتكم مشاكل في فتح المشروع ضمن بيئة فيجوال بيسك فالرجاء تنزيل الإضافة Active Movie من موقع ميكروسوفت

إذا استمرت المشاكل حتى من بعد تنزيل تلك الإضافة فالرجاء إضافة الكائن Active Movie إلى المشروع بشكل يدوي ومن ثم تنزيله على الفورم باسم sndMP3 وبعدها سيعمل كل شيء

بنجاح بإذن الله :)

أحتاج الى هذا البرنامج لان الرابط لا يعمل أرجووووووووووووووا المساعدة جازاكم الله خيرا

hicham_ksouri@hotmail.com

تم تعديل هذه المشاركة بواسطة HnHn في 26 أكتوبر 2006 في 22:51

pic_2005-07-12_185744.jpg

هذا الموضوع مغلق.

مواضيع مشابهة