رفتن به مطلب
  • 0

مشکل در کتابخانه ICOSTextToSpeech


arastooms

سوال

سلام به همه اساتید و عزیزان انجمن

:53:  :53:  :53:

موضوع کار با کتابخانه ICOSTextToSpeech 

 

همینطور که میدونید این کتابخونه کاربردی برای تبدیل " متن نوشتاری " به " گفتار هست "
یعنی شما میاید یک مقدار استرینگ به اون میدید واون برای شما مقدار رو میخونه
این برنامه به زبانهای مختلفی کار میکنه و قسمتهای مختلفی داره 
برای خواندن متن 
نگه داشتن متن 
تغیر زبان و ....

:areuok:
  :areuok: 

این کتابخونه که در لینک زیر در سایت مرجع معرفی شده از آخرین نسخه یعنی 
ICOSTextToSpeech is updated v1.90

 

استفاده میکنه که طبق این پست نویسنده 2 قابلیت به اون اضافه کرده


https://www.b4x.com/android/forum/threads/icostexttospeech.16628/#post-273488

 

Added: TTsCompleted as event - when the audio is completed it fire the event.
Changed: Ready to TTsReady the event

مشکل اینجاست که من قصد دارم وقتی متن کاملا خانده شد و به آخرین کلمه رسید برنامه 
یک تست مسیج بده که " متن به پایان رسید "

 

اینجا برای عزیزان کد های برنامه رو قرار میدم 

#Region Module Attributes
	#FullScreen: False
	#IncludeTitle: True
	#ApplicationLabel: ICOSTextToSpeech
	#VersionCode: 18
	#VersionName: 1.8
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region


Sub Process_Globals
End Sub

Sub Globals
Dim tts As ICOSTextToSpeech
Dim a As String
Dim lb As Label 

End Sub



Sub Activity_Create(FirstTime As Boolean)

	tts.InitializeTTs("tts","en")
	Activity.LoadLayout("icostts")
	Activity.AddMenuItem("Esci","esci")
	Activity.Title="ICOSTextToSpeech Library v1.80- Giuseppe Salvi"	
	
	a = "a 27-year-old Somali man has been charged with attempted murder, assault AND kidnapping after an alleged armed rampage across Christchurch which ended when he was shot by police."
	'&"In a special court sitting at his bedside in Christchurch Hospital today, where the man Is under police guard As he recovers from the wounds he suffered, Judge Paul Kellar suppressed the man's name, and a request was made for him to undergo a psychiatric assessment." 

End Sub

Sub TTsCompleted
	ToastMessageShow("Events Fired",True)
End Sub

Sub TTsReady (Success As Boolean)

	If (Success) Then
		ToastMessageShow("TTS is Ready",False)
	Else
		ToastMessageShow("TTS is not Ready",False)
	End If
	
End Sub

Sub Activity_Resume
End Sub

Sub Activity_Pause (UserClosed As Boolean)
End Sub

Sub b1_Click

	tts.ReadAndSpeakSMS("A Simple Sms Reader and Speak","Read All Sms","Update Sms","Stop Speaking","Exit")
	
End Sub

Sub b2_Click

	tts.WriteAndSpeakText("A Simple Write and Speak","Speak","Clear","Stop","Exit")
	
End Sub

Sub b3_click

	tts.SetLanguageToSpeaks("Language Selector","Exit")
	
End Sub

Sub b4_Click

	tts.EngineByPackageName = "com.google.android.tts"
	
End Sub

Sub b5_Click

	lb.text=tts.DefaultEngine
	
End Sub

Sub b6_Click

	tts.PitchToSpeak = 6.5
	
End Sub

Sub b7_Click

	tts.RateToSpeak = 0.5
	
End Sub

Sub b8_Click

	tts.Speaks = a
	
End Sub

Sub b9_Click

	tts.Pause
	
End Sub

Sub b10_Click

	tts.Resume
	
End Sub

Sub b11_Click

	tts.ShutDown
	
End Sub

Sub b12_Click

	tts.ShutUp
	
End Sub

Sub b13_Click

	tts.Start
	
End Sub

Sub b14_Click

	tts.Stop
	
End Sub

Sub b15_Click

	tts.ChangeDefaultLanguage("Change Default Phone Language","Exit")
	
End Sub

Sub esci_Click

	tts.ShutDown
	ExitApplication
	
End Sub

همونطور که می بینید بین خط 
36 تا 50 
این کد ها قرار داره که فکر میکنم برای همین منظور نوشته شده 

Sub TTsCompleted
	ToastMessageShow("Events Fired",True)
End Sub

Sub TTsReady (Success As Boolean)

	If (Success) Then
		ToastMessageShow("TTS is Ready",False)
	Else
		ToastMessageShow("TTS is not Ready",False)
	End If
	
End Sub


اگر در برنامه ساب play و شروع خواندن با دکمه شماره 8 باشه

 


Sub b8_Click

	tts.Speaks = a
	
End Sub 

یعنی این ساب رو بعد از زدن دکمه اجرا کنیم و شروع به خواندن متن میکنه 
چه طور باید بگیم وقتی متن تموم شد 
پیام بده که " متن شما کاملا خوانده شد "

 

 

////////////////////////////////////////////////////////////////////////////////////////////////////  /

 

:53:   :53:

فایل نمونه شامل سورس و کتابخانه ها در لینک زیر آپلود شد
تا عزیزانی که نیاز دارند استفاده کنند

 

http://s6.picofile.com/file/8250637184/105ICOSTextToSpeech_v1_90.zip.html

 

 

 

:53:   :53:

 

با تشکر از عزیزانی که راهنمایی می فرمایند
مرسی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

8 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

@,

بله کلاً کپی کن جایگزین ساب قبلی کن

ss همون Tts هستش

  • Dim tts As ICOSTextToSpeech
  • Dim ss As ICOSTextToSpeech
لینک ارسال
به اشتراک گذاری در سایت های دیگر

@,

خب سابی که داره خودش میگه که وقتی خوندن تموم شد توست مسیج نشون بده

Sub TTsCompleted
	ToastMessageShow("Events Fired",True)
End Sub

شما یک سورس تست درست کن یه متن رو در اکتیوتی کریت شروع به خوندن بکنه

بعد این ساب رو هم قرار بده و ران بگیر ببین همین توست مسیج نشون داده میشه یا خیر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

مرسی محمد جان از راهنمایی 
ولی دقیقا من همین کار رو میکنم و لی قبل از اتمام خوانش متن و قبل از تمام شدن کار مسیج اجرا میشه !!!!
در واقع نمیدونم اشکال کار کجاست ؟؟؟
و این ساب چه طور عمل میکنه !!!
 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

فک کنم این عملی باشه

Sub ss_TTsCompleted
	If ss.IsSpeaking Then
	ToastMessageShow("speaking",True)
	Else
	ToastMessageShow("speak finish",True)
End If
End Sub

یه بار تست کن

لینک ارسال
به اشتراک گذاری در سایت های دیگر

فک کنم این عملی باشه

Sub ss_TTsCompleted
	If ss.IsSpeaking Then
	ToastMessageShow("speaking",True)
	Else
	ToastMessageShow("speak finish",True)
End If
End Sub

یه بار تست کن

متاسفانه جواب نمیده 

در واقع من اومد داخل ساب مطالب شما رو نوشتم به این صورت 


Sub TTsCompleted 
	
	If TTsCompleted Then
	ToastMessageShow("speaking",True)
	Else
	ToastMessageShow("speak finish",True)
	End If
	
End Sub

در دکمه play هم گفتم اول بخون بعد این ساب رو اجرا کن 

اینطوری دکمه 8 که play هست رو میزنم فقط میخونه

 


Sub b8_Click

	tts.Speaks = a
	TTsCompleted
	
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

@,

ارسطو جان باید بنویسی ss.IsSpeaking نه If TTsCompleted Then

لینک ارسال
به اشتراک گذاری در سایت های دیگر

@,

ارسطو جان باید بنویسی ss.IsSpeaking نه If TTsCompleted Then

محمد جان یعنی سابی رو که نوشتی کلا کپی کنم تو برنامه ؟؟؟؟

خوب این که اروور میده ؟؟؟

 

If ss.IsSpeaking Then 

مقدار ss رو قرمز نشون میده و نمیشناسه؟؟؟

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام و سپاس مشکل من حل شد محمد عزیز 
واقعا ممنون دوست عزیز 
 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...