Skip to main content
เทคโนโลยี

Speech Translate ด้วย Python และ Azure Speech Sevice

By มกราคม 6th, 2022No Comments

ก่อนที่เราจะไปทำการเขียนโปรแกรมแปลภาษาเรามารู้จักกับเครื่องมือและบริการที่จะใช้ก่อนครับผม 😊

 Azure Speech Service คืออะไร 

Azure Speech Service เป็นอีกบริการหนึ่งในคลาวด์ Microsoft Azure ที่มีความสามารถเกี่ยวกับการแปลงเสียงพูดเป็นข้อความ ข้อความเป็นเสียงพูดสังเคราะห์ ตลอดจนไปถึงการแปลภาษา ซึ่งรองรับหลากหลายภาษา เราสามารถนำ Speech SDK ไปใช้ในการเริ่มเขียนโปรแกรมแปลภาษาได้อย่างง่ายดายและรวดเร็วอีกด้วย

เขียนโดย
Sirasit Boonklang – BorntoDev Co., Ltd.

 

ก่อนอื่นเราต้องมีสิ่งที่เรียกว่า Azure Subscription ก่อนนะครับถึงจะใช้งาน Azure Speech Service ได้สามารถดูวิธีการสมัครและใช้งาน Microsoft Azure เบื้องต้นได้ที่ https://www.borntodev.com/2021/08/31/what-is-microsoft-azure/

 

เริ่มต้นเขียนโปรแกรมแปลภาษา 🚀

1.หากในเครื่องยังไม่ได้ติดตั้ง Python สามารถดาวน์โหลดและติดตั้ง Python ได้ที่ Download Python | Python.org 

2.ต่อมาให้ดาวน์โหลด Speech SDK Python Package โดยการเปิด command prompt แล้วใช้คำสั่ง pip install azure-cognitiveservices-speech

3.สร้าง Azure resource สำหรับใช้บริการ Azure Speech Service
เมื่อสมัคร Azure แล้วให้ไปที่ https://portal.azure.com/ แล้วคลิกที่ Create a Resource

4.ไปที่ช่องค้นหาแล้วพิมพ์ว่า Speech 

5.จะพบกับหน้าสำหรับสร้างบริการ Speech บน Azure โดยจะเป็นบริการสำหรับถอดเสียงคำพูดเป็นข้อความ แปลคำพูดแบบเรียลไทม์ แปลงข้อความเป็นเสียงแบบเกือบเรียลไทม์ (จะมีระยะเวลาในการประมวลผลนิดนึงครับ) ถ้าพร้อมแล้วก็กด Create ได้เลยครับ 

6.ตั้งค่าต่างๆของบริการโดยแต่ละส่วนจะมีรายละเอียดดังนี้

  • Name เป็นการตั้งชื่อบริการ speech ของเรา 
  • Subscription เป็นส่วนที่เราสมัครไว้ว่าจะเลือกคิดเครดิตจาก Subscription ไหน
  • Location เลือกว่าบริการของเราจะไปใช้ Data Center ที่ภูมิภาคไหน
  • Pricing tier คือแพลนราคาของบริการมีทั้งฟรีและเสียเครดิต สามารถดูรายละเอียดเพิ่มเติมได้ที่ Cognitive Speech Services Pricing | Microsoft Azure
  • Resource group (เป็นเหมือนโฟลเดอร์สำหรับเก็บบริการต่างๆที่เกี่ยวข้องกับโปรเจคนี้บน Azure)

7.เมื่อบริการถูกสร้างเสร็จสามารถกดปุ่ม Go to resource ได้เลย

8.จะพบกับหน้า Overview ให้ไปที่ Keys and Enpoint

9.เมื่อมายังหน้า  Keys and Endpoint ให้ทำการ Copy KEY 1 หรือ KEY 2 ก็ได้เอาไว้และทำการ Copy Location/Region 

 

10.เปิด IDE สำหรับเขียน python ในบทความนี้จะใช้เป็น Visual Studio Code นะครับ
เมื่อเปิดขึ้นมาแล้วให้เราสร้างไฟล์ .py ขึ้นมาแล้ว โดยส่วนแรกเราจะเริ่มจากให้โปรแกรมสามารถแปลงเสียงพูดเป็นข้อความภาษาไทย โดยใช้ speech sdk ของ Azure

 

#เรียกใช้งาน speech sdk

import azure.cognitiveservices.speech as speechsdk 

 

#สร้างฟังก์ชั่นสำหรับรับเสียงพูดจากไมค์แล้วแปลงเป็นข้อความ

def Speech_Recognition_from_mic(): 

 

 #ตั้งค่า subscription key และ  location ของบริการ Azure Speech Service 

    speech_config = speechsdk.SpeechConfig(subscription="คีย์ที่นำมาจาก Azure", region="ชื่อ location")

 

 #ตั้งค่าภาษาที่ต้องการแปลงเสียงพูดเป็นข้อความ

    speech_config.speech_recognition_language="th-TH"
    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config)
    print("สามารถพูดได้เลยครับ")
    result = speech_recognizer.recognize_once_async().get()
    print("คุณพูดว่า: "+result.text)

 

#เรียกใช้งานฟังก์ชั่นรับเสียงพูดจากไมค์แล้วแปลงเป็นข้อความ

Speech_Recognition_from_mic()

 

11.เสร็จแล้วสามารถลองรันและพูดทดสอบได้เลย

จะเห็นได้ว่าตอนนี้โปรแกรมสามารถแปลงเสียงพูดเป็นข้อความได้แล้ว  แต่ยังไม่สามารถแปลภาษาได้ ขั้นตอนต่อไปเราจะมาทำให้โปรแกรมสามารถแปลเป็นภาษาอื่นๆได้ครับ 

 

12.สร้างฟังก์ชั่นในการแปลภาษา โดยการนำ speech_key และ service_region จากที่เราได้สร้างไวมาใส่ได้เลย

def translation():
    speech_key, service_region = "คีย์ที่นำมาจาก Azure", "ชื่อ location"

 

 #ตั้งค่าภาษาเริ่มต้นและภาษาที่ต้องการแปล 

    translation_config = speechsdk.translation.SpeechTranslationConfig(

        subscription=speech_key, region=service_region,

 

 #ภาษาเริ่มที่ใช้เป็นภาษาไทย

        speech_recognition_language='th-TH',

     

#ภาษาที่จะแปลออกมา ณ ที่นี้เราจะให้แปลเป็นทั้งภาษาอังกฤษ ภาษาจีน และภาษาญี่ปุ่น

        target_languages=('en', 'zh-Hans', 'ja'))

 

#ตั้งค่าการรับเสียงจากไมโครโฟน

    audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True)

    recognizer = speechsdk.translation.TranslationRecognizer(

    translation_config=translation_config, audio_config=audio_config)

    result = recognizer.recognize_once()

 

  #ตรวจสอบผลลัพธ์

    if result.reason == speechsdk.ResultReason.TranslatedSpeech:

        print("""คุณพูดว่า: {}

        ภาษาอังกฤษคือ: {}

        ภาษาจีนคือ: {}

        ภาษาญี่ปุ่นคือ: {}""".format(

            result.text, result.translations['en'],

            result.translations['zh-Hans'],

            result.translations['ja'],))

    elif result.reason == speechsdk.ResultReason.RecognizedSpeech:

        print("Recognized: {}".format(result.text))

    elif result.reason == speechsdk.ResultReason.NoMatch:

        print("No speech could be recognized: {}".format(result.no_match_details))

    elif result.reason == speechsdk.ResultReason.Canceled:

        print("Translation canceled: {}".format(result.cancellation_details.reason))

        if result.cancellation_details.reason == speechsdk.CancellationReason.Error:

            print("Error details: {}".format(result.cancellation_details.error_details))

 

 #เรียกใช้งานฟังก์ชั่นแปลภาษา

translation()

 

13.เมื่อทำการเขียนโค้ดเสร็จแล้วสามารถทำการรันแล้วลองพูดได้เลย

หากเพื่อน ๆ ต้องการให้แปลเป็นภาษาอื่น ๆ สามารถเลือกใช้ได้จากลิงก์นี้เลยครับผม 😊

Language support – Translator – Azure Cognitive Services | Microsoft Docs

หากคุณสนใจพัฒนา สตาร์ทอัพ แอปพลิเคชัน
และ เทคโนโลยีของตัวเอง ?

อย่ารอช้า ! เรียนรู้ทักษะด้านดิจิทัลเพื่ออัพเกรดความสามารถของคุณ
เริ่มตั้งแต่พื้นฐาน พร้อมปฏิบัติจริงในรูปแบบหลักสูตรออนไลน์วันนี้

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้
    รายละเอียดคุกกี้

  • คุกกี้สำหรับการติดตามทางการตลาด

    ประเภทของคุกกี้ที่มีความจำเป็นในการใช้งานเพื่อการวิเคราะห์ และ นำเสนอโปรโมชัน สินค้า รวมถึงหลักสูตรฟรี และ สิทธิพิเศษต่าง ๆ คุณสามารถเลือกปิดคุกกี้ประเภทนี้ได้โดยไม่ส่งผลต่อการทำงานหลัก เว้นแต่การนำเสนอโปรโมชันที่อาจไม่ตรงกับความต้องการ
    รายละเอียดคุกกี้

บันทึกการตั้งค่า