اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

السلام عليكم ورحمة الله وبركاته

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

شرح طريقة عمله :-

المثال يتكون من نموذج بمسمى frmTextToSpeech عليه مربعي نص غير منتظمين تم تسميتهما txtQuote و txtAuthor بالإضافة إلى زر أمر بأسم cmdSpeak والذي يقبع أسفل منه الكود التالي :

Private Sub cmdSpeak_Click()
'On Error Resume Next
Dim strValue As String
Dim strQuote As String
Dim strAuthor As String
If Me.cmdSpeak.Caption = "&Get Random Quote" Then
' get quote
strValue = GetRandomQuote
If InStr(1, strValue, ":") Then
Me.txtQuote = Split(strValue, ":")(0)
Me.txtAuthor = Split(strValue, ":")(1)
Me.cmdSpeak.Caption = "&Speak"
End If
Else
' speak quote
Me.ctlDirectSS.AudioReset
Me.ctlDirectSS.Speak Me.txtQuote & "                 Author:  " & Me.txtAuthor
Me.cmdSpeak.Caption = "&Get Random Quote"
End If
End Sub
الكود أعلاه يبدأ عمله بمجرد النقر على زر أمر cmdSpeak ، حيث يقوم على إستجلاب بيانات أحد السجلات من حقلي Quote و Author بصورة عشوائية من جدو ل tblQuotes وإظهارها على مربعي النص الغير منتظمين بمساعدة الوحدة النمطية الخاصة التالية ثم القيام بقراءة النصوص المعروضة فيهما :
Private Function GetRandomQuote() As String
On Error Resume Next
Dim rs As ADODB.Recordset
Dim strSQL As String
Dim lngMaxID As Long
Dim lngID As Long
Dim strOut As String
Set rs = CreateObject("ADODB.Recordset")
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
' get the maximum ID in tblQuotes
strSQL = "SELECT Max(tblQuotes.ID) AS MaxOfID FROM tblQuotes"
rs.Open strSQL, CurrentProject.Connection
If rs.State = 1 Then
If Not rs.BOF Then
lngMaxID = rs("MaxofID")
End If
rs.Close
End If
' get a random positive number that is <= MaxID
Randomize
lngID = CLng(lngMaxID * Rnd + 1)
' use this random number to get a quote
strSQL = "SELECT Quote, Author FROM tblQuotes WHERE ID = " & lngID
rs.Open strSQL, CurrentProject.Connection
If rs.State = 1 Then
If Not rs.BOF Then
strOut = rs("Quote") & ":" & rs("Author")
End If
rs.Close
End If
Set rs = Nothing
GetRandomQuote = strOut
End Function

أرجو الإحاطة أن المثال يحتاج إلى مكتبة الربط المسماة XVoice.dll وكذلك المرجع المسمى Microsoft Dirct Speech Sysnthesis ليستطيع نطق الكلمات والعمل بصورة جيدة.

ومن يحتاج إلى ملف مكتبة الربط فيمكن إنزاله بالنقـر هنـا

(للأسف المثال غير قادر على نطق الكلمات العربية)

أتمنى أن أكون قد وفقت في شرح المثال وأن يكون مفيدا لكم والله الموفق .

TextToSpeech.rar

قام بنشر (معدل)

السلام عليكم ورحمة الله وبركاته

الاخ الكريم / ابن مسقط ( ابو مآثر )

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

والسلام عليكم ورحمة الله وبركاته

تم تعديل بواسطه طيف
قام بنشر (معدل)

شكراً على المثال الرائع والمميز وجزاك الله كل خير على مشاركاتك ونشاطك الرائع في المنتدى ....

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

تم تعديل بواسطه HUSSIN
قام بنشر

بسم الله الرحمن الرحيم

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

أخيكم سهل أحمد ( ابو نعيم )

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information