ใช้ Text to Speech API

เสร็จสมบูรณ์เมื่อ

Tip

ดูแท็บ ข้อความและรูปภาพ สําหรับรายละเอียดเพิ่มเติม!

เช่นเดียวกับ API การแปลงคําพูดเป็นข้อความ Azure Speech in Foundry Tools มี API การแปลงข้อความเป็นคําพูด สําหรับการสังเคราะห์เสียงพูด:

เช่นเดียวกับการรู้จําเสียง ในทางปฏิบัติ แอปพลิเคชันที่เปิดใช้งานเสียงพูดแบบโต้ตอบส่วนใหญ่สร้างขึ้นโดยใช้ Azure Speech SDK

รูปแบบสําหรับการใช้การสังเคราะห์คําพูดจะคล้ายกับรูปแบบการรู้จําเสียง:

ไดอะแกรมที่แสดงว่าออบเจ็กต์ SpeechSynthesizer ถูกสร้างขึ้นจาก SpeechConfig และ AudioConfig อย่างไร และวิธีการ SpeakTextAsync ถูกใช้เพื่อเรียกใช้ API คําพูด

  1. ใช้ออบเจ็กต์ SpeechConfig เพื่อห่อหุ้มข้อมูลที่จําเป็นในการเชื่อมต่อกับทรัพยากร Azure Speech ของคุณ โดยเฉพาะตําแหน่งที่ตั้งและคีย์
  2. หรือใช้ AudioConfig เพื่อกําหนดอุปกรณ์เอาต์พุตสําหรับคําพูดที่จะสังเคราะห์ ตามค่าเริ่มต้น นี่คือลําโพงระบบเริ่มต้น แต่คุณยังสามารถระบุไฟล์เสียงหรือโดยการตั้งค่านี้เป็นค่า null อย่างชัดเจนคุณสามารถประมวลผลออบเจ็กต์สตรีมเสียงที่ส่งคืนโดยตรงได้
  3. ใช้ SpeechConfig และ AudioConfig เพื่อสร้างวัตถุ SpeechSynthesizer ออบเจ็กต์นี้เป็นไคลเอ็นต์พร็อกซีสําหรับ API การแปลงข้อความเป็นคําพูด
  4. ใช้วิธีการของวัตถุ SpeechSynthesizer เพื่อเรียกใช้ฟังก์ชัน API พื้นฐาน ตัวอย่างเช่น เมธอด SpeakTextAsync() ใช้บริการ Azure Speech เพื่อแปลงข้อความเป็นเสียงพูด
  5. ประมวลผลการตอบกลับจากบริการ Azure Speech ในกรณีของเมธอด SpeakTextAsync ผลลัพธ์คือวัตถุ SpeechSynthesisResult ที่ประกอบด้วยคุณสมบัติต่อไปนี้:
    • ข้อมูลเสียง
    • คุณสมบัติ
    • เหตุผล
    • ResultId

เมื่อมีการสังเคราะห์คําพูดเรียบร้อยแล้ว คุณสมบัติ เหตุผล จะถูกตั้งค่าเป็นการแจงนับ SynthesizingAudioCompleted และคุณสมบัติ AudioData ประกอบด้วยสตรีมเสียง (ซึ่งขึ้นอยู่กับ AudioConfig อาจถูกส่งไปยังผู้บรรยายหรือไฟล์โดยอัตโนมัติ)

ตัวอย่าง - การสังเคราะห์ข้อความเป็นคําพูด

ตัวอย่าง Python ต่อไปนี้ใช้ Azure Speech ใน Foundry Tools เพื่อสร้างเอาต์พุตเสียงพูดจากข้อความ

import azure.cognitiveservices.speech as speechsdk

# Speech config encapsulates the connection to the resource
speech_config = speechsdk.SpeechConfig(subscription=KEY, endpoint=ENDPOINT)

# Audio output config determines where to send the audio stream (defaults to speaker)
audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)

# Use speech synthesizer to synthesize text as speech
speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config,
                                                 audio_config=audio_config)
text = "My voice is my password!"
speech_synthesis_result = speech_synthesizer.speak_text_async(text).get()

# Did it succeeed?
if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
    # Yes!
    print("Speech synthesized for text [{}]".format(text))
elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled:
    # No - Ty to find out why not
    cancellation_details = speech_synthesis_result.cancellation_details
    print("Speech synthesis canceled: {}".format(cancellation_details.reason))
    if cancellation_details.reason == speechsdk.CancellationReason.Error:
        if cancellation_details.error_details:
            print("Error details: {}".format(cancellation_details.error_details))