تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] ارجو المساعدة في برنامج لتشغيل الملفات الصوتية لنطق الارقام
#1
السلام عليكم الاخوة الكرام
مرحباً ..
أنا عضوة جديدة في المنتدي و هذه أول مشاركة لي،  أتمنى أن أكون ضيف مرحب به.

أريد منكم مساعدة في برنامج لتشغيل ملفات صوتية لنطق الارقام، أي كالتالي:


لنطق رقم واحد يتم استدعاء ملف صوتي '1.wav'

و لنطق الرقم 35 يتم تشغيل كل من الملفات التالية على التوالي: الملف الصوتي '5.wav'، الملف الصوتي 'و.wav'، ثم الملف الصوتي '30.wav'

وهكذا لباقي الارقام ...

لا أريد مكتبة أو دالة ، أريد برنامج متكامل.

و شكراً لكم
الرد }}}
تم الشكر بواسطة: Hasaneen
#2
وعليكم السلام ورحمة الله

مانوع المساهمة التي ستقدميها في انشاء برنامجك اذا كنتي تريدين برنامج متكامل ؟؟
الرد }}}
تم الشكر بواسطة: Hasaneen , عبد الهادي بهاب
#3
يمكنك البدأ بشيء مثل :

كود :
   Sub PlayNumber(number As Integer)

       If (number >= 0 And number <= 19) Or (number Mod 10 = 0 And number <= 100) Then

           PlaySoundFile(number)

       ElseIf number < 100 Then

           Dim ones As Integer = number Mod 10
           Dim tens As Integer = number - ones

           PlayNumber(ones)
           PlaySoundFile("و")
           PlayNumber(tens)
       End If
   End Sub
   Sub PlaySoundFile(number As String)
       Dim filePath As String = String.Format("{0}\Sounds\{1}.wav", Application.StartupPath, number)
       My.Computer.Audio.Play(filePath, AudioPlayMode.WaitToComplete)
   End Sub

الكود السابق يشغل الارقام من 0 الى 100 

واستخدامه بسيط ، بعد وضع زر ومربع نص ، في حدث ضغط الزر :


كود :
       PlayNumber(TextBox1.Text)


الكود غير امن تماما ولكنه يعمل ، اترك لك الفرصة لتطويره
الرد }}}
#4
بإختصار أفضل طريقة لهذا المطلوب من وجهة نظري :

استخدام مكتبة قوقل لقراءة الحروف العربية .

وعمل تفقيط للأرقام مثلاً :

تكست الارقام = 1319
تكست التفقيط = ألف و ثلاثمائة و تسعة عشر

وإستخدام مكتبة قوقل لقراءة تكست التفقيط .
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
#5
(09-09-20, 05:38 PM)Anas Mahmoud كتب : يمكنك البدأ بشيء مثل :

كود :
   Sub PlayNumber(number As Integer)

       If (number >= 0 And number <= 19) Or (number Mod 10 = 0 And number <= 100) Then

           PlaySoundFile(number)

       ElseIf number < 100 Then

           Dim ones As Integer = number Mod 10
           Dim tens As Integer = number - ones

           PlayNumber(ones)
           PlaySoundFile("و")
           PlayNumber(tens)
       End If
   End Sub
   Sub PlaySoundFile(number As String)
       Dim filePath As String = String.Format("{0}\Sounds\{1}.wav", Application.StartupPath, number)
       My.Computer.Audio.Play(filePath, AudioPlayMode.WaitToComplete)
   End Sub

الكود السابق يشغل الارقام من 0 الى 100 

واستخدامه بسيط ، بعد وضع زر ومربع نص ، في حدث ضغط الزر :


كود :
       PlayNumber(TextBox1.Text)


الكود غير امن تماما ولكنه يعمل ، اترك لك الفرصة لتطويره

شكراً لك اخي الكريم، سوف أقوم بتجربته و اعطيك الرد. ما قمت بتجربته كالتالي:

Dim SAPI = CreateObject("SAPI.spvoice")

        SAPI.Speak(TextBox1.Text)

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

        Dim sentence As String = TextBox1.Text
        Dim letterName As Char
        Dim symblicName As String = ""


        For Each letterName In sentence
            Select Case letterName
                Case "0"
                    symblicName = "0"
                Case "100"
                    symblicName = "100"

            End Select

            playFile(symblicName)
Next
    Private Sub playFile(ByVal Name As String)
        My.Computer.Audio.Play("C:\Users\u\source\repos\numToSpeech\sounds\" + Name + ".wav")


    End Sub

و العديد من الطرق ولكن مشكلتي هي تشغيل الملفات الصوتية على التوالي

(09-09-20, 08:07 PM)حريف برمجة كتب : بإختصار أفضل طريقة لهذا المطلوب من وجهة نظري :

استخدام مكتبة قوقل لقراءة الحروف العربية .

وعمل تفقيط للأرقام مثلاً :

تكست الارقام = 1319
تكست التفقيط = ألف و ثلاثمائة و تسعة عشر

وإستخدام مكتبة قوقل لقراءة تكست التفقيط .

شكراً لك اخي الكريم على المساعدة، ولكن أغلب المكتبات أو المحركات لا تدعم اللغة العربية!

(09-09-20, 05:38 PM)Anas Mahmoud كتب : يمكنك البدأ بشيء مثل :

كود :
   Sub PlayNumber(number As Integer)

       If (number >= 0 And number <= 19) Or (number Mod 10 = 0 And number <= 100) Then

           PlaySoundFile(number)

       ElseIf number < 100 Then

           Dim ones As Integer = number Mod 10
           Dim tens As Integer = number - ones

           PlayNumber(ones)
           PlaySoundFile("و")
           PlayNumber(tens)
       End If
   End Sub
   Sub PlaySoundFile(number As String)
       Dim filePath As String = String.Format("{0}\Sounds\{1}.wav", Application.StartupPath, number)
       My.Computer.Audio.Play(filePath, AudioPlayMode.WaitToComplete)
   End Sub

الكود السابق يشغل الارقام من 0 الى 100 

واستخدامه بسيط ، بعد وضع زر ومربع نص ، في حدث ضغط الزر :


كود :
       PlayNumber(TextBox1.Text)


الكود غير امن تماما ولكنه يعمل ، اترك لك الفرصة لتطويره

شكراً و بارك الله فيك يا اخي، الكود يعمل بشكل ممتاز.

طبعاً سأقوم بتطويره ليقبل أرقام تفوق ال 100 و إضافة العملة نهاية المبلغ و لن انسى أن أقوم بوضع البرنامج كاملاً هنا.

إن شاء الله في ميزان حسناتك أخي الكريم
الرد }}}
تم الشكر بواسطة: Anas Mahmoud , WaeLx
#6
السلام عليكم اخواني الكريم

اتمنى ان تكونوا بخير ..

بخصوص البرنامج لقد قمت بتطويره، و قمت بإضافة التالي:

- نطق الارقام من الصفر إلى الألف (بالإضافة إلى الارقام العشرية)
- إضافة العملة

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        If TextBox1.Text.Contains(".") Then
            Dim ss As String() = (TextBox1.Text).ToString.Split(".")
            checkPlayNumber(ss(0), ss(1))
        Else
            PlayNumber(TextBox1.Text)
            PlaySoundFile("دينار")
        End If

    End Sub
    Sub checkPlayNumber(number1 As Integer, number2 As Integer)
        If number1 = 0 Then
            PlayNumber(number2)
            PlaySoundFile("درهم")
        ElseIf number2 = 0 Then
            PlayNumber(number1)
            PlaySoundFile("دينار")

        ElseIf number1 <> 0 And number2 <> 0 Then
            PlayNumber(number1)
            PlaySoundFile("دينار")

            PlaySoundFile("و")
            PlayNumber(number2)
            PlaySoundFile("درهم")



        End If
    End Sub
    Sub PlayNumber(number As Integer)

        If number = 1 Then
            PlaySoundFile("دينار")
        ElseIf (number >= 1 And number <= 19) Or (number Mod 10 = 0 And number <= 1000) Then

            PlaySoundFile(number)



        ElseIf number < 100 Then

            Dim ones As Integer = number Mod 10
            Dim tens As Integer = number - ones

            PlayNumber(ones)
            PlaySoundFile("و")
            PlayNumber(tens)

        ElseIf number > 100 And number < 110 Then

            Dim ones As Integer = number Mod 10
            Dim tens As Integer = number - ones

            PlayNumber(tens)
            PlaySoundFile("و")
            PlayNumber(ones)


        ElseIf number >= 110 Or number Mod 10 = 0 Then

            Dim ones As Integer = number Mod 100
            Dim tens As Integer = number - ones

            PlayNumber(tens)
                PlaySoundFile("و")
                PlayNumber(ones)

            End If

    End Sub

    Sub PlaySoundFile(number As String)
        Dim filePath As String = String.Format("C:\Users\u\source\repos\numToSpeech\sounds\{1}.wav", Application.StartupPath, number)
        My.Computer.Audio.Play(filePath, AudioPlayMode.WaitToComplete)

    End Sub
ولكن لدي مشكلة وهي عند إدخال الارقام: 10,20,30,40,50,60,90 مع المئات لا يتم نطق الصوت أي على سبيل المثال : لا يتم نطق "120"

و اخيراً أريد منكم مساعدة في نطق الارقام فوق الألف و المليون.
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ارجو التعديل على الدالة المرفقة - الدالة تعيد الرقم -1 new_programer 4 90 20-03-24, 01:18 PM
آخر رد: تركي الحلواني
  [سؤال] أتمنى اجابة وافية:عمل برنامج بقاعدة بيانات SQL دون حاجة تثبيت SQLSERVER dr.programming 6 598 19-03-24, 08:56 AM
آخر رد: سلامه محمد11
  عدد الارقام العشريه ف الLabel Shafaga 29 8,549 31-01-24, 11:57 PM
آخر رد: muhammad_nasr
  [VB.NET] كيف يمكنني استظافة سوفت وير برنامج ادارة جهاز السي بي سي في المختبر الى برنامجي الحزين اليماني 2 282 15-01-24, 10:39 PM
آخر رد: الحزين اليماني
  ارجو الافادة للضرورة mohamed sabry 1 110 13-01-24, 03:37 AM
آخر رد: Taha Okla
  ارجو المساعدة فى شاشة طباعة الباركود new_programer 10 577 09-01-24, 08:41 PM
آخر رد: new_programer
  برنامج لحفظ اكوادي samsunggears 2 385 05-01-24, 12:57 AM
آخر رد: HALIM ELEULMA
  المساعدة - في تفعيل نسخة VB 2015 emamtron2014 2 5,102 24-12-23, 05:08 AM
آخر رد: laban
  [نقاش] أساتذتنا مشرفى المنتدى المساعدة و الدعم فى Telerik dr.programming 6 381 21-12-23, 12:29 AM
آخر رد: dr.programming
  [سؤال] توزيع الارقام على أكثر من تكست بوكس أبووسم 11 692 17-11-23, 12:04 AM
آخر رد: أبووسم

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم