سنتز صحبت طبيعي فارسي با استفاده از روش اتصال قصعات صحبت
سنتز صحبت طبيعي فارسي با استفاده از روش اتصال قصعات صحبت 1
دكتر محمود تابنده مسلم نوده محمدمهدي كلانترهرمزي
دانشگاه صنعتي شريف دانشكدة مهندسي برق
چكيده: در اين مقاله روش اتصال قطعات صحبت براي سنتز صحبت مورد بررسي قرار مي گيرد و ضمن مقايسة مختصر
روش هاي مختلف، يك روش مناسب براي سنتز صحبت فارسي پيشنهاد مي شود. در اين پژوهش از دايفو نها 2 به عنوان
قطعات مناسب استفاده مي شود. در ادامه راه حل هايي كه براي بهبود صحبت توليدشده استفاده شده است و همچنين
اندكي در مورد اعمال اطلاعات آهنگين 3 به خروجي توضيح داده مي شود.
كلمات كليدي: 1- سنتز صحبت 2- روش اتصال قطعات 3- دايفون 4- پريودگام
-1 مقدمه
توليد مصنوعي صحبت داراي استفاده هاي گوناگوني است و چنانچه بتوان صحبت قابل فهم و طبيعي با ماشين
توليد نمود، مي تواند در موارد زير مورد استفاده قرار گيرد : صنعت مالتي مديا جهت پرهيز از ذخيرة سيگنال هاي حجيم
صوتي، سيستم هاي پاسخگو، واسط كاربر برنامه هاي جديد كامپيوتري، تبديل پيغام هاي پست الكترونيكي 4 به سيگنال
صحبت، خواندن كتاب براي نابينايان و استفاده هاي متنوع ديگر.
به طور عمده دو روش براي سنتز صحبت مورد استفاده قرار مي گيرد:
الف سنتز صحبت با استفاده از فرمن ت ها 5: در اين روش مجراي صوتي توسط فيلتر با دو منبع توليد سيگنال
مدل مي شود. واج هاي واك دار با توجه به فورمنت هاي آن واج توسط يك سيگنال پريوديك ساخته مي شوند . براي
1 - Concatenative Speech Synthesis
2 - Diphone
3 - Prosody
4 - Email
5 - Formant
واج هاي بي واك، منبع توليد نويز در نظر گرفته مي شود. گرچه با استفاده از اين روش مي توان صجبت قابل فهمي توليد
نمود، اما صداي توليدشده رباتيك و غيرطبيعي است.
ب روش اتصال قطعات صحبت : در اين روش صحبت طبيعي به قطعات مناسب تقطيع و در يك بانك ذخيره
مي شوند. در هنگام بازسازي سيگنال، اين قطعات به طرز مناسب كنار هم قرار م ي گيرند و صحبت توليد مي شود . با
استفاده از اين روش مي توان صحبت قابل فهم و طبيعي توليد نمود، به گونه اي كه قابل استفاده در كاربردهايي نظير
مالتي مديا كه احتياج به كيفيت بالا دارند، باشد . يكي از مهم ترين مراحل استفاده از اين روش، انتخاب نوع قطعة
انتخاب شده و نحوة تركيب است.
در اين پژوهش از روش دوم يعني روش اتصال قطعات صحبت براي توليد صحبت استفاده شد كه در ادامه
[ توضيحات بيشتري در مورد آن ارائه مي گردد.[ 3
-2 انتخاب قطعة مناسب
قطعة انتخاب شده براي ذخيره و بازسازي بسته به نوع ماربرد و كيفيت موردنظر مي تواند دار اي طول هاي متفاوت
باشد.
الف كلمه : در اين روش از كنار هم قراردادن كلمات از پيش ضبط شده جملات ساخته مي شود. همانطور كه انتظار
مي رود قواعد تركيب در اين روش ساده تر است و صحبت توليدشده تا حد زيادي قابل فهم خواهد بود اما با استفاده از
اين روش نمي توان جملات نامحدودي توليد نمود . همچنيني حافظة مورد استفاده نسبت به روش هاي ديگر زياد است .
در كاربردهايي كه تعداد كلمات محدود باشد، اين روش م يتواند مورد استفاده قرار گيرد.
ب هجا : در اين روش هجاها ذخيره مي شوند. هجا يك رشتة آوايي پيوسته است و در زبان فارسي از يك واك ه و
CVC ،" واكه ) مانند "با :V همخوان و :C) CV يك تا 3 همخوان تشكيل شده است . در فارسي هجا به 3 صورت
مانند "گفت" مي باشد. از آنجا كه واجگان فارسي از 6 واكه و 23 همخوان تشكيل شده CVCC مانند "سيب" و
است، كل هجاهاي ممكن 76314 خواهد بود ولي در عمل به دليل محدوديت هاي هم نشيني كمتر از يك دهم رقم فوق
[ مي تواند وجود داشته باشد.[ 1
چنانچه ملاحظه مي شود، يافتن و ضبط همة هجاها بسيار مشكل مي باشد. همچنين حجم لازم جهت ذخيرة اين مقدار هجا
بسيار زياد خواهد بود.
ج واج : واج كوچكترين جزء جداپذير صحبت در هر زبان مي باشد. گرچه با استفاده از واج به عنوان قطعة صحبت،
حجم بانك داده بسيار كم مي شود، اما در عوض بايد قواعد پيچيده اي در تركيب رعايت شود.
د دايفون : دايفون عبارت است از قطعه اي از صحبت كه از مركز پايدار يك واج شروع و در مركز پايدار واج بعدي
خاتمه مي يابد و شامل ناحية گذر بين دو واج مي باشد.[ 4] در اين روش علاوه بر حل مسألة ناحية مرزي واج ها، تأثير واج
قبل و بعد نيز در هر واج در نظر گرفته مي شود.
با توجه به توضيحات بالا، در اين پروژه از قطعة دايفون براي توليد صحبت استفاده شد.
-3 استخراج دايفون از صحبت فارسي
مي توان محاسبه كرد كه تعداد دايفون ها در زبان فارسي 1002 عدد است .[ 1] اگر بازة زماني هر دايفون به طور
متوسط 150 ميلي ثانيه باشد، كل فضاي لازم جهت ذخيرة دايفون ها برابر مقدار زير خواهد بود:
H= 1002 * 0.15 * B * S
13 خواهد بود. MB برابر H ، ذخيره شوند (S = و 44100 B = 2 ) CD چنانچه دايفون ها با كيفيت
دايفون ها را نمي توان به صورت جداگانه ضبط نمود و بايد آنها را از صحبت طبيعي استخراج نمود . گرچه
تحقيقاتي در مورد "جداكردن خودكار " 1 دايفون ها در زبان هاي ديگر انجام شده است [ 5]، اما در زبان فارسي هنوز
فعاليت ثمربخشي صورت نپذيرفته اس ت. بنابراين در اين پروژه تقطيع دايفون به صورت دستي انجام شد . براي اين منظور
ابتدا بايد صحبتي تهيه شود كه حاوي تمامي دايفون ها باشد و در هنگام ضبط نيز بايد سعي كرد تا محطيط ضبط
يكنواخت و عاري از نويز باشد.
همانگونه كه گفته شد، سيگنال صحبت از آواهاي بي واك و واك دار تشكيل شده است. آواهاي واك دار شبه
متناوبند و آواهاي بي واك به شكل نويز هستند . براي واج هاي واك دار محل شروع و خاتمة دايفون مهم است . محل
شروع دايفون چنانچه يك آواي واك دار باشد، از محل شروع ناحية كمينة سيگنال شبه پريوديك و محل خاتمة دايفون
نيز محل شروع ناحية كمينه در نقطة صفر خواهد بود . براي آواهاي بي واك كه شكل موج آنها نويزي است، محل
شروع يا خاتمه هر جايي م يتواند باشد. شكل 1 نمونه هايي از ابتدا و انتهاي يك دايفون را نشان مي دهد.
شكل 1- نحوة انتخاب ابتدا و انتهاي دايفون در سيگنال
همچنين در تقطيع دايفون بايد دقت نمود محل شروع دايفون در ناحية درنگ (و تقريباً وسط ناحية درنگ) يك
واج و محل خاتمة آن نيز در ناحية درنگ واج مجاور باشد.
در اينجا با ذكر يك مثال نحوة تقطيع و سنتز دايفو ن ها را نشان م يدهيم. در جملة "با صابون صورتم را شستم "،
دايفون ها را مي توان يه صورت زير جدا كرد:
-b + baa + aa- + saa + aa-b + boo + oon + n-s + soo + oo-r + ra + a-t + ta + a-m + m-r
+ raa + aa-sh + sho + os + s-t + ta + am + m-
در عمل تركيب بايد مكث ها نيز به نحو مناسب گنجانده شوند.
-4 تبديل متن به قطعات
در اغلب پروژه هاي سنتز صحبت، از سيستم تبديل متن به صحبت با دياگرام شكل 2 استفاده مي شود.
1 - Automatic Extraction
شكل 2- بلوك دياگرام سيستم
گرچه سنتز صحبت در زبان فارسي با توجه به ويژگي هاي آن نسبت به زبان هاي ديگر ساده تر است، اما تبديل
متن به دايفون يا واج بسيار مشكل مي باشد. زيرا در فارسي واكه هاي "َ"، "ِ" و "ُ" در متن هاي معمولي كمتر ديده
مي شوند. همچنين سكون و علامت تشديد در متن وجو د ندارد . براي حل اين مسأله راه حل هاي متعددي ارائه شده است
كه هركدام داراي مزايا و معايبي است . يكي از اين راه حل ها استفاده از بانكي است كه مشابه كلمات متن را ب ه همراه
اعراب و حركات لازم در بر داشته باشد.
با استفاده از اين روش مي توان هجاها را از هم جدا ن موده و از روي هجاها دايفون هاي مناسب استخراج شوند .
در اين رشته از انتها ."CVCVCCVC" : مثلاً چنانچه داشته باشيم "محمد"، رشتة واجگاني به اين صورت داريم
هجاها را جدا مي كنيم. براي جداكردن هجا بايد در نظر داشته باشيم كه واكه مركز هجاست و نمي تواند در اول هجا
از انتها جدا "CVC" قرار گيرد و قبل از واكه تنها يك همخوان مي تواند در هجا وجود داشته باشد . بنابراين هجاي
مي شود و به همين ترتيب الگوريتم مي تواند تكرار شود تا همة هجاها به دست آيند.
-5 توليد صحبت
تا اين مرحله قطعات متن و متناظر با آنها قطعات صحبت با نا م گذاري مشخص تهيه شد . آنچه براي توليد صوت
نهايي لازم است، استفاده از يك محيط برنامه نويسي و يك الگوريتم ساده براي اتصال قطعات است . در اين پروژه از
و امكانات اين محيط براي فايل هاي صوتي استفاده شد. visual C ++ محيط برنامه نويسي
-6 بهبود خروجي
خروجي چنين سيس تمي تا حد مناسبي قابل فهم و طبيعي است اما هنوز با صداي طبيعي انسان فاصله دارد . از
جمله علل اين موضوع اين است كه قطعات صحبت از محل هاي مختلف استخراج شده اند و دو دايفون در محل هاي
مختلف لزوماً داراي ويژگي هاي سيگنالي دقيقاً يكساني نيستند.
از لحاظ سيگنالي 3 عامل اصلي وجود دارد كه موجب مي شود صحبت ماشيني با صحبت طبيعي متفاوت باشد
كه البته براي برطرف كردن هر مورد الگوريتم ها و روش هايي نيز وجود دارد:
الف اختلاف دامنه: از آنجا كه در صحبت طبيعي، ميزان دامنة سيگنال و يا بلندي و كوتاهي صوت در مفهوم آن
نقش دارد و قطعات مورد استفاده در سيستم هم از صحبت طبيعي استخراج شده اند، ممكن است دو دايفون با دامنه هاي
غير مساوي در كنار هم قرار گيرند كه اين به نوبة خود از روان بودن خروجي مي كاهد. نرماليزه كردن دايفون ها پيش از
اتصال چنانكه در بخش 7 توضيح داده شده است، مي تواند اين مشكل را تا حدودي برطرف كند.
ب اختلاف فاز: همانگونه در بخش تقطيع دايفون ها گفته شد، هنگام جداكردن دايفون ها به صورت دستي بايد به
محل تقطيع خيلي دقت كرد . از جمله مواردي كه معمولاً به هنگام اتصال دايفون ها پيش مي آيد و موجب كاهش كيفيت
مي شود اين است كه دو دايفون داراي فاز يكسان در محل اتصال نيستند . الگوريتم هايي وجود دارد كه پس از انجام
عمل اتصال، چنين اختلاف فازهايي را به حداقل مي رساند.
ج اختلاف گام 1: پريود گام يكي از مشخصه هاي اصلي آواهاي واكدار است. در طول صحبت شخص و حتي يك
جمله پريود گام شخص تغيير مي كند. اين تغييرات در طول يك كلمه كم و به آرامي ولي در جمله گاه زياد و محسوس
است. در اين مورد در بخش 7 بيشتر توضيح داده مي شود. از آنجا كه تقطيع دايفون ها از جملات مختلف يا محل هاي
مختلف در يك جمله صورت مي گيرد، واج محل اتصال دو دايفون در دو طرف اتصال داراي پريود گام متفاوت است .
يعني ممكن است در طول يك واج تغييرات گام بسيار شديدتر از حالت طبيعي باشد . براي اين مشكل هم الگوريتم هايي
2 از جملة اين الگوريت مها است. PSOLA . موجود است كه مي تواند پريود گام را نرماليزه كند
-7 افزودن آهنگ كلام به خروجي
آهنگ كلام در مفهوم عام ناظر بر تغييرات "زيروبمي" يا گام در گفتار است و چگونگي توليد گفتار از سوي
گويندگان و دريافت آن از سوي شنوندگان نشان مي دهد كه آنان ناخودآگاه و به شيوه اي نظام مند از زيروبمي در
انتقال درك و معنا استفاده مي كنند. در تقسيم بندي هاي زبان شناسي، زبا ن فارسي يك "زبان آهنگي " 3 محسوب مي شود
" يعني زباني كه تغيير سطح و جهت زيروبمي، معناي واژگاني را تغيير نمي دهد بلكه فقط در معناي بافتي "پاره گفتارها 4
تأثير مي گذارد.[ 2] براي مثال يك جملة مشخص مي تواند در موقعيت هاي مختلف، با توجه به "منحني زيروبمي " 5
مربوط به آن داراي مفاهيم مختلف امري، سئوالي، تعجبي، خبري و ... داشته باشد . در شكل 3 منحني زيروبمي مربوط
به چند نوع از جمله ها نشان داده شده است.
خبري (c) پرسشي و (b) ، امري (a) شكل 3- منحني تغييرات گام در جملات
همانطور كه ملاحظه مي كنيد يكي از جنبه هاي اصلي صحبت طبيعي افزودن اين آهنگ به خروجي است كه
بايد با توجه به محتوا و محل جمله مشخص گردد . براي اين كار نيز رو ش هاي متعددي وجود دارد كه از جمله
و سنتز مجدد 6 است كه البته استفاده از اين روش ها براي PSOLA مشهورترين اين روش ها استفاده از الگوريتم هاي
رسيدن به هدف مذكور محاسبات پيچيده اي را طلب مي كند.
-8 جمع بندي و نتيج هگيري
سنتر صحبت فارسي مي تواند از روش اتصال قطعات صحبت با كيفيتي مناسب انجام پذيرد . انتخاب قطعه بايد
به گونه اي باشد كه بتواند سيگنال صحبت مشابه سيگنال طبيعي توليد كند . يكي از قطعات مناسب دايفون مي باشد. حدود
هزار دايفون فارسي مورد نياز است . خروجي چنين سيستمي قابل فهم است اما هنوز داراي مشكلاتي است كه مي توان با
1 - Pitch
2 - Pitch synchronous Overlap Add
3 - Intonational Language
4 - Utterances
5 - Pitch Contours
6 - Re Synthesis
روش هاي مختلف پردازش سيگنال صحبت آن را بهبود داد . افزودن آهنگ صحبت به خروجي نهايي مي تواند تأثير
به سزايي در طبيعي تر شدن خروجي بگذارد . از جمله كارهايي كه ميتواند كيفيت چنين سيستمي را بسيار بالا ببرد،
استفاده از رو شهاي تقطيع خودكار است كه قطعاً دقتي بسيار بيشتر از تقطيع دستي خواهد داشت.
منابع
1] يدالله ثمره، آواشناسي زبان فارسي، مركز نشر دانشگاهي، تهران 1364 ]
2] محرم اسلامي، واج شناسي: تحليل نظام آهنگ فارسي، انتشارات سمت، چاپ اول، تهران، پاييز 1384 ]
[3] M. Sahandi, Daniel S.G.Vine., Concatenative Speech Synthesis and Animation, The First Annual
C.S.I Computer Conference (CSICC 95)
[4] Y.A. EL-Iman, An Unrestricted Vocabulary Arabic Speech Synthesis System, IEEE Trans. on
Speech, December 1989
[5] IMIX Programme Preparation Committee, Interactive Multimodal Information Extraction, October
2002
نظرات شما عزیزان:
2 تا پيشنهاد بسيار شيرين و عالي دو نبش
با عضویت در سیستم و فعال سازی اکانت خود، به ازای هر پیامکی که برای شما به موبايلتان ارسال میشود، مبلغی به حساب شما در سایت افزوده میشود.
که میتوانید این مبلغ را پس از رسیدن به حدنصاب دریافت نمایید.
ضمنا داراي قرعه كشي ماهانه هم ميباشد كه :
شرکت کنندگان در قرعه کشی و مسابقه، کلیه کاربران سایت میباشند که حساب کاربری خود را فعال کرده باشند.
نفر اول : نیم سکه بهار آزادی
نفر دوم : ربع سکه بهار آزادی
نفر سوم : 500 هزار ریال وجه نقد
5 نفر به قید قرعه - هر نفر 200 هزار ریال وجه نقد
اينم لينك ثبت نام :
http://ads.inpersia.com/users/ref/24343
پ 2 :
با ورود و خروج از اينترنت هر ساعت تا 75 سنت بدون انجام كاري دريافت نماييد
اينم لينك ايشان :
http://www.surfjunky.com/?r=Rezador1970
در صورت توضيحات بيشتر و يا ... به وب بنده سري بزنيد
موفق و شاد باشيد