مرجع زبان نشانه گذاری سنتز گفتار (SSML) (بتا)

پلتفرم 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>

نشانگرهای استرس

حداکثر سه سطح استرس وجود دارد که می توان در رونویسی قرار داد:

  1. تنش اولیه : در IPA با ˈ " در X-SAMPA نشان داده می شود.
  2. تنش ثانویه : با ˌ در IPA و % در X-SAMPA نشان داده شده است.
  3. بدون تنش : با نماد نشان داده نمی شود (در هر یک از نمادها).

برخی از زبان‌ها ممکن است کمتر از سه سطح داشته باشند یا اصلاً نشان‌دهنده استرس نباشند. برای مشاهده سطوح استرس موجود برای زبان خود به صفحه واج ها مراجعه کنید. نشانگرهای استرس در ابتدای هر هجای تاکید شده قرار می گیرند. به عنوان مثال، در انگلیسی ایالات متحده:

کلمه مثال 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> استفاده کنید تا به صدایی بروید که به زبان مورد نظر شما صحبت می‌کند (در صورت وجود).