ข้อมูลอ้างอิงของ Speech Synthesis Markup Language (SSML) (เบต้า)

แพลตฟอร์ม Actions on Google รองรับฟีเจอร์ SSML เบต้าหลายรายการนอกเหนือจากองค์ประกอบ 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>

เครื่องหมายระบุความเครียด

ระบบสามารถให้ความเครียดในการถอดเสียงเป็นคำได้สูงสุด 3 ระดับ ดังนี้

  1. ความเครียดหลัก: ระบุด้วย ˈ ใน IPA และ " ใน X-SAMPA
  2. ความเครียดรอง: ระบุด้วย ˌ ใน IPA และ % ใน X-SAMPA
  3. ไม่เน้นสี: ไม่แสดงด้วยสัญลักษณ์ (ทั้งในเครื่องหมาย)

บางภาษาอาจมีไม่ถึง 3 ระดับหรือไม่ได้แสดงถึงความตึงเครียดเลย ดูหน้าการออกเสียงเพื่อดูระดับความเครียดที่มีให้บริการสำหรับภาษาของคุณ เครื่องหมายระบุความเครียดจะวางไว้ที่ ตอนต้นของแต่ละพยางค์ที่เน้นความเครียด ตัวอย่างเช่น ในภาษาอังกฤษ (สหรัฐอเมริกา)

คำตัวอย่าง IPA เอ็กซ์-ซัมปา
ค่าน้ำ ˈwɑːtɚ "wA:t@`
ใต้น้ำ ˌʌndɚˈwɑːtɚ %Vnd@"wA:t@

การถอดเสียงเป็นคำแบบกว้างและแบบจำกัด

ทั้งนี้ตามกฎทั่วไป คุณควรใช้การถอดเสียงเป็นคำให้กว้างและออกเสียงตามปกติมากขึ้น เช่น ในภาษาอังกฤษ (สหรัฐอเมริกา) ให้ถอดเสียงคำภายใน t (แทนที่จะใช้การแตะ) ดังนี้

คำตัวอย่าง IPA เอ็กซ์-ซัมปา
เนย ˈbʌtɚ จากราคาเต็ม ˈbʌɾɚ "bVt@` จากราคาเต็ม "bV4@`

มีบางกรณีที่การใช้การแทนเสียงทางเสียงทำให้ผลการค้นหา TTS ฟังดูไม่เป็นธรรมชาติ (เช่น ถ้าลำดับการออกเสียงออกเสียงได้ยาก)

ตัวอย่างหนึ่งคือการรวบรวมเสียงพูดสำหรับ s ในภาษาอังกฤษ ในกรณีนี้ การทำงานควรแสดงขึ้นในการถอดเสียงเป็นคำ

คำตัวอย่าง IPA เอ็กซ์-ซัมปา
แมว ˈkæts "k{ts
สุนัข ˈdɑːgz จากราคาเต็ม ˈdɑːgs "dA:gz จากราคาเต็ม "dA:gs

การลด

ทุกพยางค์ต้องมีสระ 1 ตัว (สระเดียวเท่านั้น) นั่นหมายความว่าคุณควรหลีกเลี่ยงการใช้พยัญชนะที่เป็นพยางค์ และถอดเสียงพยัญชนะโดยใช้สระลดรูปแทน ตัวอย่างเช่น

คำตัวอย่าง IPA เอ็กซ์-ซัมปา
ลูกแมว ˈkɪtən จากราคาเต็ม ˈkɪtn "kIt@n จากราคาเต็ม "kitn
กาต้มน้ำ ˈkɛtəl จากราคาเต็ม ˈkɛtl "kEt@l จากราคาเต็ม "kEtl

การจัดประยุกต์ใช้ภาษา

คุณสามารถเลือกระบุขอบเขตพยางค์ได้โดยใช้ . แต่ละพยางค์ต้องมีสระ 1 ตัว (สระเดียวเท่านั้น) เช่น

คำตัวอย่าง IPA เอ็กซ์-ซัมปา
การเขียนให้อ่านง่าย ˌɹiː.də.ˈbɪ.lə.tiː %r\i:.d@."bI.l@.ti:

ระยะเวลา

แพลตฟอร์ม Actions on Google รองรับระยะเวลาที่อ่าน <say-as interpret-as="duration"> ได้อย่างถูกต้อง เช่น ตัวอย่างต่อไปนี้จะอ่านออกเสียงว่า "5 ชั่วโมง 30 นาที"

<say-as interpret-as="duration" format="h:m">5:30</say-as>

สตริงรูปแบบรองรับค่าต่อไปนี้

ตัวย่อ ค่า
h ชั่วโมง
นาที นาที
วินาที วินาที
ms มิลลิวินาที

<voice>

แท็ก <voice> ให้คุณใช้มากกว่า 1 เสียงในคำขอ 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 (ชื่อของเสียงที่คุณต้องการใช้) หรือชุดค่าผสมของแอตทริบิวต์ต่อไปนี้ แอตทริบิวต์ทั้ง 3 รายการเป็นแอตทริบิวต์ที่ไม่บังคับ แต่คุณต้องใส่อย่างน้อย 1 รายการหากไม่ได้ระบุ name

  • gender: 1 จาก male, female หรือ neutral
  • variant: ใช้เป็นตัวตัดเสียงในกรณีที่มีการใช้เสียงหลายเสียงตามการกำหนดค่าของคุณ
  • language: ภาษาที่ต้องการ ระบุภาษาในแท็ก <voice> ที่ระบุได้เพียงภาษาเดียวเท่านั้น ระบุภาษาของคุณในรูปแบบ BCP-47 คุณดูรหัส BCP-47 สำหรับภาษาของคุณได้ในคอลัมน์รหัสภาษาบนหน้าเสียงและภาษาที่รองรับ

นอกจากนี้ คุณยังควบคุมลำดับความสำคัญที่เกี่ยวข้องของแอตทริบิวต์ gender, variant และ language แต่ละรายการได้โดยใช้แท็กเพิ่มเติม 2 รายการ ได้แก่ 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> เพื่อเปลี่ยนเป็นเสียงที่พูดภาษาที่ต้องการ (หากมี)