用Java跟圖靈機器人對話,如查詢天氣
阿新 • • 發佈:2019-02-15
介紹
寫過一篇使用Yahoo的天氣API查詢天氣的部落格《用Java查詢雅虎天氣並解析Json資料》,解析返回的Json檔案。也可以使用圖靈機器人的API,直接詢問天氣。
圖靈機器人挺有意思,結合語音識別和合成,可以做成簡單的對話機器人,可玩性很強,當然,樹莓派支援了Java,移植後可以做成一個機器人~挖個坑,回頭再寫~
這裡附上圖靈機器人的簡單應用示例,參考連結在後文。
註冊後,獲得自己的APIKEY就能玩起來了,有每天限制次數,目前完全夠玩了,後續可以申請增加次數。
詢問天氣執行效果
返回: {"code":100000,"text":"大連:5月24號 週三,14-25° 22° 晴 西南風4-5級;5月25號 週四,15-23° 晴 北風6-7級;5月26號 週五,16-25° 晴 北風4-5級;5月27號 週六,19-27° 晴 東南風4-5級;"}程式碼
package com.sap.ward.XunfeiVoice; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; public class Tuling { private static String APIKEY = "*****";//官網註冊後,換成你自己的 public static void main(String[] args) throws IOException { String question = "大連今天天氣怎樣";// 這是上傳給雲機器人的問題 String INFO = URLEncoder.encode(question, "utf-8"); String getURL = "http://www.tuling123.com/openapi/api?key=" + APIKEY + "&info=" + INFO; URL getUrl = new URL(getURL); HttpURLConnection connection = (HttpURLConnection) getUrl .openConnection(); connection.connect(); // 取得輸入流,並使用Reader讀取 BufferedReader reader = new BufferedReader( new InputStreamReader(connection.getInputStream(), "utf-8")); StringBuffer sb = new StringBuffer(); String line = ""; while ((line = reader.readLine()) != null) { sb.append(line); } reader.close(); // 斷開連線 connection.disconnect(); System.out.println(sb); } }