ams 4 arab
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتدى تعليمي متعلق بالاتوبلاي ميديا ستوديو
 
الرئيسيةأحدث الصورالتسجيلدخول

 

 خوارزمية برنامج ناطق للنصوص بالعربي

اذهب الى الأسفل 
كاتب الموضوعرسالة
باسمة




المساهمات : 352
تاريخ التسجيل : 14/03/2013

خوارزمية برنامج ناطق للنصوص بالعربي Empty
مُساهمةموضوع: خوارزمية برنامج ناطق للنصوص بالعربي   خوارزمية برنامج ناطق للنصوص بالعربي Emptyالجمعة يوليو 17, 2015 12:19 pm



خوارزمية برنامج ناطق للنصوص بالعربي

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

الموضوع بدون شك صعب صعوبة اللغة العربية

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

ندخل على الرابط التالي :
http://www.acapela-group.com/

و أبدأ في تجميع كل حرف بأصواته مهملا في ذلك الشدة

حيث أجمع مثلا أصوات الحرف ب بأصواته على شكل ملفات mp3

وسيكون المتحصل عليه 10 أصوات هي
[size=48]بَ -بُ-بِ-بَا-بُو-بِي-بًا-بٌ-بٍ-بْ

هذه الملفات الصوتية تحفظ بنفس تسميتها
حيث سيصبح عندك
بَ.mp3 - بً.mp3 .... الخ

بعد ما تجمع كل الحروف العربية بهذا الشكل مع مراعاة احتمالات
الهمزة على " النبرة و الواو و السطر ... الخ

تحتاج لملفين اثنين
واحد لـ أل التعريف
سجل : الْ بهذا الشكل و احفظها ينفس التسمية

وتحتاج لفترة صمت سجل
ملف مدته ثانيتين أو ثلاث شاغر و تسميته 0

بعد جمع هذه الملفات ضعها كلها في مجلد audio التابع للأوتوبلاي
[/size]


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

في global functions

كود PHP:


كود PHP:


الكود:
 
function muzikcal(path)

Audio.Load(CHANNEL_BACKGROUND, path, true, false);

Page.StartTimer(10);

local tblSplit = String.SplitPath(path);

nLen = Audio.GetLength(CHANNEL_BACKGROUND)

tnctr=true

end 

في حدث on timer





الكود:


كود PHP:

    

        
[code]

if tnctr then

nCurPos = Audio.GetCurrentPos(CHANNEL_BACKGROUND);

nGetLength = Audio.GetLength(CHANNEL_BACKGROUND);

if Math.Round(nCurPos)== Math.Round(nGetLength) then

item = item + 1

itemdatasi = ListBox.GetItemData("ListBox2", item);

ListBox.DeselectItem("ListBox2", -1);

ListBox.SelectItem("ListBox2", item);

muzikcal(itemdatasi)

end

end 
[/code]


ضع في تجميعيتك العناصر التالية
- ListBox1 تدعم العربي و لا تكتب فيها أي معادلة يمكنك اخفاء العنصر
- Input1 يقبل العربي و متعدد الاسطر هذا العنصر ستكتب فيه ما تريد سماعه
- ListBox2 تدعم العربي و تستطيع جعله مخفي كذلك
في حدث on select لهذا العنصر أكتب





الكود:


كود PHP:

    

        
[code]

tblSel = ListBox.GetSelected(this);

if tblSel then

    item = tblSel[1]

    local sLBData = ListBox.GetItemData(this, tblSel[1]);

    muzikcal(sLBData)

end 
[/code]


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



كود PHP:


الكود:
 
ListBox.DeleteItem("ListBox1", LB_ALLITEMS);
ListBox.DeleteItem("ListBox2", LB_ALLITEMS);
------------------------------------------------------------------------------------------------------------
t =Input.GetText("Input1");
istibdalate={["ّ"] = ""} 
s = string.gsub (t, ".",istibdalate) 
----------------------------------------
for i = 1,String.Length(s) do
d=string.sub(s, i, i)
result = ListBox.AddItem("ListBox1", d, "");
end
my_table = {"َ", "ً", "ُ", "ٌ", "ّ" ,"ِ", "ٍ", "ْ"};
for k = 1,ListBox.GetCount("ListBox1")do
for x = 1 , #my_table do
var = ListBox.GetItemText("ListBox1", k);
if var == my_table[x] then
ListBox.SetItemText("ListBox1", k-1, ListBox.GetItemText("ListBox1", k-1)..ListBox.GetItemText("ListBox1", k));
ListBox.DeleteItem("ListBox1", k);
end
end
end
--------------------------------------------------------------------------------------------------------------------------
for k = 1,ListBox.GetCount("ListBox1")do
p = ListBox.FindItem("ListBox1",1, LB_BYTEXT, "ي");
if p ~= -1   then
ListBox.SetItemText("ListBox1", p-1, ListBox.GetItemText("ListBox1", p-1)..ListBox.GetItemText("ListBox1", p));
ListBox.DeleteItem("ListBox1", p);
end
end
--------------------------------------------------------------------------------------------------------------------------
for k = 1,ListBox.GetCount("ListBox1")do
p = ListBox.FindItem("ListBox1",1, LB_BYTEXT, "ا");
if p ~= -1  then
ListBox.SetItemText("ListBox1", p-1, ListBox.GetItemText("ListBox1", p-1)..ListBox.GetItemText("ListBox1", p));
ListBox.DeleteItem("ListBox1", p);
end
end
--------------------------------------------------------------------------------------------------------------------------
for k = 1,ListBox.GetCount("ListBox1")do
p = ListBox.FindItem("ListBox1",1, LB_BYTEXT, "و");
if p ~= -1  then
ListBox.SetItemText("ListBox1", p-1, ListBox.GetItemText("ListBox1", p-1)..ListBox.GetItemText("ListBox1", p));
ListBox.DeleteItem("ListBox1", p);
end
end
--------------
--------------------------------------------------------------------------------------------------------------------------
for k = 1,ListBox.GetCount("ListBox1")do
p = ListBox.FindItem("ListBox1",1, LB_BYTEXT, "لْ");
if p ~= -1  and  String.Find(ListBox.GetItemText("ListBox1", p-1), "ا", 1, false)~= -1 then
ListBox.SetItemText("ListBox1", p-1, ListBox.GetItemText("ListBox1", p-1)..ListBox.GetItemText("ListBox1", p));
ListBox.DeleteItem("ListBox1", p);
end
end

الكود:
من افكار ثامر ابوبلقيس


الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
خوارزمية برنامج ناطق للنصوص بالعربي
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» خوارزمية مبتكرة : تجزئة مجموعة ثامر أبو بلقيس
»  عمل برنامج لفحص الاتصال بالنت
»  شرح إدراج صورة أيقونه للزر xbutton + برنامج تعديل حجم الصور
»  حماية ملف cdd من الفك بالوينرار برنامج + شرح مصور
»  ( مجابة ) استفسار بخصوص فك ضغط وتسطيب برنامج

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
ams 4 arab :: منتديات الأوتو بلاي وصناعة الأسطوانات :: منتدى الدروس والشروحات-
انتقل الى: