You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/th/6-consumer/lessons/1-speech-recognition/virtual-device-speech-to-te...

9.5 KiB

การแปลงเสียงเป็นข้อความ - อุปกรณ์ IoT เสมือนจริง

ในส่วนนี้ของบทเรียน คุณจะเขียนโค้ดเพื่อแปลงเสียงที่จับได้จากไมโครโฟนของคุณเป็นข้อความโดยใช้บริการแปลงเสียง

การแปลงเสียงเป็นข้อความ

บน Windows, Linux และ macOS คุณสามารถใช้ Speech Services Python SDK เพื่อฟังเสียงจากไมโครโฟนของคุณและแปลงเสียงที่ตรวจพบเป็นข้อความได้ SDK จะฟังเสียงอย่างต่อเนื่อง ตรวจจับระดับเสียง และส่งเสียงไปแปลงเป็นข้อความเมื่อระดับเสียงลดลง เช่น เมื่อสิ้นสุดช่วงของการพูด

งาน - แปลงเสียงเป็นข้อความ

  1. สร้างแอป Python ใหม่บนคอมพิวเตอร์ของคุณในโฟลเดอร์ชื่อ smart-timer โดยมีไฟล์เดียวชื่อ app.py และสร้างสภาพแวดล้อมเสมือนของ Python

  2. ติดตั้งแพ็กเกจ 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
    
  3. เพิ่มการนำเข้า (imports) ต่อไปนี้ในไฟล์ app.py:

    import requests
    import time
    from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer
    

    การนำเข้านี้จะใช้คลาสบางตัวสำหรับการรู้จำเสียงพูด

  4. เพิ่มโค้ดต่อไปนี้เพื่อประกาศการตั้งค่าบางอย่าง:

    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 ที่จะใช้ในการตั้งค่าบริการแปลงเสียง

  5. เพิ่มโค้ดต่อไปนี้เพื่อสร้างตัวรู้จำเสียงพูด:

    recognizer = SpeechRecognizer(speech_config=recognizer_config)
    
  6. ตัวรู้จำเสียงพูดจะทำงานบนเธรดพื้นหลัง โดยฟังเสียงและแปลงเสียงที่ตรวจพบเป็นข้อความ คุณสามารถรับข้อความได้โดยใช้ฟังก์ชัน callback ซึ่งเป็นฟังก์ชันที่คุณกำหนดและส่งไปยังตัวรู้จำเสียงพูด ทุกครั้งที่ตรวจพบเสียงพูด ฟังก์ชัน callback จะถูกเรียก ใช้โค้ดต่อไปนี้เพื่อกำหนด callback และส่ง callback นี้ไปยังตัวรู้จำเสียงพูด รวมถึงกำหนดฟังก์ชันเพื่อประมวลผลข้อความและเขียนข้อความลงในคอนโซล:

    def process_text(text):
        print(text)
    
    def recognized(args):
        process_text(args.result.text)
    
    recognizer.recognized.connect(recognized)
    
  7. ตัวรู้จำเสียงพูดจะเริ่มฟังเสียงก็ต่อเมื่อคุณเริ่มต้นมันโดยเฉพาะ เพิ่มโค้ดต่อไปนี้เพื่อเริ่มการรู้จำเสียงพูด โค้ดนี้จะทำงานในพื้นหลัง ดังนั้นแอปพลิเคชันของคุณจะต้องมีลูปที่ไม่มีที่สิ้นสุดซึ่งมีการพักการทำงานเพื่อให้แอปพลิเคชันทำงานต่อไป

    recognizer.start_continuous_recognition()
    
    while True:
        time.sleep(1)
    
  8. รันแอปนี้ พูดผ่านไมโครโฟนของคุณ และเสียงที่แปลงเป็นข้อความจะถูกแสดงผลในคอนโซล

    (.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 แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้