iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
0
AI & Data

一服見效的 AI 應用系列 第 12

Day 12:快速完成一個『對話機器人』(ChatBot)

前言

今年最夯的AI應用非『對話機器人』(ChatBot)莫屬了,許多大企業都已建置相關應用系統,並配置一組專案人員維運,一方面提昇機器人智慧,另一方面不斷擴展應用範疇(Skills)。

『對話機器人』可以廣泛應用在行銷、銷售及客服等方面,它對比真人有許多優點:

  1. 24小時服務,永不喊累,也不會違反勞基法。
  2. 顧客面對對話機器人,不會感受到銷售壓力,可以問好問滿。
  3. 背後資料庫的支援,遠勝智商157的人類。
  4. 一台伺服器可以同時支援上百位客戶。

對話機器人(ChatBot)的情境如下圖:
https://ithelp.ithome.com.tw/upload/images/20190927/20001976WKP6Cae7Ws.png

  1. 使用者以語音或文字提出問題,如果是語音,一般需轉成文字(Speech to Text),以便後端機器人作語意解析。
  2. 自然語言理解(Natural Language Understanding, NLU):語意解析後,系統可以找出使用者意圖(Intent)及實體(Entity),包括人、事、時、地、物。
  3. 回應(Response):根據使用者意圖回應訊息,如果,結合物聯網(IOT),回應也可能是直接驅動硬體,例如,打開電燈或撥放音樂。另外,也可能查詢資料庫,找到答案,加以回應。
  4. 文字轉語音(Text to Speech):如果是使用智慧音箱或手機,就可以利用Text to Speech技術,將回應轉為語音,直接播放。

說那麼多,不如實作,寫個程式示範一下。

實作

程式提供錄音、語音辨識、分詞,執行程式後,講一段話,例如,周杰倫到永康街吃牛肉麵,程式輸出結果為:
周杰倫/到/永康街/吃/牛肉麵
程式會將語音轉文字,並分詞,程式即可進一步解析,作出回應:

  1. 意圖:吃
  2. 實體:周杰倫(人)、永康街(地)、牛肉麵(物)

執行以下程式,需安裝三個套件:

  1. SpeechRecognition
  2. pyaudio
  3. jieba
import speech_recognition as sr

# 錄音
recognizer = sr.Recognizer()
microphone = sr.Microphone()
with microphone as source:
    recognizer.adjust_for_ambient_noise(source)
    audio = recognizer.listen(source)

# 語音辨識    
# pip install SpeechRecognition
# pip install pyaudio
try:
    text=recognizer.recognize_google(audio, language='zh-tw')
    print(text)
except:
    pass

# jieba 分詞
# pip install jieba
import jieba
# 加詞
#jieba.add_word('三天三夜')

seg_list = jieba.cut(text)
print("/".join(seg_list))

結語

以上近20行程式,就可以搞定略具雛形的對話機器人了,至於如何回應,就待下回分解了。


上一篇
Day 11:混合的推薦模型 (Hybrid Model)
下一篇
Day 13:快速完成一個『對話機器人』(ChatBot) -- 續
系列文
一服見效的 AI 應用14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言