ใช้ Text to Speech API
Tip
ดูแท็บ ข้อความและรูปภาพ สําหรับรายละเอียดเพิ่มเติม!
เช่นเดียวกับ API การแปลงคําพูดเป็นข้อความ Azure Speech in Foundry Tools มี API การแปลงข้อความเป็นคําพูด สําหรับการสังเคราะห์เสียงพูด:
เช่นเดียวกับการรู้จําเสียง ในทางปฏิบัติ แอปพลิเคชันที่เปิดใช้งานเสียงพูดแบบโต้ตอบส่วนใหญ่สร้างขึ้นโดยใช้ Azure Speech SDK
รูปแบบสําหรับการใช้การสังเคราะห์คําพูดจะคล้ายกับรูปแบบการรู้จําเสียง:
- ใช้ออบเจ็กต์ SpeechConfig เพื่อห่อหุ้มข้อมูลที่จําเป็นในการเชื่อมต่อกับทรัพยากร Azure Speech ของคุณ โดยเฉพาะตําแหน่งที่ตั้งและคีย์
- หรือใช้ AudioConfig เพื่อกําหนดอุปกรณ์เอาต์พุตสําหรับคําพูดที่จะสังเคราะห์ ตามค่าเริ่มต้น นี่คือลําโพงระบบเริ่มต้น แต่คุณยังสามารถระบุไฟล์เสียงหรือโดยการตั้งค่านี้เป็นค่า null อย่างชัดเจนคุณสามารถประมวลผลออบเจ็กต์สตรีมเสียงที่ส่งคืนโดยตรงได้
- ใช้ SpeechConfig และ AudioConfig เพื่อสร้างวัตถุ SpeechSynthesizer ออบเจ็กต์นี้เป็นไคลเอ็นต์พร็อกซีสําหรับ API การแปลงข้อความเป็นคําพูด
- ใช้วิธีการของวัตถุ SpeechSynthesizer เพื่อเรียกใช้ฟังก์ชัน API พื้นฐาน ตัวอย่างเช่น เมธอด SpeakTextAsync() ใช้บริการ Azure Speech เพื่อแปลงข้อความเป็นเสียงพูด
- ประมวลผลการตอบกลับจากบริการ 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))