ใช้ API การแปลงเสียงพูดเป็นข้อความ
Tip
ดูแท็บ ข้อความและรูปภาพ สําหรับรายละเอียดเพิ่มเติม!
Azure Speech ใน Foundry Tools รองรับการรู้จําเสียงผ่าน API การแปลงเสียงพูดเป็นข้อความ* ในขณะที่รายละเอียดเฉพาะแตกต่างกันไปขึ้นอยู่กับ SDK ที่ใช้ (Python, C# และอื่น ๆ) มีรูปแบบที่สอดคล้องกันสําหรับการใช้ API คําพูดเป็นข้อความ :
- ใช้วัตถุ SpeechConfig เพื่อห่อหุ้มข้อมูลที่จําเป็นในการเชื่อมต่อกับทรัพยากร Foundry ของคุณ โดยเฉพาะจุดสิ้นสุด (หรือภูมิภาค) และคีย์
- หรือใช้ AudioConfig เพื่อกําหนดแหล่งสัญญาณเสียงเข้าสําหรับเสียงที่จะถอดรหัส ตามค่าเริ่มต้นนี่คือไมโครโฟนระบบเริ่มต้น แต่คุณยังสามารถระบุไฟล์เสียงได้
- ใช้ SpeechConfig และ AudioConfig เพื่อสร้างวัตถุ SpeechRecognizer วัตถุนี้เป็นพร็อกซีไคลเอ็นต์สําหรับ API คําพูดเป็นข้อความ
- ใช้วิธีการของวัตถุ SpeechRecognizer เพื่อเรียกใช้ฟังก์ชัน API พื้นฐาน ตัวอย่างเช่น เมธอด RecognizeOnceAsync() ใช้บริการ Azure Speech เพื่อถอดเสียงคําพูดเดียวแบบอะซิงโครนัส
- ประมวลผลการตอบกลับ ในกรณีของเมธอด RecognizeOnceAsync() ผลลัพธ์คือออบเจ็กต์ SpeechRecognitionResult ที่มีคุณสมบัติต่อไปนี้:
- ระยะเวลา
- OffsetInTicks
- คุณสมบัติ
- เหตุผล
- ResultId
- ข้อความ
ถ้าการดําเนินการเสร็จสมบูรณ์ คุณสมบัติ Reason มีค่าที่ระบุ RecognizedSpeech และคุณสมบัติ ข้อความ ประกอบด้วยการถอดข้อความ ค่าอื่น ๆ ที่เป็นไปได้สําหรับ Result รวมถึง NoMatch (ระบุว่าเสียงถูกแยกวิเคราะห์เรียบร้อยแล้ว แต่ไม่มีการรู้จําเสียง) หรือ ยกเลิก แสดงว่ามีข้อผิดพลาดเกิดขึ้น (ในกรณีนี้ คุณสามารถตรวจสอบคอลเลกชัน คุณสมบัติ สําหรับคุณสมบัติ CancelReason เพื่อกําหนดว่าเกิดอะไรขึ้น)
ตัวอย่าง - การถอดเสียงไฟล์เสียง
ตัวอย่าง Python ต่อไปนี้ใช้ Azure Speech ใน Foundry Tools เพื่อถอดเสียงคําพูดในไฟล์เสียง
import azure.cognitiveservices.speech as speech_sdk
# Speech config encapsulates the connection to the resource
speech_config = speech_sdk.SpeechConfig(subscription="YOUR_FOUNDRY_KEY",
endpoint="YOUR_FOUNDRY_ENDPOINT")
# Audio config determines the audio stream source (defaults to system mic)
file_path = "audio.wav"
audio_config = speech_sdk.audio.AudioConfig(filename=file_path)
# Use a speech recognizer to transcribe the audio
speech_recognizer = speech_sdk.SpeechRecognizer(speech_config=speech_config,
audio_config=audio_config)
result = speech_recognizer.recognize_once_async().get()
# Did it succeeed
if result.reason == speech_sdk.ResultReason.RecognizedSpeech:
# Yes!
print(f"Transcription:\n{result.text}")
else:
# No. Try to determine why.
print("Error transcribing message: {}".format(result.reason))