25-04-20, 05:13 PM (آخر تعديل لهذه المشاركة : 26-04-20, 09:14 PM {2} بواسطة ابو ليلى.)
تحويل النص إلا كلام بالعربي دون اتصال بالنت
السلام عليكم و رحمة الله و بركاته بعد تتبع مسار ملفات الصوت الخاصة باللغة تبين ان هناك اكثر من ناطق باللغة العربية و لكن يلزم تفعيله في البداية نتأكد من ان لغتنا لديها الميزات المطلوبة من الاعدادات
و اذا لم تكن مثبتة ميزة تحويل النص الى كلام فيجب تثبيتها
بعد ذلك نحن بحاجة الى حزم صوتية ناطقة بالعربية نذهب الى التبويب كلام في نفس الصفحة
حتى هذه اللحظة هناك حزمتين للعرب الاولى باسم hoda و هي تتبع جمهورية مصر. و الثاني باسم Naayf و هو يتبع المملكة العربية السعودية. الجدير بالذكر ان مشروع Naayf ما زال قيد التطوير و يمكنك الانضمام الى فريق التطوير.
بعد تثبيت الاصوات المطلوبة
الشيئ المؤسف في الموضوع ان هذه الاصوات لا يتم تثبيتها في المكان المطلوب بشكل افتراضي اذ انه يجب ان تتوفر بشكل فعلي في المسار التالي الى جانب الاصوات القديمة.
بعد تصدير الملف نحفظه في مكان على اي قرص , نقوم بفتح الملف عبر اي محرر نصوص و نعدل داخله كما بالصورة باستبدال المسار داخل الملف الى المسار المطلوب
و من ثم نحفظ الملف , و بعد ذلك نقوم بالضغط باليمين على الملف و من ثم Merge او دمج و نعمل ذلك مع كل ملف جديد.
بعد هذا الجهد نلاحظ توفر الحزم في المكان المطلوب , و لم يتبقى سوى التجريب.
انشأ مشروع جديد و ضع عليه أدوات كما يلي
الاجراء الخاص بجلب الاصوات
PHP كود :
Private Sub Btn_GetVoices_Click(sender As Object, e As EventArgs) Handles Btn_GetVoices.Click Using synth As SpeechSynthesizer = New SpeechSynthesizer()
For Each voice As InstalledVoice In synth.GetInstalledVoices() Dim info As VoiceInfo = voice.VoiceInfo Dim AudioFormats As String = ""
For Each fmt As SpeechAudioFormatInfo In info.SupportedAudioFormats AudioFormats += String.Format("{0}" & vbLf, fmt.EncodingFormat.ToString()) Next
If info.SupportedAudioFormats.Count <> 0 Then TextBox1.AppendText(" Audio formats: " & AudioFormats & vbNewLine)
Else TextBox1.AppendText(" No supported audio formats found" & vbNewLine)
End If
Dim AdditionalInfo As String = ""
For Each key As String In info.AdditionalInfo.Keys AdditionalInfo += String.Format(" {0}: {1}" & vbLf, key, info.AdditionalInfo(key)) Next TextBox1.AppendText(" Additional Info - " & AdditionalInfo & vbNewLine)
Private Sub Speek_Arabic() Dim speaker = New SpeechSynthesizer() ' speaker.Rate = -2 Dim culture = CultureInfo.GetCultureInfo("ar-SA") Dim voices = speaker.GetInstalledVoices(culture)
If voices.Count > 0 Then speaker.SelectVoice(voices(0).VoiceInfo.Name) speaker.SpeakAsync(RichTextBox1.Text) End If End Sub
توضيح المعلق الذي سيتكلم هنا هو Naayf . وجب التنويه الى ان Culture هو من يحدد المتحدث لذلك قمنا بجلب معلومات شاملة عن المعلق , و اذا توفر اكثر من متحدث بنفس اللهجة فاننا نختار اول معلق راجع الكود. اما Hoda فـ Culture الخاص بها فهو (ar-EG).
اما المكاتب الخارجية فجربت احداها على الرابط التالي. Vision A ID الصوت نزل باسم معلق اسمه Maged. يتم اختيار المعلق حسب اسمه في الكود .
يوجد العديد من المعلقين على الانترنت لكن الاشكال ان كل المعلقين مدفوعين. لذا من النادر ان تجد معلق مجاني.
لا تنسى استيراد فضاء الاسماء الخاص بالمكتبة System.Speech.
السلام عليكم و رحمة الله و بركاته بعد جلب الاصوات يظهر لدي اسماء المعلقين كما يلي
PHP كود :
Microsoft David Desktop الإنجليزية (الولايات المتحدة) 30 1 Microsoft David Desktop - English (United States) TTS_MS_EN-US_DAVID_11.0 True No supported audio formats found Additional Info - Age: Adult Gender: Male Language: 409 Name: Microsoft David Desktop SharedPronunciation: SpLexicon: {0655E396-25D0-11D3-9C26-00C04F8EF87C} Vendor: Microsoft Version: 11.0
ـــــــــــــــــــــــــــــــــــــــ Microsoft Naayf العربية (السعودية) 30 1 Microsoft Naayf - Arabic (Saudi) MSTTS_V110_arSA_NaayfM True No supported audio formats found Additional Info - Age: Adult DataVersion: 11.0.2016.1130 Gender: Male Language: 401 Name: Microsoft Naayf SayAsSupport: spell=NativeSupported; cardinal=NativeSupported; ordinal=NativeSupported; date=NativeSupported; time=NativeSupported; telephone=NativeSupported; url=NativeSupported; alphanumeric=NativeSupported SharedPronunciation: Vendor: Microsoft Version: 11.0
ـــــــــــــــــــــــــــــــــــــــ Microsoft Zira Desktop الإنجليزية (الولايات المتحدة) 30 2 Microsoft Zira Desktop - English (United States) TTS_MS_EN-US_ZIRA_11.0 True No supported audio formats found Additional Info - Age: Adult Gender: Female Language: 409 Name: Microsoft Zira Desktop SharedPronunciation: Vendor: Microsoft Version: 11.0
ـــــــــــــــــــــــــــــــــــــــ Maged العربية (مصر) 0 1 Vocalizer Maged VocalizerMaged True No supported audio formats found Additional Info - Name: Maged Vendor: VisionAid International Gender: Male Language: C01
ـــــــــــــــــــــــــــــــــــــــ
و انت يجب ان يظهر لديك اسماء المعلقين لتختار من بينهم من تريد
بعد تجريب مثال فهو يحتوي على هدى فقط لذا وجب تعديل السطر التالي
25-04-20, 07:23 PM (آخر تعديل لهذه المشاركة : 25-04-20, 07:34 PM {2} بواسطة ابو ليلى.)
هذا ملف تصويري للعملية انا لم اجري اي تعديل فقط كما شرحت ارجع الى الصور و لاحظ ان القيمة VoicePath موجودة مسبقاً والا لن يعمل معك اي ملف صوت حتى الاجنبي. الحمد لله انها عملت معك
(25-04-20, 07:31 PM)السندبااد كتب : أخي العزيز أبو ليلى بيَّض الله وجهك وجعل هذا السَّبْقَ البرمجي في موازين حسناتك في هذا الشهر الفضيل
حقيقة أنت قدمت عملاً رائعاً، طالما أتعب الكثير من البرمجين
فجزاك الله عنا كل خير وجعلك من عتقاء الشهر الفضيل
بارك الله بك اخي بشير و زادك الله خلقاً و علماً و جعلنا و اياكم جميعا من عتقاء شهر رمضان من النار بالمناسبة كنت اود ان اسألك عن الاخ ابو جاسم (الشاكي لله) ان كان لديك اخبار عنه فقد طال انقطاعه وفقه الله اين ما كان (اشتقنا له)
(25-04-20, 07:34 PM)ابراهيم ايبو كتب :
السلام عليكم ورحمة الله وبركاته
لو ان مؤسسة برمجية ضمت في صفوفها الاخ ابوليلى او السندبااد لتمكنوا من النجاح
فكيف لو اجتمع الاثنان !!! حتما تذلل الصعاب
بارك الله بكما ولكما وجعله في موازين حسناتكما
الاخ العزيز ابراهيم وفقك الله لما يحب و يرضى و زادك من خيره و رزقك خيرا جزاك الله خيرا