PDA

نسخه کامل مشاهده نسخه کامل : کمک در تبدیل نوشتار به گفتار



scorpionblue2009
29-03-2010, 17:32
من می خوام یک برنامه مینویسم که یک متن فارسی رو میگیره بعد اون متن رو بخونه ؟؟؟

می خواستم بپرسم :

1-باید حروف رو یکی یکی ضبط کنم و با توجه با حروف موجود یکی یکی اونارو پلی کنم یا کلمه به کلمه ؟
2-چیکار کنم که یک صدا که تموم شد بلافاصله صدای بعدی پلی بشه ؟

_H2_
29-03-2010, 21:53
سلام
1)
به نظرم الگوریتم تلفظ تک تک حروف بسیار مشکل است.
مخصوصاً که ما در فارسی فتحه و کسره و ضمه و... را نمی نویسیم.

اولاً که شما باید هر حرف را با هر صدایش جداگانه ذخیره کنید و بعد هم بدون فتحه و کسره و... چطور میخواهید تلفظ کنید...
همین "سلام" به راحتی با فتحه و کسره و ضمه قابل تلفظ است!

تازه حروفی که نوشته و خوانده نمیشود هم میماند.

پس راه منطقی ذخیره صوت هر کلمه به طور مستقل است یک بانک کلمه+صوت.

2)
خوب متد Play را برای صوت بعدی اجرا میکنید!

=====

البته Microsoft Agent ها هم این قبیل قابلیت ها را دارند و من سالها قبل برنامه ای برای ساخت بانک صفارشی کلمه+صوت برای Agent از سایت مایکروسافت دانلود کرده بودم.

ولی بحرحال ساخت بانک کلمه+صوت را میخواهد.

موفق باشید.

scorpionblue2009
29-03-2010, 23:32
2)
خوب متد Play را برای صوت بعدی اجرا میکنید!

موفق باشید.

1-من با for each کلمه های داخل متن رو یکی یکی در میارم و به ازای هر کلمه صوت مربوط به اون رو اجرا میکنم ولی for each به تموم شدن صوت توجه نمیکنه و سریع میره سراغ کلمه بعدی بصورت که فقط کلمه آخر شنیده میشه

2- من حدودا 50 کلمه رکورد کردم ولی نمی دونم فتحه و کسره کلمه ها که به هم وصل میشن رو چطور درست کنم در این مورد هم یک راهنمایی بکنید


تشکر فراوان:40:

VILIBILI
31-03-2010, 01:22
سلام دوست من
این مطلب مربوط به voice reconition است و واسه خودش دنیایی هست یک عمر باید زحمت بکشی(بستگی به این داره که شما بخواهید پروزتون در چه سطحی باشه).
شما اول الگوریتم ژنتیک و شبکه های عصبی رو مطالعه کن بعد مقالات در این مورد رو مطالعه کن اگه منصرف نشدی برو دنبال پیاده سازیش(تازه اولش باید یه مقدار زبان های مطلب ، سی شارپ رو یاد بگیری و هوش مصنوعی رو هم یادت نره )
این سایت ها هم می تونه کمکت کنه :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

یه سرچ بزن در مورد سیستم های بیومتریک یه مقدار بیشتر آشنا میشی.
شاید من زیادی گندش کردم هیچ علمی در این دنیا وجود نداره که ایرانی نتونه به اون دست پیدا کنه.
مفق باشی

VILIBILI
31-03-2010, 01:31
سلام دوست من
این مطلب مربوط به voice reconition است و واسه خودش دنیایی هست یک عمر باید زحمت بکشی(بستگی به این داره که شما بخواهید پروزتون در چه سطحی باشه).
شما اول الگوریتم ژنتیک و شبکه های عصبی رو مطالعه کن بعد مقالات در این مورد رو مطالعه کن اگه منصرف نشدی برو دنبال پیاده سازیش(تازه اولش باید یه مقدار زبان های مطلب ، سی شارپ رو یاد بگیری و هوش مصنوعی رو هم یادت نره )
این سایت ها هم می تونه کمکت کنه :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

یه سرچ بزن در مورد سیستم های بیومتریک یه مقدار بیشتر آشنا میشی.
شاید من زیادی گندش کردم هیچ علمی در این دنیا وجود نداره که ایرانی نتونه به اون دست پیدا کنه.
مفق باشی

VILIBILI
31-03-2010, 01:33
آهان این رو یادم رفت بگم که به این کار میگن :
تبديل متن به گفتار(Text to Speech Conversion) ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

Mehran NZ
31-03-2010, 03:29
1-من با for each کلمه های داخل متن رو یکی یکی در میارم و به ازای هر کلمه صوت مربوط به اون رو اجرا میکنم ولی for each به تموم شدن صوت توجه نمیکنه و سریع میره سراغ کلمه بعدی بصورت که فقط کلمه آخر شنیده میشه

2- من حدودا 50 کلمه رکورد کردم ولی نمی دونم فتحه و کسره کلمه ها که به هم وصل میشن رو چطور درست کنم در این مورد هم یک راهنمایی بکنید


تشکر فراوان:40:
همین طور که جناب _H2_ گفتند اگه بخواین خودتون اینطوری برنامه نویسی کنیدالگوریتم فوق العاده پیچیده ای خواهد شد اینکار یه گروه خوب می خواد که روزها وقتشون و بذارن و این و بصورت اصولی الگوریتمش و درست کنن و بعدش باگهاش و برطرف کنن مثلا باید یه چیزی مثل تلفظ برنامه babylon رو نوشت که 100% با دو تا حلقه foreach درپید کار انجام نمی شه لول

_H2_
31-03-2010, 12:33
سلام

من با for each کلمه های داخل متن رو یکی یکی در میارم و به ازای هر کلمه صوت مربوط به اون رو اجرا میکنم ولی for each به تموم شدن صوت توجه نمیکنه و سریع میره سراغ کلمه بعدی بصورت که فقط کلمه آخر شنیده میشه
شما میتوانید از کلاس System.Media.SoundPlayer استفاده کنید.
مطمئن نیستم ولی گمانم متد PlaySync() از ریسمان اصلی یا ریسمان جاری برای کار خود استفاده میکند و میتوان با مباحث چند ریسمانی و این متد مشکل فوق الذکر را حل کرد.


من حدودا 50 کلمه رکورد کردم ولی نمی دونم فتحه و کسره کلمه ها که به هم وصل میشن رو چطور درست کنم در این مورد هم یک راهنمایی بکنید
منظورتان چگونگی چسباندن کلکات به یکدیگر است؟
گمان نمیکنم خیلی مشکل ساز شود.
ضمن اینکه اصولاً همین مطلب اختلافی بین تلفظ انسانی و رایانه ای ایجاد میکند و طبیعی است.

=====

اگر بانک کلمات شما بر اساس کلمه-صوت باشد، برنامه نویسی سختی پیدا نمیکند.
شما باید یک نوع جدول دو ستونه ایجاد کنید (یا با ساختمان داده های دستی یا با دیتابیس عادی SQLServer نوع nvarcharوvarbinary) ...
حتماً باید لیست کلمات شما مرتب شده (Sort) باشد تا با کمترین پردازش بتوان ایندکس کلمه و ایندکس آرایه بایتی حاوی فایلب wav صوت را پیدا کرد.

=====

موفق باشید.