FOBI

FOBI

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

การฟังเสียงผู้ใช้งานนั้นแน่นอนว่าเรารับแค่เสียงมา FOBI ที่เป็นหุ่นยนต์จะไม่สามารถรู้ได้เลยว่าผู้ใช้งานพูดอะไร เราจึงจำเป็นต้องแปลงจากไฟล์เสียงที่ได้จากหัวข้อที่แล้วมาเป็นข้อความ เพื่อที่จะได้นำไปทำเป็นเงื่อนไขคำสั่งในการทำงาน โดยที่เราจะใช้งาน Google service นั่นก็คือ Google Cloud Speech to Text โดยจะใช้งานนั้นจะต้องใช้ Library Speech Recognition ซึ่งเป็น Library ของภาษา Python เราจะใช้ Speech Reconigtion ส่งไฟล์เสียงนามสกุล .wav ของเราไปที่ Google Cloud Speech to Text จะได้รับไฟล์นามสกุล .txt ที่เป็นข้อความกลับมา เพื่อที่จะได้นำข้อความไปสร้างเงื่อนไขในการทำงานต่อไป

Speech recognition

การติดตั้ง Speech recognition

ในการติดตั้งบน Raspberry pi เราจะใช้คำสั่ง

pip install SpeechRecognition

Version ที่ใช้งานในขณะนั้นคือ V.3.8.1

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

จากตัวอย่างโค้ดด้านล่างจะเป็นการแปลงจากไฟล์เสียงเป็นข้อความโดยจะทำการส่งไปแปลงที่ Google cloud และส่งกลับมาเก็บไว้ที่ตัวแปร text

ตัวอย่าง

import speech_recognition as sr

r = sr.Recognizer()
with sr.AudioFile("output.wav") as source:   
    audio = r.record(source)
try:    
    text = r.recognize_google(audio)
    print(text)

except Exception as e:
    print(e)

จากตัวอย่างโค้ด Library Speech recognition เสียงที่พูดยังได้แค่ภาษาอังกฤษเท่านั้นแต่เราสามารถเปลี่ยนเป็นภาษาไทยได้ โดยไปที่โฟลเดอร์ที่เก็บ Library/speech_recognition/init.py หาฟังชั่น recognize_google() แก้ที่ตัวแปลชื่อ language= “en-US” สามารถเปลี่ยนเป็น language= th-TH” ก็จะสามารถแปลงข้อความจากไฟล์เสียงที่เป็นภาษาไทยได้

อันเก่า

def recognize_google(self, audio_data, key=None, language="en-US", pfilter=0, show_all=False): 

อันใหม่

def recognize_google(self, audio_data, key=None, language="th-TH", pfilter=0, show_all=False):