1. 程式人生 > >用Java跟圖靈機器人對話,如查詢天氣

用Java跟圖靈機器人對話,如查詢天氣

介紹

寫過一篇使用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);

	}
}


參考連結