調教屬於你的“賈維斯”(給自己挖了一個很大的坑)

Crossin先生發表於2018-07-17

今天玩一下現在很火的人工智慧

廢話不多說,先來看幾張圖:

調教屬於你的“賈維斯”(給自己挖了一個很大的坑)

看出什麼蹊蹺了嗎?

再來看一個視訊:

調教屬於你的“賈維斯”(給自己挖了一個很大的坑) https://www.zhihu.com/video/1002567561061511168

演示網址和程式碼見文末
人工智慧離我們有多遠?你覺得只有戰勝柯傑的阿爾法狗才算是人工智慧嗎?看看周圍:你的美顏相機、你刷的抖音推薦、你手機上的語音助手……甚至包括給你送外賣的小哥分配,現在都少不了人工智慧的參與。

《鋼鐵俠》中的智慧管家賈維斯,如今看起來也不算那麼“科幻”了。不少廠家最近都推出了智慧音響產品,可以語音聊天及控制家裡的智慧家居裝置。

調教屬於你的“賈維斯”(給自己挖了一個很大的坑)

不過,我想要一個自己的“賈維斯”。

這個想法由來已久。現在看來,實現的可能性越來越高了。因為各種AI平臺智慧硬體都已成熟,而 Python 這個膠水語言又可以很方便地把各種模組拼接起來。

最近正好瞥見了一個有意思的新“玩具”--騰訊AI開放平臺ai.qq.com),本來只是想簡單給大家分享一下。結果我自己寫得停不下來,藉此機會開啟我的調教之旅。(這回一定是一個深坑)

這次用到了AI平臺的語音識別智慧閒聊語音合成,把這三個功能串起來,實現了語音智慧應答的功能。

目前功能可以說是十分初級,不過總要有個開始嘛,反正我有的是時間去打造她。

接下來的一些計劃:

  • 增加攝像頭,實現人臉識別和場景定位
調教屬於你的“賈維斯”(給自己挖了一個很大的坑)
  • 接上一個機械臂。之後所以無腦操作類的手機遊戲,你們就別想跟我一起衝排名了
調教屬於你的“賈維斯”(給自己挖了一個很大的坑)
  • 安上輪子
調教屬於你的“賈維斯”(給自己挖了一個很大的坑)
  • 連線無人機
調教屬於你的“賈維斯”(給自己挖了一個很大的坑)
  • 當然,肯定還少不了樹莓派
調教屬於你的“賈維斯”(給自己挖了一個很大的坑)

雖然還沒想清楚最終會做出個什麼東西,但這不重要,對我來說過程已經夠有趣了。(應該整不出一個奧創來)

另外昨天還順手拿人臉融合的介面做了個線上換裝小工具,支援50種模板,想要體驗的朋友,由此進入>>> 人臉融合 - Crossin 的程式設計實驗室

昨天夜裡把這個功能上線,朋友圈發了一下,很快就有幾百人訪問。現在文章推送出去,不知道我那小破伺服器能不能頂得住。雖然已經對圖片傳輸做了壓縮優化,但還是很危險。如果請求失敗,請稍晚些再來體驗,或者自己下載程式碼執行。


外行看熱鬧,內行看門道。前面的熱鬧說完了,如果你還想了解更多,我們接下來就說點有資訊量的門道。

這次程式碼用到的騰訊AI開放平臺,現在功能已經不少,主要是自然語言處理計算機視覺智慧語音三大方向。這次案例的程式碼,三個方向都涉及到了。

調教屬於你的“賈維斯”(給自己挖了一個很大的坑)

平臺文件還算得上詳細,也提供了線上功能演示,建議自己上去搗鼓一下。現在只要註冊就能申請使用,不收費,作為學習來說也幾乎沒有限制。比較可惜的是我沒看到有Python 示例,所以你可以參考我的程式碼來寫。(尤其是計算簽名的部分,可以直接用我的程式碼。)

單看獨立的 API 並不複雜,簡單來說就是一個網路請求,你按要求提供了正確的引數,平臺就會返回給你相應的結果。但如果你是剛接觸這類介面,我相信你會被坑得鼻青臉腫,因為我也是過來人。

比較明顯的坑大約有三個:

  1. 簽名。這是開放 API 驗證來源身份的標誌,也是 API 新手必經的坎。你要了解 md5 的概念(之前文章有提及過【每週一坑】校驗檔案雜湊),並且按照 API 的要求生成正確的簽名。除了開始時理解上的困難,在開發除錯時,因為最終輸出只有一串字元,所以出錯時很難 debug,只能一遍遍地仔細檢查。
  2. 引數。引數看起來都給你規定好了,但實際用時才發現會有各種問題。比較常見的錯誤可能是編碼。同樣,因為缺少除錯資訊,即使是很低階的錯誤,也可能讓你耗費很長時間。再加上有些你沒注意到的文件細節(比如字元長度限制)和錯誤(語音合成裡的請求方法是 POST 但文件上寫的是 GET),這個步驟也會讓你抓狂。
  3. 返回值。當你排除萬難,終於拿到結果的時候,或許會一臉懵逼……因為除了自然語言介面外,影象和聲音的返回值大多是經 base64 編碼後的資料。你需要自己對這些資料進行處理、儲存或展示。而如果你像我一樣要把幾個介面的功能串聯起來,那麼等待你的將是各種資料、檔案型別的轉換。好在 Python 在這方面還算方便,不然真的會痛不欲生。

所以,看起來只是簡單的介面呼叫,對於經驗不多的開發者來說,也不是容易的事。但這些光靠看是看不出來的,你必須親手寫過才能體會。寫了之後就會發現,一些坑我早就給過預警。不用太過糾結於哪個教程更好,自己動起手來才是最好。


示例程式碼裡包括語音智慧聊天和換裝的程式碼、以及一個簡版的換裝頁面(基於django)。獲取程式碼地址請在公眾號(Crossin的程式設計教室)裡回覆 人工智慧

如果有搞不定的問題,歡迎加入我的知識星球來跟我討論,話題不限於示例程式碼。

人臉融合 - Crossin 的程式設計實驗室 歡迎體驗及轉發。


════

其他文章及回答:

如何自學Python|新手引導|精選Python問答|Python單詞表|區塊鏈|人工智慧|雙11|嘻哈|爬蟲|排序演算法|我用Python|高考|世界盃|競猜|requests

歡迎搜尋及關注:Crossin的程式設計教室

調教屬於你的“賈維斯”(給自己挖了一個很大的坑)

相關文章