(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 و إضافة العملة نهاية المبلغ و لن انسى أن أقوم بوضع البرنامج كاملاً هنا.
إن شاء الله في ميزان حسناتك أخي الكريم
