文前碎碎念
又好一段時間沒更新這個專案了,近期因為正職工作的關係,較難整理過於瑣碎的開發進度。
回顧前一陣子,我因為一則推特上無意間滑到的討論,而開啟了這個「
人工智障計畫」。
而這個計畫主要目標,是要開發一個能夠呈現虛擬角色,並在固定時間,用自己想要的聲線提醒代辦事項的小裝置。
不過近期隨著 GPT 應用越來越廣泛,網路上也已經陸續有不少目的相似,但功能卻更強大的作品相繼出現。
但我會開啟這個專案的目的,本來就是以技術學習為主,所以基本上,也不大需要去與他們一較高下。
不過像這樣相關作品的產出速度之快,也讓我不得不佩服 AI 技術的發展,對產品的加速開發,帶來這麼大的幫助。
回歸正題,經過這些時日,以及數個難眠之頁的 摧殘 開發,這個專案至目前為止,也已經有一些初步的成果,正準備往更複雜的階段邁進。
不如就趁現在來個進度報告吧!
幫我記一下
硬體的部分,在上一篇公開的「人工智障計畫」紀錄中已經稍微提過了,所以這次主要以目前的軟體進度為主。
首先是最主要的代辦事項紀錄功能,由於設備整體上並沒有預留作為輸入的介面,因此操作主要是以 Wifi 區網直接連接後台的方式進行。
成功連線後,就可以透過內建的網頁介面進行事項的輸入,以及硬體的電源控制,像是關機、重啟等。
代辦事項的紀錄,為了程式的可攜性,以及達成離線也能運作的目的,目前也都是以內建的儲存介面為主,至於後續是否會加入其他記事 API 的串連,如 Google Calander 等線上服務,就要視狀況再決定。
與你相連的距離
另外,鑑於之前開發時有出現網路連接不穩的情況,因此將機器設置為偵測到網路中斷後,便會自行啟動熱點的模式,以避免在無網路環境下無法控制設備。
系統在斷線後,也會定時檢查環境中 Wifi 可用性,當有紀錄中存在的訊號出現時便會再度連線,這部分設置要感謝網路上有人提供的快速解決方案,相關操作及資料可參閱
此篇公開部分。
活在畫框中的你
角色展示部分,原本在設計上是想以程式化的方式,直接擷取 Live2D 模型的靜態圖像,疊合背景後來進行展示,但卻在處理 SDK 時遇到了一些瓶頸。
畢竟 Live2D 本身也還是閉源技術,在使用上的限制也較多,再加上確認實際在電子紙螢幕上運作所呈現的效果後,目前暫調整為以預擷取的靜態圖像,直接疊合背景跟 UI 圖示來繪製畫面。
吵得你心裡發慌
前面有提到此專案的目標之一,是要能夠定時提醒代辦事項,所以當然少不了要發出語音的功能。
但由於目前開發還沒到達那個進度,因此就暫且使用最常見,也是最垂手可得的 Google 小姐套件來為她發聲。
另外作為備案,專案中也引入基礎的 espeak 套件,以及自行撰寫,能根據文字轉換成陶笛音調的功能,以保證系統在離線狀態下也還能發聲。
不過,未來當然還是希能借助一些 AI 的魔法,來將輸出的ㄩ語音轉換成自己喜歡的聲線。
意外還是幸運
在前期開發過程中,有發生一個蠻大的插曲,其實在一開始計畫這個專案的時候,原本是預計使用一塊 Pi 0 W 一代電腦為主要核心,但板子卻在中途因不明因素損壞,以致於原本進度被迫中斷。
為了完成後續開發,我也不得不拆解過去成品,並將現有系統轉移到另一塊 Pi 3 B+ 主板上。
也不知道這個意外到底是幸或不幸,雖然犧牲了一點原本的便攜性,以及背面的邊框支撐需要重新設計,但至少接下來的軟體開發上,會有更多的硬體資源可以使用。
不過也因為更換後的主板,本身就具備有較完整的連接埠,除了可以直接使用外接喇叭來發聲,不需要浪費空間來連接外接音效卡之外,必要時也能直接連接普通螢幕作為除錯操作,更便利的操作可能也算因禍得福⋯吧。
下一步又是如何
至此再整理一次所期望的功能,以及目前已達成之進度列表
→ 【達成】可藉後台輸入代辦事項,並可由前台顯示指定時間內將到期之項目。
→ 【部分達成】目前可做到程式化控制角色立繪的變換,但 L2D 模型使用上遇到技術困難,需另尋替代。
→ 【部分達成】至目前為止實裝的系統,皆能夠在離線狀態下運作,或在離線狀態下,可切換其他替代模式替代。
→ 【執行中】為下一階段開發主要方向,目前暫時以現成套件作為測試。
→ 【計畫中】暫時使用過去基本問答核心為基礎,進階部分待主功能完成後再考慮。
結語
接下來的工作,沒意外的話就是要開始研究文字轉語音,或音色複製相關的技術實作了,希望以我自己目前的能力,還能應付的過去。
不過依照目前情況,以及硬體資源來看,如果真要加入 AI 相關功能的話,應該也很難繼續維持離線運作的特性。
未來細部的開發進度,還是會逐步以訂閱式的「難眠之頁」或是新的「沙龍討論」方式更新,也歡迎有興趣的朋友參考囉。
最後也希望後續開發能順利進行吧。
《全文。待續》