[ Linkit Smart 7688 ] 透過 Python 使用 IBM Watson 的 Tone Analyzer 語氣分析服務

IBM Watson 相關的雲端服務為數眾多,例如:Speech To Text、Conversation、Text to Speech、Tone Analyzer、Visual Recognition、Retrieve and Rank、Language Translator 等,並在透過這些雲端服務可進行語音轉換與聊天機器人等情境的運用,而本文透過 Linkit Smart 7688 Duo 將資料傳送到 IBM Bluemix 之 Tone Analyzer 服務來對使用者的語氣進行分析。


前置準備作業

  1. 準備一片 Linkit Smart 7688 開發板

  2. 將 Linkit Smart 7688 連接至電腦

  3. 更新 Firmware 為 0.9.3
    http://goo.gl/dVLQ2Y

  4. 將 USB 音效卡透過 OTG Cable 安裝於 Linkit Smart 7688

  5. 安裝 MIC 與 Speaker 於外接 USB 音效卡上

  6. 安裝 USB 音效卡相關套件
    REF: http://goo.gl/D5rHtu


Linkit Smart 7688 與 USB 外接音效卡連接圖


IBM Watson 端

Step 1. 到 IBM Bluemix 網站申請帳號


Step 2. 登入 IBM Bluemix 網站


Step 3. 點擊上方型錄


Step 4. 點擊左方的 Watson


Step 5. 點擊右邊的 Tone Analyzer 服務


Step 6. 點擊建立服務


Step 7. 建立 Tone Analyzer 服務完成的畫面


Step 8. 服務認證畫面

  • 其中 password 與 username 的部份之後會使用到。


Linkit Smart 7688 端

Step 1. SSH 進入 Linkit Smart 7688 中


Step 2. 安裝 Watson 套件

pip install watson-developer-cloud  

Step 3. 於 Linkit Smart 7688 中建立 Tone Analyzer 的 Python Code

  • config.ini

    PS. 其中 username 與 password 請更新為服務認證畫面中的 password 與 username

[ToneAnalyzer]
username: 輸入 username  
password: 輸入 password  

  • toneAnalyzer.py
# -*- coding: UTF-8 -*-

import ConfigParser  
import json  
from watson_developer_cloud import ToneAnalyzerV3

Config = ConfigParser.ConfigParser()  
Config.read("config.ini")

userName = Config.get('ToneAnalyzer', 'userName')  
passWord = Config.get('ToneAnalyzer', 'passWord')

tone_analyzer = ToneAnalyzerV3(  
    username = userName,
    password = passWord,
    version = '2016-02-11')

print(json.dumps(tone_analyzer.tone(text='我好高興'), indent=2))  

Step 4. 執行 Python Code

python toneAnalyzer.py  

  • 透過 JSON Editor Online 來觀看 JSON

Tone Categories Tone Name
❖ Emotion Tone ❖ Anger
❖ Disgust
❖ Fear
❖ Joy
❖ Sadness
❖ Writing Tone ❖ Analytical
❖ Confident
❖ Tentative
❖ Social Tone ❖ Openness
❖ Conscientiousness
❖ Extraversion
❖ Agreeableness
❖ Emotional Range

GitHub
參考資料
List of blogs

Archer

Having being a full stack engineer. Experience with C, Python, Go, Swift, JavaScript, Node.js, LinkIt 7697, LinkIt Smart 7688, Raspberry Pi, ARM mbed, IoT solutions. Contact us : [email protected]

ALL RIGHTS RESERVED. COPYRIGHT © 2016. Designed and Coded by Makee.io