6/17/2024

如何建構能直接語音對話的AI聊天機器人

去年(2023)chatgpt出現之後,AI的各種應用突然之間瘋狂開展。chatgpt很快推出3,4而現在又有4o,其他AI周圍的各種相關服務也爆炸性的成長。

我本來預期很快的會出現直接對話型的AI,不過多半都是以應用程式存在,而不是直接可以用瀏覽器使用。主要的技術問題都已經有既存的解決方案,所以趁著有點空閒,自己來做一個玩看看



為了方便使用,整個應用界面打算僅使用瀏覽器,在LLM上當然是直接使用chatgpt-4o。而將語音轉成文字(speech-to-text)會使用openai 的model:whisper-1。文字轉語音會先用gTTS因為它不用錢,如果覺得效果不好,在改用其他付費的Saas服務。同時,為了簡單處理server session,最好還是有第三方登入比較好,我打算就使用LINE-ID來登入。


整個技術架構非常簡單


* 在digitalocean 弄個 ubuntu TLS VM, 安裝python3, flask, ngnix,  openai sdk等等

* nginx只是負責靜態網頁,並且提供SSL層,SSL解開後就proxy到flask server

* flask server負責處理收到的聲音,先儲存成webm然後送到openai識別文字

* 識別文字之後,直接把文字送到openai chatgpt-4o模型,取得ai的文字回答

* 拿到ai文字回應之後,把文字直接送到gTTS之類的文字轉語音,取得語音之後,利用socketio傳遞data steaming直接播放到瀏覽器

* 為了容易debug 對談的文字也會顯示在web上

最後的結果會是這樣呈現

想要試看看的話可以 到這個網址 https://api.shadow-warrior.space/ 先提醒一下(1)需要使用line登入 (2) 瀏覽器需要允許使用麥克風 (3)要記得開聲音不然不會聽到 






6/01/2024

善用第三方意見 third opinion

第三方意見是指,當你在某個事情裡面,難以決策,而對應的一方由於看事情的角度不同(或者利益不同)也讓你不知道該不該同意對方意見,因而你需要另一個人來提供「第三方意見」用於決策的參考。



善用第三方意見,可以對自己在決策時有很大的幫助。有些時候即便只是個很微小的事情,一個人可能下意識的就會尋求第三方意見。例如,一條街上有許多看似好吃的餐廳,每個餐廳當然都會說自己最好,現在人常常就拿起手機看一下google或者其他系統的評價,這就是個非常簡單的第三方意見。

另一個比較嚴肅的例子,在A醫院裡,根據健康檢查的結果,醫生可能會直接推薦你的親人去做手術,而你為求慎重,可能會帶著你的親人跟健康檢查報告,去B醫院裡諮詢其他醫生最好的診室方案。畢竟,醫療是專業的,我們無法自己判斷時,尋求另一專業人士的意見(反正尋求意見的成本通常不高)對自己親人的健康會有機會更好。


如果你是公司的高級主管,在考慮引入AI的時候,你或許已經接觸了一些AI廠商,他們的簡報自然會說明很多AI的好處優勢,但你也有可能猶豫不決,當然你會列出很多你在考慮的問題,只是那些AI廠商,當然早已對你的問題有標準的回答和反應。那些問題甚至可以透過chatgpt之類的工具給出非常好的回答。因此,對於想要銷售產品給你的人來說,他的意見當然會傾向這個產品一定是你所需要,無論他是明示或者暗示。

然而,萬一失敗,付出成本的終究是你的團隊,即便費用不高,還是會花很多人力成本。最好的方式,仍然是尋求第三方意見,如果你有類似經驗的朋友或過去的同學當然是最好。這些人可能都是你信任,也會盡可能站在你的立場,給你意見。但即便是可信任的朋友同學,大部分時候,他們不免仍然會以「不傷害感情」的方式委婉給予意見,所以很多時候你會收到中性的意見。


但其實也可以找付費的第三方意見顧問,因為這樣付費服務,提供的是「好的意見」以供給你參考,他的本質上並不是提供「好的結果」給你看。所以比較有機會取得某一個完全不同角度的意見,讓你的決策偏頗的機率降低。