顯示具有 文字轉語音 標籤的文章。 顯示所有文章
顯示具有 文字轉語音 標籤的文章。 顯示所有文章

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)要記得開聲音不然不會聽到