میشه تو ویژوال بیسیک برنامه ای نوشت که متن رو به صدا تبدیل کنه مثلا تو تکست نوشته " ویژوال بیسیک " این رو بخونه . ؟ راهنمایی کنید مرسی
Printable View
میشه تو ویژوال بیسیک برنامه ای نوشت که متن رو به صدا تبدیل کنه مثلا تو تکست نوشته " ویژوال بیسیک " این رو بخونه . ؟ راهنمایی کنید مرسی
بله می شه نوشت،
اول باید یه روش برای نوشتن تلفظ دقیق کلمات درست کنید،
بعد یه Database از تلفظ کلمات متداول درست کنید،
بعد هم باید یه روش برای بهترین حدس برای یه کلمه ی ناشناخته که تو Database نیست پیدا کنید،
همچنین باید از دیگر کلمات جمله بفهمید که این کلمه بهتره چه کلمه ای در نظر گرفته بشه و چه طور تلفظ بشه،
در نهایت هم باید اصل کار رو انجام بدید که خوندن کلمات از روی تلفظ دقیقشون هست.
تا حالا همچین برنامه ای نوشته نشده ؟ آخه این توضیحات شما متین اما خوب خود روش رو پیدا می کردم سوال نمی پرسیدم در واقع الگوریتم سختی داره این برنامه اگه بتونیم به کمک بچه های سایت برنامه نویس این پروژه رو درست کنیم خیلی عالی میشه .
همه این مدل برنامه ها یه سری روش های خاص دارن که بینشون مشترکه فقط توی زبان های مختلف یه کوچولو فرق می کنه. مثلا توی فارسی یه کلمه رو هزارجور می شه علامت گذاری کرد ولی توی انگلیسی علامت گذاری در کار نیست.
برای نوشتن Speech To Text باید از شبکه ی عصبی استفاده کرد، برای Text To Speech هم فکر می کنم این روش که گفتم جواب می ده. فقط باید یه مقدار پردازش صدا بلد باشیم، بر عکس Speech To Text که کلا باید پردازش صدا کرد.
اره باید یه الگوریتم هوشمند استفاده کنیم که خودش بتونه یکی رو به عنوان بهترین صدا انتخاب کنه اما خوب حالا از کجا شروع کنیم ؟
اول باید فرض رو بر این بذاریم که Database رو داریم و تلفظ کلمات رو هم داریم.
مثلا فرض کن تلفظ ها رو این طوری می نویسیم :
برنامه نویس : barnAmenevis
ویژوال بیسیک : viZvAlbeysik
تشخیص : taSKis
معلّق : moEallaq
فعلا هم کاری به این نداریم که تلفظ بعضی از کلمات تو Database نیست (آخر کار به این جا فکر می کنیم)
حالا باید دنبال یه روش برای تلفظ barnAmenevis ، viZvAlbeysik ، moEallaq یا taSKis باشیم.
مثلا الان این راه به ذهنم می رسه که تلفظ تک تک حروف بی صدا و صدا دار رو به صورت فایل wav ذخیره کنیم، بعد با توجه به تلفظ نوشته شده این ها رو پشت سر هم بچسبونیم.
بعد محل چسبیدنشون رو هم باید نرم کنیم، تا پرش توی صدا احساس نشه.
ضمنا باید از قبل Noise صداهای فایل ها رو بگیریم.
به این دلیل هم گفتم فایل wav که راحت تر می تونیم بازش کنیم و اطلاعات صداش رو به صورت عدد در بیاریم و پردازش کنیم.
ببین دوست من،
من خیلی وقته میخوام این چیزی که شما الان میخوای درست کنی رو درست کنم، تمام الگوریتمشم برای خودم پیاده سازی کردم (البته تو ذهنم)
ولی متاسفانه با Mic سیستمم مشکل دارم
برای فارسی یک مشکلی هست
کسی که متن رو به برنامه میده باید دقت داشته باشه که حتما کاراکتر های َ ُ ِ و ... رو به برنامه بده تا برنامه بتونه درست تلفظ کنه
-----
سرنخ میدم تا تهش خودت برو
مثلا کلمه سلام چند تا کاراکتر داره؟
نه اشتباه کردی 5 تا کاراکتر داره که به ترتیب میشه س َ ل ا م
خوب حالا این ها رو برای خودت دونه به دونه بدون حروف صدا دار ( ِ ُ َ و ...) تلفض کن
اگر درست فهمیده باشی میتونی برای خودت یک برنامه بنویسی
امیدوارم که متوجه شده باشی چون تا باهات صحبت نکنم نمیتونم حرف رو درست بهت تفهیم کنم
موفق باشید
به خاطره همینه که می گم باید تویه یه DataBase تلفظ ها رو داشته باشیم.
خوب کار ضبط صداهاش با من من همه حروف الف بارو از اول هر حرفه با تلفظش ضبط می کنیم این طوری خوبه دیگه اره ؟
این برنامه توسط شرکت پارس خوان نوشته شده اما ما هم چیزی از اونا کم نداریم تیم سایت برنامه نویس اینو درست کنیم .
من مشکلی ندارم
شما صدا ها رو ضبط کن (ترجیحا با پسوند mid)
منم روش کار میکنم
چیز سختی نیست فقط یک چیزی
صدا ها رو آپلود کردی منم دانلود کردم Play کردم نبینم صدای عمو سیبیلو باشه ها :بامزه:
ترجیحا دوست دارم شب رویا ببینم نه کابوس :لبخند:
به نظرتون پسوند wav باشه بهتر نیست؟
پسوند wav که خیلی بهتره
کد نویسیش هم راحت تره
اما من گفتم mid چون کم حجم تره و تبادلش راحت تر
شما با هر پسوندی بدی آخرش من تبدیلش میکنم به همون wav
باشه من شروع می کنم به ضبط صدا ها فقط واسه اینکه مشکلی پیش نیاد یکبار دیگه بگید چه جوری ضبط کنم ؟ هر حرف الفبا رو با سه بار ضبط کنم ؟
اَ- اِ-اُ ؟
یه کار سخت!
حروف صدا دار رو جدا و کشیده ذخیره کن. اوّل و آخر صداشون رو حذف می کنیم که صدا یکنواخت بشه.
حرو بی صدا رو هم خیلی راحت بگو، بعد ما اصل صدای حرف رو cut می کنیم. یعنی آخر صدا رو حذف می کنیم که مثلا بِ تبدیل به ب خالص بشه.
آخرشم باید موقع چسبوندن این ها به هم، یه پیوستگی نرم بین صداهاشون ایجاد کنیم، که یه پردازش صدای خیلی ساده است.
باشه من ضبط می کنم بهتون میدم play کن اپه مشکلی داشت بگو دوباره اصلاح می کنم .
ما می توانیم ! این موفقیت از آن ماست به زودی زود
نه دوست من شما اگر بخوای هر کاراکتر رو 3 بار برای هر حرف صدا دار Record کنی کاری جز الکی بالا بردن حجم Database نمیکنی
هر حرف بدون حروف صدا دار و حروف صدا دار بصورت جدا
مثلا تو همون مثال سلام شما سلام رو برای خودت بگو به "ل" که رسیدی کشششششششششش بده حرف رو "ا" رو نگی ها تا متوجه منظور من بشی
حالا هدف من همون تلفظیه که شما الان از این مثال کن از حرف "ل" بدست آوردید
این راهش نیست
البته رو کاغذ حرف و الگوریتمتون ظاهرا کار می کنه
ولی تو عمل اون جوابی رو که انتظار دارین نمی گیرین
اولا اینکه باید تو ساختن فایل هاتون نهایت دقت رو بکنید
چون حتی مکث در حد صدم ثانیه تو فایل ...
دوم زمان Load شدن این فایل هاست
یعنی شما واسه هر حرف یا صدا باید یه فایل wav رو Load کنید:متعجب:
فکر کردین Speech مایکروسافت اینجوری کار می کنه؟:گیج:
خوب دوست عزیز ما داریم اینجا با هم کار می کنیم تا بتونیم الگوریتم رو بهینه کنیم و درست و حسابی در بیاریم . همگی باید کمک کنیم.
نظر شما چیه ؟
من می گم باید تولید کنید صدا رو
نه اینکه بیاید Record کنید بعد Load کنید اونم چی؟ برای هر صدا یک فایل ( این فاجعست )
شما باید اطلاعات کاملی از ساختار و تولید صدا به دست بیارید
همین "سلام" که دوست ما مثال زدن ( Google it رو نمی گما یکی دیگه:بامزه:) شما می خواید صدای "س" رو به صورت صامت Record کنید
بعد جدا گانه صدای " اَ " بعد می خواید این 2 تا رو پشت سر هم Load کنید
به نظر شما با این کار صدای "سَ" تولید می شه؟
خیر
بلکه یه صدای صامت "س"
بعد یه صدای "اَ"
اگه خودت دقت بکنی می بینی قشنگ داری خود "س" رو به حرف صدا دار وصل می کنی و ادامش می دی
پس اصلا این روش که من بخوام فایل درست کنم و اینارو Load کنم رو فراموش کن
شما باید خودت در زمان اجرا صدا رو تولید کنی
فکر کردی این Microsoft SAM یا Amanda یا ... همه آدم هستن؟
همشون تولید می شن و اینکه با تغییراتی تو تولید نوع صدا عوض می شه
این Jamshidy داشت گولت می زد که تو صدای دوست دخترتو Record کنی بدی بهش:قهقهه:
دوست دخترم عمرا بزارم کسی صداشو بشنوه می خواستم بدم خاله سوسکه بخونه :قهقهه:
خوب خلاصه فکرا رو بزارین رو هم ببینیم چه می کنیم . یه الگوریتم باید براش درست کنیم .
در یک کلام میگم دهنت سرویس با این پستات
هر کدوم از این پستای شما رو میخونم کلی میخندم
و اما جواب: کی کفته یکی یکی میخوایم Load کنیم؟ در یک کلام همه رو بهم میچسبونیم بعد Load میکنیم
من که مینویسم سلام برنامه میاد صدا های مربوط به اینا رو میپسبونه به هم بعد Play میکنه
بعدشم نسخه آزمایشی رو که واسه خنده نزاشتن شما صدا های مربوط به "س َ ل ا م" رو بده ببینیم چه میشه کرد اگر نشد خوب فدا سرت یک فکر دیگه بر میداریم
من حرفی ندارم یه کاری بکنیم واسه اینکه صداها دوباره کاری نشه شما یه نمونه ثبت کن به من بده من دقیق مثه اون رو بسازم براتون بفرستم . اینطوری خوبه دادا نه ؟
باش هر کاری می کنین بکنین
از من گفتن بود
این راهش نیست
تو هم خاله سوسکه رو خسته می کنی آخر گردن میوفته می گه من برنامم رو می خوام حالا بیا بهش ثابت کن که این کار عملی نبود:قهقهه:
یکی از دوستای من تو کار ساخت و ساز خونه هست
واسه صدای آسانسور ، از صدای دوست دخترش استفاده خواست بکنه، Record هم کرد
بعد دید خیلی مسخره شد ، این کارو نکرد
دختره گیر داد می گه می خوام ببینم چهطور شده:متعجب::گریه::بامزه:
سلام
شما عجب آدمایی هستید ها زمان ما همه با احترام و یه ژست مهندسی به هم پاسخ میدادند من اصلا خوشم نمی یومد وقتی هم که میخواستیم یه حرف های اینجوری بزنیم آقای ایکس ایکس ایکس ... میومد و یه کار زرد میداد
این رو واستون پیدا کردم البته به دات نت هست
http://msdn.microsoft.com/en-us/library/ms986944.aspx
و یه توضیحاتی هم اینجا هست
http://travelogue.travelvice.com/per...eign-language/
اینجا هم خوندنش خالی از لطف نیست
http://stackoverflow.com/questions/5...rabic-language
این لینک ها رو من دیدم (اما بررسی نکردم) به درد نمیخوره از Speech های نوشته شده استفاده میکنه
----
شما با 36 تا پست، عضویت تیر 90 چطور از اون موقع ها یادته؟
اما باید بگم آره اون موقع ها لحن همه به قول شما مهندسی بود و با کلاس
اما چه میشه کرد زندگی کردم زندگی برگشت منو !!! اِاِاِاِاِ اشتباه شد ببخشید منظورم این بود که زندگی آدمو عوض میکنه دیگه!
افسوس
جمشیدی جان من rezadg قبلی هستم اون اکانتم رمزش رو یادم نیست اون ایمیلم هم از بین رفته به خاطر وان با این نام کاربری میام
داداش به Admin بگو برات درستش کنه
اگه Admin نتونه که پس تکلیف یوزر اکانت هایی مثل یکی شما چی میشه؟ هو تو تو؟ پر؟
سنگ مفت گنجشک مفت بزن یا میگیره یا نه
ای بابا دست رو دلم نزار
یه بار دوتا گرفته بودم به خاطر عید یکیش حذف شد ولی بعد ها ....
کم مونده بود اخراج بشم
اصلا پست های قبلی رو شما خوندی درست؟!
قرار نیست همه ی حروف و صدا ها رو ضبط کنیم بچسبونیم تو ... هم.
وقتی یکی می گه 'آ' در واقع دو تا چیزو با هم می گه : 'ع' و 'آ' ما قراره 'آ' رو جدا کنیم، همین طور برای بقیه ی حروف. بعد Noise رو حذف کنیم و صدا ها رو روون و تر و تمیز کنیم.
وقتی هم می خوایم پخش کنیم فقط نمی چسبونیم کنار هم، نمودار موج رو توی نقاط نزیک به اتصال نرمال می کنیم.
بعدشم بقیه ی Text To Speech ها هم حتی واسه Miscrosoft ، صدای Sample گرفتن، ...خل نیستن که دونه دونه ی صدا ها رو از عالم غیب تولید کنند. فقط فرقش اینه که مثلا مثل ما نیومدن Wav بذارن کنار برنامه و ... .
بچه ها چرا الکی پست های اسپم میزنین ما اومدین اینجا یه پست زدیم بتونیم کنار هم یه برنامه فارسی حرفه ای بسازیم یکی میگه اینطوری شد اونطوری شد حاشیه نرید با هم کار کنیم به قول جمشیدی تست میزنیم نشد میریم سراغ یه راه دیگه همه اول کار که نمیان برنامه رو سه سوت بسازن . به جای اسپم های الکی فکر کنین ببینین چه جوری باید درست حسابی کار کنیم مرسی از دوستان عزیز
آقا من که بیخیال شما هم شدم
دیروز سر کار بودم داشتم به همین موضوع فکر میکردم
دیدم من Mic سیستمم خرابه Mic گوشیم که سالمه
با گوشی ضبط میکنم یک نمونه که بتونه بگه سلام رو امتحان میکنم میزارم اینجا
دستت طلا رفیق منم تا جایی که بتونم کمکتون می کنم
بعد از چند ماه دوباره این پست رو کشیدم بالا بنده همون ( joker_pok ) هستم . چی شد هیچ خبری از تست و این حرفا ؟ مسدر جمشیدی ؟ کجایی برادر ؟
من یه برنامه پیدا کردم که این کار رو می کنه بدک نیست .
http://ouo.ir/farsi-text-to-speech.html
یه جایی هم خوندم تبدیل متن به صدای فارسی با الگوریتم درخت تصمیم گیری .
سلام به همه
دوباره دوستان منو مجبور کردن يه انشاي طولاني بنويسم!:
به نام الله پاسدار حرمت خون شهدا، شهدايي که با خون خود درخت اسلام را آبياري کردند ... موضوع انشا: تابستان خود را چگونه ... ببخشيد ... کلمات فارسي را چگونه بخوانيم ...
آره برنامه خوبيه.نقل قول:
من یه برنامه پیدا کردم که این کار رو می کنه بدک نیست .
لينک اصليش هم اينه: http://parskhan.aftab.cc/
خوبيش اينه که هم اپن سورسه (البته اگه حافظم درست ياري کنه، کدش با C# نوشته شده) هم تو هلپ نرم افزار، توضيحات خوبي راجع به الگوريتمش داده هم ديتابيس خوب و کاملي داره هم اينکه سازندش هرگونه دخل و تصرف در نرم افزار و استفاده از ديتابيسشو مجاز اعلام کرده.
حداقل توصيه مي کنم مستندات نرم افزارشو حتما بخونيد. نکات خوبي گيرتون مياد.
در ضمن فايل صوتي تلفظ تمام حروف با چهار حالت با ساکن، با فتحه، با کسره و با ضمه (دقيقا يادم نيست؛ شايد هم هفت حالت: مثلا سا سو سي سَـ سِـ سُـ سْـ) توش گذاشته شده.
فقط دو تا ايراد اساسي داره. يکي اين که هر کار کني صدا يه جورايي بريده بريده به نظر ميرسه. شايد کاري که آقاي IamOverLord گفتن رو انجام ندادن:
شايد هم به اين خاطر باشه که روششون مثل روش ايشون بوده که :نقل قول:
اوّل و آخر صداشون رو حذف می کنیم که صدا یکنواخت بشه ... آخرشم باید موقع چسبوندن این ها به هم، یه پیوستگی نرم بین صداهاشون ایجاد کنیم،
يعني اينکه مثلا وقتي ميخواي بگي "سَـ" همينجوري بگي؛ به نظر من اينجوري خيلي مصنوعي در مياد و راه درست تر اينه که بياريش تو وسط کلمه. مثلا بگي "عسل" بعد "عَـ" و "ل" رو کات کني و "سَـ"ش بمونه.نقل قول:
حروف صدا دار رو جدا و کشیده ذخیره کن.
البته قبول دارم کار سختيه ولي احتمالا با يخورده صرف وقت شدنيه!
ايراد دومش هم اينه که صداي توليد شده، خيلي خسته کننده است و به قول يکي از بازديد کننده ها تو خواب هم راحتمون نميذاره.
که البته خود سازنده نرم افزار (آقاي محمد رضا نيرومند) به نظرش اومده که دليل اين مشکل، يکنواختي صداست و راه حلشو تو بلند و آروم کردن صداي خروجي دونستن. (به نظر خود من؛ شايد بشه يه بررسي کرد که مثلا هر جمله فرضا با بلندي 100 شروع بشه و همين طور کم بشه تا ته جمله بلنديش بشه فرضا 70 يا يه همچين چيزي)
به نظرم اينا بيشتر الگوريتمه تا برنامه پياده شده.نقل قول:
یه جایی هم خوندم تبدیل متن به صدای فارسی با الگوریتم درخت تصمیم گیری
بد نيست اين جا رو يه نگاه بندازيد:
http://aftab.cc/modules.php?name=New...print&sid=1010
من که هميشه از متون انگليسي گريزانم و تا مجبور نشم حس انگليسي خوندنم نمياد. (منظورم اين نيست که انگليسي نميفهمم، پروژه فاينال ليسانسم همه منابعش ژاپني بودن! و انگليسي در برابر اون گلابيه، ولي جه کنم که حسش نيست) اگه کسي اونا رو خونده يه لطفي کنه خلاصش رو برام بگه!نقل قول:
این رو واستون پیدا کردم البته به دات نت هست
http://msdn.microsoft.com/en-us/library/ms986944.aspx
و یه توضیحاتی هم اینجا هست
http://travelogue.travelvice.com/per...eign-language/
اینجا هم خوندنش خالی از لطف نیست
http://stackoverflow.com/questions/5...rabic-language
خيلي هم الکي نيست.نقل قول:
شما اگر بخوای هر کاراکتر رو 3 بار برای هر حرف صدا دار Record کنی کاری جز الکي بالا بردن حجم Database نمیکنی. هر حرف بدون حروف صدا دار و حروف صدا دار بصورت جدا
وقتي قراره يه کار کاربردي انجام بشه، پس بهتره به نحو احسن انجام بشه.
تو فارسي (و طبيعتا تو ساير زبونها) وقتي يه حرف (به قول زبان شناسا صامت) به يه صدا (به قول زبان شناسا مصوت) برسه، تا حدود زيادي اين دو تا با هم تداخل مي کنن، يعني خود اون صدا تو نحوه تلفظ اون حرف هم تاثير ميذاره.
شما بيا موقع گفتن "سَبد"، "سُکوت"،" سِه"، "سار"، "سوز"، "سيب" (موقع تلفظ حرف "س" ) لب و لوچه و زبون و دهنت رو بررسي کن ببين تو همه موارد، يه حالت دارن؟
مسلمه که نه .مثلا موقع گفتن "س" در "سبد" دهن کشيده ميشه ولي در "سوز" حسابي غنچه ميشه.
تازه از اين قضيه بيشتر، صداي قبل از حرف رو حرف اثر داره: مثلا نحوه اداي "س" در کلمات "داس" "دوست" "دست" "بيست" "پُست" "فهرست" رو نگاه کنيد: تو هر کدوم لب و لوچه به يه شکل در مياد و طبيعتا صداي توليدي يه جوره. (شايد تو چندتا کلمه اين به چشم نياد ولي وقتي تو يه متن طولاني شما همه "س" ها رو به سبک "سَـ" بخوني، اون موقع مشکل کار نمايان ميشه)
جطوري؟ ميشه بيشتر توضيح بديد؟نقل قول:
من می گم باید تولید کنید صدا رو ... شما باید اطلاعات کاملی از ساختار و تولید صدا به دست بیارید
شرمنده! مي تونيد راجع به اين قضيه توضيح بديد.نقل قول:
پسوند wav که خیلی بهتره
کد نویسیش هم راحت تره
من از بچگي دوست داشتم در مورد صوت و فايلاي صوتي اطلاعاتي بدست بيارم ولي هنوز که نتونستم.
حتي وقتي يه فايل صوتي رو با نرم افزاري مثل ساندفورج يا ... باز ميکنم، از اون نوار قلبايي که اونجا مي بينم، هيچ سر در نميارم.
(شايد آخرش مجبور شم برم ارشد فيزيک آکوستيک بخونم!)
فکر کنم ديگه زنگ خورد. بقيه انشا بمونه برا زنگ انشاي بعدي !
يا به قول اي کيو سان "عجله نکن؛ زنگ تفريحه، زنگ تفريح"
با عرض سلام خدمت همه دوستان
من قبلا این برنامه رو نوشتم (شاید هم اولین نفری بودم که نوشتم). اگه درخواست کنین نحوه کارکرد برناممو براتون میذارم.
موفق باشید
اره چه اشکالی داره بزار تا بتونیم روش کار کنیم و حرفه ای بسازیمش
ممنون میشم
سلام
میدونم تاپیک خیلی قدیمیه، ولی تو نت دنبال کارای خودم بودم که به این پروژه برخوردم. درسته جاواست ولی چون مرتبط با همین بحثه، گفتم یه اشاره ای بهش بکنم:
(البته پروژه رو کلی بررسی کردم لذا احتمال داره اشتباه توضیح بدم!)
تو این پروژه، اومده کلا ناحیه فک و دهن و زبان وسایر قسمت های مرتبط با حرف زدن رو شبیه سازی کرده با مدل های نسبتا دقیق مکانیکی!
بعد میاد میگه خوب! وقتی ما میخوایم فلان حرف رو بزنیم زبون چه حرکتی میکنه، فک چطور میشه، لبا جمع میشن یا باز میشن و ...بعد همین حرکات رو تو اون شبیه ساز، مدل میکنه و نیروهای ناشی از این حرکت و فرکانش ایجاد شده و .. رو محاسب میکنه و نتیجش میشه صدای خروجی!!!!!!!!
http://www.magic.ubc.ca/artisynth/pm...Voice.HomePage