maipatana.me

Speech Recognition ด้วย Python

pythonvoice recognitionspeech recognition

Tutorial นี้จะอธิบายในส่วนของ Speech Recognition ที่ผมใช้ใน Voice Recognition ด้วย Python สั่ง Arduino โดย Code ตัวอย่างสามารถ download ได้จาก ที่นี่ ครับ

อธิบาย

ใน Tutorial นี้ไม่ต้องมีอะไรมาก อย่างน้อยๆเราต้องมี Python ก่อน จากนั้นก็ลง library SpeechRecognition ด้วยการเปิด command ขึ้นมา แล้วพิมพ์ว่า pip install SpeechRecognition ถ้าใครใช้ Python version 2.7.9 ขึ้นไป หรือ 3.4 ขึ้นไป จะมี pip มาให้อยู่แล้ว ไม่ต้องห่วง แต่ถ้าใครยังไม่มีก็ต้องลง pip ก่อน ไม่ก็ลง Python เวอร์ชั่นที่ใหม่ขึ้นครับ

อีกอย่างที่เราต้องการคือไมค์และ internet ครับ เพราะเราจะต้องส่งเสียงเราไปประมวลบนเมฆ (cloud)

เท่านี้เราก็เริ่มก็ได้แล้ว โดยเริ่มจากการ import library เข้ามาก่อน

import speech_recognition as sr

จากนั้นเราควรป้องกันเสียง noise ต่างๆ เสียงบรรยากาศ เสียงแอร์ เรื่องพัดลม ที่ไม่ใช่เสียงเราด้วยการ Set Threshold

# Record Audio r = sr.Recognizer() m = sr.Microphone() #set threhold level with m as source: r.adjust_for_ambient_noise(source) print("Set minimum energy threshold to {}".format(r.energy_threshold))

เท่านี้เราก็พร้อมที่จะรับเสียงของเราเข้าไปแล้ว ด้วย

# Speech recognition using Google Speech Recognition def checkspeech(r): with sr.Microphone() as source: audio = r.listen(source) try: # for testing purposes, we're just using the default API key # to use another API key, use `r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY")` # instead of `r.recognize_google(audio)` print("You said: " + r.recognize_google(audio)) return (r.recognize_google(audio)) except sr.UnknownValueError: print("Google Speech Recognition could not understand audio") return ("WW") except sr.RequestError as e: print("Could not request results from Google Speech Recognition service; {0}".format(e)) return ("WW")

ก็คือเป็น function เพื่อเช็คเสียงของเรา โดยถ้าทุกอย่างเป็นไปด้วยดี ก็จะได้ return (r.recognize_google(audio)) มา แต่ถ้าเกิดข้อผิดพลาด เช่นไม่ได้ยินเสียง หรือ Google ฟังไม่ออก ก็จะ return ("WW") ที่ผมให้ return "WW" จริงๆก็ไม่มีอะไร แค่อะไรก็ได้ที่ผมจะรู้ว่ามันฟังผมไม่ออก หรือมีอะไรผิดพลาด

ทีนี้ เราจะสามารถเก็บคำที่เราพูดด้วยการ assign variable เข้าไปด้วย speech = str(checkspeech(r)) ก็คือเราจะได้ตัวแปรที่เรียกว่า speech ที่จะ = string ของคำอะไรก็ตามที่ทาง Google ส่งกลับมาให้ และหวังว่ามันจะตรงกับคำที่เราพูดไป

จากนั้นเราจะทำอะไรก็ speech ก็แล้วแต่เราละครับ

เมื่อรวมทั้งหมดแล้วเราก็จะได้

Loading ...

จบละครับผมกับ tutorial เรื่อง Speech Recognition สั้นๆนี้