تقييم الموضوع :
  • 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"

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كود تحويل الارقام الى حروف عمور2016 2 17 منذ 4 ساعة مضت
آخر رد: عمور2016
  كيف يمكنني رفع برنامج فيجول بيسيك على موقع اسضافة mohamedgadain61 2 79 , 08:19 PM
آخر رد: Anas Mahmoud
  [VB.NET] طلب برنامج مخزن مجاني A12 2 1,238 26-10-20, 03:32 PM
آخر رد: samiha
  [VB.NET] ماهو افضل برنامج للتشفير ميدو الفنان 4 176 21-10-20, 09:17 PM
آخر رد: ميدو الفنان
  [سؤال] عند تشغيل برنامج في ريسورس فيجوال بسك بظهر خطا jam3h 0 98 17-10-20, 11:35 PM
آخر رد: jam3h
  كيف أجعل الـ TextBox لا يقبل سوي الارقام فقط ؟ PeterGhattas082460 2 131 15-10-20, 06:07 AM
آخر رد: kiki
  ارجو تعديل فى جملة SELECT new_programer 3 168 14-10-20, 11:50 PM
آخر رد: new_programer
  [VB.NET] برنامج اقساط على الفجوال بيسك 2010 وقاعده بيانات سيكوال سيرفر 2008 shawky ahmed 1 149 12-10-20, 09:12 AM
آخر رد: mmali127
  ممكن المساعدة فى برنامج البصمة مرفق مثال new_programer 3 250 12-10-20, 12:53 AM
آخر رد: new_programer
  ارجو المساعدة في كود حذف فاتورة بيع sofiane-phy 1 150 11-10-20, 12:12 AM
آخر رد: محمد كريّم

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


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