پلتفرم Actions on Google از تعدادی ویژگی SSML Beta علاوه بر عناصر استاندارد SSML Actions on Google پشتیبانی می کند.
خلاصه ای از ویژگی های بتا SSML پشتیبانی شده:
-
<phoneme>
: تلفظ کلمات خاص را سفارشی کنید. -
<say-as interpret-as="duration">
: مدت زمان را مشخص کنید. -
<voice>
: بین صداها در همان درخواست جابجا شوید. -
<lang>
: از چندین زبان در یک درخواست استفاده کنید. - نقاط زمانی: از تگ
<mark>
برای برگرداندن نقطه زمانی یک نقطه مشخص در رونوشت خود استفاده کنید.
<phoneme>
می توانید از تگ <phoneme>
برای تولید تلفظ های سفارشی کلمات به صورت درون خطی استفاده کنید. Actions on Google الفبای آوایی IPA و X-SAMPA را می پذیرد. برای لیستی از زبان ها و واج های پشتیبانی شده به صفحه واج ها مراجعه کنید.
هر برنامه تگ <phoneme>
تلفظ یک کلمه را هدایت می کند:
<phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme> <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>
نشانگرهای استرس
حداکثر سه سطح استرس وجود دارد که می توان در رونویسی قرار داد:
- تنش اولیه : در IPA با
ˈ
"
در X-SAMPA نشان داده می شود. - تنش ثانویه : با
ˌ
در IPA و%
در X-SAMPA نشان داده شده است. - بدون تنش : با نماد نشان داده نمی شود (در هر یک از نمادها).
برخی از زبانها ممکن است کمتر از سه سطح داشته باشند یا اصلاً نشاندهنده استرس نباشند. برای مشاهده سطوح استرس موجود برای زبان خود به صفحه واج ها مراجعه کنید. نشانگرهای استرس در ابتدای هر هجای تاکید شده قرار می گیرند. به عنوان مثال، در انگلیسی ایالات متحده:
کلمه مثال | IPA | X-SAMPA |
---|---|---|
آب | ˈwɑːtɚ | "wA:t@` |
زیر آب | ˌʌndɚˈwɑːtɚ | %Vnd@"wA:t@ |
رونویسی گسترده در مقابل باریک
به عنوان یک قاعده کلی، رونویسی های خود را گسترده تر و ماهیت آوایی بیشتری داشته باشید. به عنوان مثال، در انگلیسی ایالات متحده، t
intervocalic را رونویسی کنید (به جای استفاده از ضربه):
کلمه مثال | IPA | X-SAMPA |
---|---|---|
کره | ˈbʌtɚ به جای ˈbʌɾɚ | "bVt@` به جای "bV4@` |
مواردی وجود دارد که استفاده از نمایش واجی باعث می شود که نتایج TTS شما غیرطبیعی به نظر برسند (مثلاً اگر تلفظ دنباله واج ها از نظر تشریحی دشوار باشد).
یکی از نمونههای آن، صدای همسانسازی برای s
در انگلیسی است. در این مورد، جذب باید در رونویسی منعکس شود:
کلمه مثال | IPA | X-SAMPA |
---|---|---|
گربه ها | ˈkæts | "k{ts |
سگ ها | ˈdɑːgz به جای ˈdɑːgs | "dA:gz به جای "dA:gs |
کاهش
هر هجا باید دارای یک (و تنها یک) مصوت باشد. این بدان معنی است که شما باید از صامت های هجا اجتناب کنید و در عوض آنها را با مصوت کاهش یافته رونویسی کنید. به عنوان مثال:
کلمه مثال | IPA | X-SAMPA |
---|---|---|
بچه گربه | ˈkɪtən به جای ˈkɪtn | "kIt@n به جای "kitn |
کتری | ˈkɛtəl به جای ˈkɛtl | "kEt@l به جای "kEtl |
هجایی
میتوانید بهصورت اختیاری مرزهای هجا را با استفاده .
. هر هجا باید دارای یک (و فقط یک) مصوت باشد. به عنوان مثال:
کلمه مثال | IPA | X-SAMPA |
---|---|---|
خوانایی | ˌɹiː.də.ˈbɪ.lə.tiː | %r\i:.d@."bI.l@.ti: |
مدت زمان
پلتفرم Actions on Google از <say-as interpret-as="duration">
برای خواندن صحیح مدت زمان ها پشتیبانی می کند. به عنوان مثال، مثال زیر به صورت شفاهی "پنج ساعت و سی دقیقه" بیان می شود:
<say-as interpret-as="duration" format="h:m">5:30</say-as>
رشته قالب از مقادیر زیر پشتیبانی می کند:
مخفف | ارزش |
---|---|
ساعت | ساعت |
متر | دقیقه |
س | ثانیه |
اماس | میلی ثانیه |
<voice>
تگ <voice>
به شما امکان می دهد از بیش از یک صدا در یک درخواست SSML استفاده کنید. در مثال زیر، صدای پیش فرض یک صدای مرد انگلیسی است. همه کلمات در این صدا ترکیب می شوند به جز "qu'est-ce qui t'amène ici" که به زبان فرانسوی با استفاده از صدای زنانه به جای زبان پیش فرض (انگلیسی) و جنسیت (مرد) کلامی می شوند.
<speak>And then she asked, <voice language="fr-FR" gender="female">qu'est-ce qui t'amène ici</voice><break time="250ms"/> in her sweet and gentle voice.</speak>
همچنین، میتوانید از تگ <voice>
برای تعیین صدای فردی ( نام صوتی در صفحه صداها و زبانهای پشتیبانیشده ) به جای تعیین language
و/یا gender
استفاده کنید:
<speak>The dog is friendly<voice name="fr-CA-Wavenet-B">mais la chat est mignon</voice><break time="250ms"/> said a pet shop owner</speak>
وقتی از تگ <voice>
استفاده میکنید، Actions on Google انتظار دارد یا یک name
( نام صدایی که میخواهید استفاده کنید) یا ترکیبی از ویژگیهای زیر را دریافت کند. هر سه ویژگی اختیاری هستند، اما اگر name
ارائه نمی کنید، باید حداقل یکی را ارائه دهید.
-
gender
: یکی ازmale
،female
یاneutral
. -
variant
: در مواردی که چندین امکان وجود دارد که بر اساس پیکربندی شما از کدام صدا استفاده کنید، به عنوان یک تای بریک استفاده می شود. -
language
: زبان مورد نظر شما. فقط یک زبان را می توان در یک تگ<voice>
مشخص کرد. زبان خود را در قالب BCP-47 مشخص کنید. میتوانید کد BCP-47 زبان خود را در ستون کد زبان در صفحه صداها و زبانهای پشتیبانیشده پیدا کنید.
همچنین میتوانید اولویت نسبی هر یک از ویژگیهای gender
، variant
و language
را با استفاده از دو برچسب اضافی کنترل کنید: required
و ordering
.
-
required
: اگر یک ویژگی به عنوانrequired
تعیین شود و به درستی پیکربندی نشده باشد، درخواست با شکست مواجه می شود. -
ordering
: هر ویژگی که پس از یک برچسبordering
فهرست می شود، به جای الزامی، به عنوان ویژگی ترجیحی در نظر گرفته می شود. SSML ویژگی های ترجیحی را بر اساس بهترین تلاش به ترتیبی که بعد از تگordering
فهرست می شوند، در نظر می گیرد. اگر هر یک از ویژگیهای ترجیحی به اشتباه پیکربندی شده باشد، Actions on Google ممکن است همچنان صدای معتبری را بازگرداند، اما پیکربندی نادرست حذف شده باشد.
نمونه هایی از تنظیمات با استفاده از برچسب های required
و ordering
:
<speak>And there it was <voice language="en-GB" gender="male" required="gender" ordering="gender language">a flying bird </voice>roaring in the skies for the first time.</speak>
<speak>Today is supposed to be <voice language="en-GB" gender="female" ordering="language gender">Sunday Funday.</voice></speak>
<lang>
می توانید از <lang>
برای اضافه کردن متن به چندین زبان در یک درخواست SSML استفاده کنید. همه زبان ها با یک صدا ترکیب می شوند مگر اینکه از تگ <voice>
برای تغییر صریح صدا استفاده کنید. رشته xml:lang
باید حاوی زبان مقصد در قالب BCP-47 باشد (این مقدار به عنوان "کد زبان" در جدول صداهای پشتیبانی شده ذکر شده است). در مثال زیر «چت» به جای زبان پیشفرض (انگلیسی) به زبان فرانسوی بیان میشود:
<speak>The french word for cat is <lang xml:lang="fr-FR">chat</lang></speak>
Actions on Google پلتفرم از برچسب <lang>
بر اساس بهترین تلاش پشتیبانی می کند. اگر در یک درخواست SSML مشخص شده باشد، همه ترکیبهای زبانی نتایج با کیفیت یکسانی تولید نمیکنند. در برخی موارد، یک ترکیب زبانی ممکن است اثری ایجاد کند که قابل تشخیص باشد اما ظریف یا منفی تلقی شود. مسائل شناخته شده:
- زبان ژاپنی با نویسههای کانجی توسط تگ
<lang>
پشتیبانی نمیشود. ورودی به صورت حروف چینی خوانده می شود. - زبانهای سامی مانند عربی، عبری و فارسی توسط برچسب
<lang>
پشتیبانی نمیشوند و باعث سکوت میشوند. اگر میخواهید از هر یک از این زبانها استفاده کنید، توصیه میکنیم از تگ<voice>
استفاده کنید تا به صدایی بروید که به زبان مورد نظر شما صحبت میکند (در صورت وجود).