الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مكتبة جافا لمعالجة الكلام

بدأه mohammeding في 16 يونيو 2009 · 18 رد · 2,540 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أردت استفسار عن هل هناك مكتبات بجافا لمعالجة الكلام و تحليله

لأنه هناك مشروع بجافا لبرنامج تقوم انت بكلام و هو يحول الكلام إلى نص

ارجو مساعدة منكم عن مكتبات جافا في هذا المجال او حتى نصائح عن هذا البرنامج هل ممكن اعمل عليه أم هو صعب

#2

السلام عليكم

بعد بحث في جوجل و جدات انه هناك مكتبة جافا تعمل في مجال Java Speech و إسم هذه المكتبة javax.speech

تعمل على معالجة الصوت ولكن و الله أعلم ان هذه المكتبة ليست حصرية يعني أنها تباع

المصدر

http://java.sun.com/products/java-media/sp.../api/index.html

#3

أخ محمد أعتقد أن هذه JSR

ابحث عن من قام بعمل بناء لهذه الـ JSR

انظر هذا المشروع

http://freetts.sourceforge.net/docs/index.php

لست متأكد من كلامي

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#4

السلام عليكم

بارك الله فيك أخ علاء لقد وجدت في ذلك مشروع مكتبة جافا و التي هي تحت إسم jsapi

هذه المكتبة هي في مرفقات قم بتشغيل ملف jsapi سينتج لك ملف jsapi.jar

فقم بوضعه في فسم المكتبات في jre

lib.rar

#5

الحمد لله الذي هدانا لهذا وماكنا لنهتدي لولا أن هدانا الله

أتمنى منك أن تفيدنا بما تصل إليه

اجعلنا معك في الصورة وبإذن الله سنساعدك فيما يصعب عليك

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

جزاكم الله خيرا ،، موضوع مفيد 

سيفيد كثيرا ان شاء الله  :wink:

صــفــر

#7

السلام عليكم

جزاكم الله خير على تشجيع

تنقسم

Java Speech API

إلى قسمين

speech recognition

يعني التعرف على الكلام بعبارة أخرى فهم الكلام المدخل إلى الحاسوب و تحويله إلى نص

بحيث انها تتطلب ميكروفون لي إدخال الصوت

وتتم عملية إ دخال الكلام بقاعدتين

Rule Grammars

تكون هذه القاعدة صارمة شوي بحيث ان المتكلم عليه إحترام القواعد مثلا

// Define the grammar name
grammar SimpleCommands
// Define the rules
public <Command> = [<Polite>] <Action> <Object> (and <Object>)*;
<Action> = open | close | delete;
<Object> = the window | the file
<Polite> = please;

Dictation Grammars

تفرض قيود كثيرة للمتكلم وتتطلب ايضا جودة إدخال صوت عالية جدا

speech synthesis

لم أستطع ترجمتها إلى عربية جيداتوليف كلمة

ولكن هنا هي عملية عكسية لسابقة يعني تكوين كلمة إنطلاقا من النص

تتطلب سماعات لكي تخرج الصوت

تم تعديل هذه المشاركة بواسطة mohammeding في 18 يونيو 2009 في 00:32

#8

أقدم لكم هذا الكود الذي يقوم بعملية النطق لكلمة Hello world

import javax.speech.*;
import javax.speech.synthesis.*;
import java.util.Locale;
public class HelloWorld {
public static void main(String args[]) {
try {
// Create a synthesizer for English
Synthesizer synth = Central.createSynthesizer(
new SynthesizerModeDesc(Locale.ENGLISH));
// Get it ready to speak
synth.allocate();
synth.resume();
// Speak the "Hello world" string
synth.speakPlainText("Hello, world!", null);
// Wait till speaking is done
synth.waitEngineState(Synthesizer.QUEUE_EMPTY);
// Clean up
synth.deallocate();
} catch (Exception e) {
e.printStackTrace();
}
}
}

ولكن عند تشغيل الكود يقول أنه هناك خطأ

java.lang.NullPointerException
	at HelloWorld.main(HelloWorld.java:20)
#9

الواضح أن الحزمة لا تقوم بإنشاء كائن من النوع Synthesizer

يبدو أنها بحاجة إلى إعدادات أو ماشابه

لم أستطع أن أشغلها أنا أيضاً

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#10

السلام عليكم

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

Java™ Speech API Programmer's Guide

الكتاب في مرفقات

jsapi_guide.rar

تم تعديل هذه المشاركة بواسطة mohammeding في 18 يونيو 2009 في 14:05

#11

المشلكة أن المكتبة التي لدينا لا تعمل بشكل صحيح

لأن شيفرة Hello word التي نعمل عليها

موجودة في هذا الكتاب

جاري البحث عن مكتبة أخرى

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#12

السلام عليكم

أخ علاء لقد وجدت مكتبة إسمها TalkingJava SDK

وهي متاحة لمدة 30 يوم

مصدر المكتبة

http://www.cloudgarden.com/JSAPI/index.html

المكتبة بصيغة .jar موجود في المرفقات

هذه المكتبة تحتاج إلى ثتبيث بحيت انها تنتج ملفين أول اسمه cgjsapi.jar بحيث يوضع في C:Program FilesJavajdk1.6.0jrelibext

و الثاني أسمه cgjsapi163.dll يوضع في C:Program FilesJavajdk1.6.0jrebin

البرنامج السابق عندما أقوم بتشغيله يبق معلق

ولكن يوجد هذا الكود يشتغل

import java.awt.*;
import java.awt.event.*;

import javax.speech.*;
import javax.speech.synthesis.*;
import javax.swing.*;

public class TextSpeaker
{
   static Synthesizer synth;

   public static JFrame createGUI ()
   {
	  JFrame frame = new JFrame ("Text Speaker");

	  WindowListener wl;
	  wl = new WindowAdapter ()
		   {
			   public void windowClosing
								   (WindowEvent e)
			   {
				  try
				  {
					  // Deallocate synthesizer
					  // resources.

					  synth.deallocate ();
				  }
				  catch (EngineException e2)
				  {
				  }

				  System.exit (0);
			   }
		   };
	  frame.addWindowListener (wl);

	  JPanel p = new JPanel ();

	  p.add (new JLabel ("Specify text to " +
						 "speak:"));

	  final JTextField text = new JTextField (20);
	  p.add (text);

	  frame.getContentPane ().add (p,
							  BorderLayout.NORTH);

	  p = new JPanel ();
	  p.setLayout (new FlowLayout
							  (FlowLayout.RIGHT));

	  JButton btnSpeak = new JButton ("Speak");

	  ActionListener al;
	  al = new ActionListener ()
		   {
			   public void actionPerformed
								   (ActionEvent e)
			   {
				  // Speak the context of the text
				  // field, ignoring JSML tags. 
				  // Pass null as the second
				  // argument because I am not
				  // interested in attaching a
				  // listener that receives events
				  // as text is spoken.

				  synth.speakPlainText
						  (text.getText (), null);

				  try
				  {
					  // Block this thread until
					  // the synthesizer's queue
					  // is empty (all text has
					  // been spoken). Normally,
					  // blocking the
					  // event-dispatching thread
					  // is not a good idea.
					  // However, the amount of
					  // text to be spoken should
					  // not take more than a few
					  // seconds to speak, and the
					  // user probably would not
					  // need to do anything with
					  // the GUI until the text
					  // had been spoken.

					  synth.waitEngineState
						(Synthesizer.QUEUE_EMPTY);
				  }
				  catch (InterruptedException e2)
				  {
				  }
			   }
		   };
	  btnSpeak.addActionListener (al);

	  p.add (btnSpeak);

	  JButton btnClear = new JButton ("Clear");

	  al = new ActionListener ()
		   {
			   public void actionPerformed
								   (ActionEvent e)
			   {
				  text.setText ("");
				  text.requestFocusInWindow ();
			   }
		   };
	  btnClear.addActionListener (al);

	  p.add (btnClear);

	  frame.getContentPane ().add (p,
							  BorderLayout.SOUTH);

	  frame.getRootPane ().setDefaultButton
									   (btnSpeak);

	  frame.pack ();

	  return frame;
   }

   public static void main (String [] args)
   {
	  try
	  {
		  // Create a synthesizer for the default
		  // locale.

		  synth = Central.createSynthesizer
										   (null);

		  // Allocate synthesizer resources.

		  synth.allocate ();

		  // Place synthesizer in the RESUMED
		  // state so that it can produce speech
		  // as it receives text.

		  synth.resume ();
	  }
	  catch (Exception e)
	  {				 
		  JOptionPane.showMessageDialog (null,
								 e.getMessage ());
		  System.exit (0);
	  }

	  createGUI ().setVisible (true);
   }
}

تبقى المشكلة انه الكلام الذي يخرج غير صحيح مية مية

TalkingJavaSDK_163.rar

تم تعديل هذه المشاركة بواسطة mohammeding في 18 يونيو 2009 في 21:32

#13

أظن أن غالب المكتبات في هذا المجال لن تكون مجانية

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#14

السلام عليكم

لقد كان لي تجربة مع هذه المكتبات

هذه المكتبات ليس من الدقة بمكان

تحتاج الى max heap =256

تحتاج إلى معرفة بمعالجة إشارات الصوت فيما يعرف

speech signal processing

من أمثلة تلك المكتبات

sphinix4 its free and it is open source

http://cmusphinx.sourceforge.net/sphinx4

لكن المكتبة التي ذكرتها يا اخ علاء هي عبارة عن تحويل النص إلى الكلام وليس العكس

http://freetts.sourceforge.net/docs/index.php

لكن يوجد مكتبة سهلة الاستخدام جدا وجمعت بين التقنيتين واستعلمتها بكل سهولة

لكن في هذا الوقت افتقدها

------------------

انا اخطط في الصيف ان نقوم بعمل مشروع بعنوان

arabic text to speech synthesizer

سنتعاون مع طلاب كلية هندسة الكهرباء طبعا للتعامل مع الاشارات

والله المستعان

#15
اقتباس
انا اخطط في الصيف ان نقوم بعمل مشروع بعنوان

arabic text to speech synthesizer

سنتعاون مع طلاب كلية هندسة الكهرباء طبعا للتعامل مع الاشارات

والله المستعان

موفقين أخ أنس .... ونرجوا اطلاعنا على كل جديد ..

بارك الله فيكم

#16

كم أكره الإشارات يا أنس

على كل أرحب بتعلم كل جديد

لذا أطلعني عن تطورات الموضوع

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#17
اقتباس
لكن يوجد مكتبة سهلة الاستخدام جدا وجمعت بين التقنيتين واستعلمتها بكل سهولة

لكن في هذا الوقت افتقدها

ألا تذكر عنها أي شئ ؟؟ 

:wub:

اسمها عنوانها اي شئ  :lol:

صــفــر

#18

alah y 3inek akhi

#19

قد حملت مكتبه زي كذا قبل فتره لأني كنت افكر أدخلها كجزئية في مشروعي بس مافضيت أجربها بسبب الإختبارات :(

بس هذيك فكرتها انها تحول النص إلى كلام ومادري ان كانت تسوي العكس أم لا

أشكرك حبيبي على الشرح وان شاء الله كلنا نستفيد منه ويجعله في ميزان حسناتك :)


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…