9.5 KiB
การแปลงเสียงเป็นข้อความ - อุปกรณ์ IoT เสมือนจริง
ในส่วนนี้ของบทเรียน คุณจะเขียนโค้ดเพื่อแปลงเสียงที่จับได้จากไมโครโฟนของคุณเป็นข้อความโดยใช้บริการแปลงเสียง
การแปลงเสียงเป็นข้อความ
บน Windows, Linux และ macOS คุณสามารถใช้ Speech Services Python SDK เพื่อฟังเสียงจากไมโครโฟนของคุณและแปลงเสียงที่ตรวจพบเป็นข้อความได้ SDK จะฟังเสียงอย่างต่อเนื่อง ตรวจจับระดับเสียง และส่งเสียงไปแปลงเป็นข้อความเมื่อระดับเสียงลดลง เช่น เมื่อสิ้นสุดช่วงของการพูด
งาน - แปลงเสียงเป็นข้อความ
-
สร้างแอป Python ใหม่บนคอมพิวเตอร์ของคุณในโฟลเดอร์ชื่อ
smart-timer
โดยมีไฟล์เดียวชื่อapp.py
และสร้างสภาพแวดล้อมเสมือนของ Python -
ติดตั้งแพ็กเกจ Pip สำหรับ Speech Services ตรวจสอบให้แน่ใจว่าคุณกำลังติดตั้งจากเทอร์มินัลที่เปิดใช้งานสภาพแวดล้อมเสมือนแล้ว
pip install azure-cognitiveservices-speech
⚠️ หากคุณพบข้อผิดพลาดดังต่อไปนี้:
ERROR: Could not find a version that satisfies the requirement azure-cognitiveservices-speech (from versions: none) ERROR: No matching distribution found for azure-cognitiveservices-speech
คุณจะต้องอัปเดต Pip ทำได้โดยใช้คำสั่งต่อไปนี้ จากนั้นลองติดตั้งแพ็กเกจอีกครั้ง
pip install --upgrade pip
-
เพิ่มการนำเข้า (imports) ต่อไปนี้ในไฟล์
app.py
:import requests import time from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer
การนำเข้านี้จะใช้คลาสบางตัวสำหรับการรู้จำเสียงพูด
-
เพิ่มโค้ดต่อไปนี้เพื่อประกาศการตั้งค่าบางอย่าง:
speech_api_key = '<key>' location = '<location>' language = '<language>' recognizer_config = SpeechConfig(subscription=speech_api_key, region=location, speech_recognition_language=language)
แทนที่
<key>
ด้วย API key สำหรับบริการแปลงเสียงของคุณ แทนที่<location>
ด้วยตำแหน่งที่คุณใช้เมื่อสร้างทรัพยากรบริการแปลงเสียงแทนที่
<language>
ด้วยชื่อท้องถิ่น (locale name) สำหรับภาษาที่คุณจะพูด เช่นen-GB
สำหรับภาษาอังกฤษ หรือzn-HK
สำหรับภาษากวางตุ้ง คุณสามารถค้นหารายชื่อภาษาที่รองรับและชื่อท้องถิ่นได้ใน เอกสารสนับสนุนภาษาและเสียงบน Microsoft Docsการตั้งค่านี้จะถูกใช้เพื่อสร้างวัตถุ
SpeechConfig
ที่จะใช้ในการตั้งค่าบริการแปลงเสียง -
เพิ่มโค้ดต่อไปนี้เพื่อสร้างตัวรู้จำเสียงพูด:
recognizer = SpeechRecognizer(speech_config=recognizer_config)
-
ตัวรู้จำเสียงพูดจะทำงานบนเธรดพื้นหลัง โดยฟังเสียงและแปลงเสียงที่ตรวจพบเป็นข้อความ คุณสามารถรับข้อความได้โดยใช้ฟังก์ชัน callback ซึ่งเป็นฟังก์ชันที่คุณกำหนดและส่งไปยังตัวรู้จำเสียงพูด ทุกครั้งที่ตรวจพบเสียงพูด ฟังก์ชัน callback จะถูกเรียก ใช้โค้ดต่อไปนี้เพื่อกำหนด callback และส่ง callback นี้ไปยังตัวรู้จำเสียงพูด รวมถึงกำหนดฟังก์ชันเพื่อประมวลผลข้อความและเขียนข้อความลงในคอนโซล:
def process_text(text): print(text) def recognized(args): process_text(args.result.text) recognizer.recognized.connect(recognized)
-
ตัวรู้จำเสียงพูดจะเริ่มฟังเสียงก็ต่อเมื่อคุณเริ่มต้นมันโดยเฉพาะ เพิ่มโค้ดต่อไปนี้เพื่อเริ่มการรู้จำเสียงพูด โค้ดนี้จะทำงานในพื้นหลัง ดังนั้นแอปพลิเคชันของคุณจะต้องมีลูปที่ไม่มีที่สิ้นสุดซึ่งมีการพักการทำงานเพื่อให้แอปพลิเคชันทำงานต่อไป
recognizer.start_continuous_recognition() while True: time.sleep(1)
-
รันแอปนี้ พูดผ่านไมโครโฟนของคุณ และเสียงที่แปลงเป็นข้อความจะถูกแสดงผลในคอนโซล
(.venv) ➜ smart-timer python3 app.py Hello world. Welcome to IoT for beginners.
ลองพูดประโยคต่าง ๆ รวมถึงประโยคที่มีคำที่ออกเสียงเหมือนกันแต่มีความหมายต่างกัน เช่น หากคุณพูดภาษาอังกฤษ ลองพูดว่า 'I want to buy two bananas and an apple too' และสังเกตว่ามันจะใช้คำว่า to, two และ too ได้ถูกต้องตามบริบทของคำ ไม่ใช่แค่เสียงที่ได้ยิน
💁 คุณสามารถค้นหาโค้ดนี้ได้ในโฟลเดอร์ code-speech-to-text/virtual-iot-device
😀 โปรแกรมแปลงเสียงเป็นข้อความของคุณสำเร็จแล้ว!
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้