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

แพลตฟอร์ม Actions on Google รองรับฟีเจอร์ SSML เบต้าจำนวนหนึ่งนอกเหนือจาก การดำเนินการกับองค์ประกอบ SSML มาตรฐานของ 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 X-SAMPA
น้ำ ˈwɑːtɚ "wA:t@`
ใต้น้ำ ˌʌndɚˈwɑːtɚ %Vnd@"wA:t@

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

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

คำตัวอย่าง 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

การลด

ทุกพยางค์ต้องมีสระ 1 ตัว ซึ่งหมายความว่าคุณควร หลีกเลี่ยงการใช้พยัญชนะพยางค์แล้วถอดเสียงด้วยสระที่ลดทอนลงแทน สำหรับ ตัวอย่าง:

คำตัวอย่าง 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"> อย่างถูกต้อง ระยะเวลาการอ่าน ตัวอย่างเช่น ตัวอย่างต่อไปนี้จะอ่านออกเสียงว่า "ห้า" ชั่วโมง 30 นาที":

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

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

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

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