解鎖您手機的即時 AI 對話共同駕駛
解鎖您手機的即時 AI 對話共同駕駛。建立一個強大的工具,可即時轉錄和分析對話,並提供即時建議和反饋以改善溝通。利用這個 AI 驅動的助手,增強您的面試、會議和社交互動。
2025年2月24日

這篇部落格文章探討了一個即時 AI 對話協作助手的潛力,它可以協助完成工作面試和使用者研究等任務。作者展示了一個網頁和行動應用程式的開發,它利用先進的語音轉文字和語言模型,提供即時轉錄和建議功能,突出了這種工具在增強溝通和生產力方面的好處。
即時 AI 對話共同駕駛入門
即時 AI 對話共同駕駛入門
差不多在一年前的 2023 年 3 月左右,當 ChatGPT 剛剛問世並成為全球熱門話題時,我清楚地記得看到 Arony 的一個演示,他建立了一個「面試破壞者」 - 一個可以幫助你通過面試的 ChatGPT 工具。這週,我也建立了一個名為「面試破壞者」的東西 - 一個使用 ChatGPT 製作的概念驗證,用於通過面試。它會了解你之前的經驗,聽取你與面試官的對話,並告訴你該說什麼,填補你可能不知道的內容。
作為一名資深架構師,在為後端服務確定優先事項時,我會優先考慮可擴展性。這種工具將會對面試過程造成破壞。通常,當這些大型技術出現時,如電腦或互聯網,它們會改變之前出現的所有流程。這意味著,如果我們展望很遠的未來,某些問題可能不再有意義。
我認為這是一個很棒的想法,因為當時我正在經歷一些面試過程,所以我很想有一個實時工具來幫助我通過面試。我確實嘗試過建立一個原型,它使用語音轉文字模型來生成文字記錄,並使用大型語言模型來生成答案,但是那個原型在現實生活中從未很好地運作。這些實時面試或對話協作者的一個重要要求是必須低延遲和實時。如果需要 30-40 秒才能生成一些結果,它就不會真正有用。不幸的是,這在去年 3 月時就是這種情況,因為語音轉文字模型和大型語言模型都需要很長的推理時間。這在理論上是一個簡單的項目,但在現實中很難建立一個可用的產品。
然而,幾個月後,我看到另一個產品展示了一個類似的場景,但性能接近實時。在航空航天工程中,例如噴氣引擎或航天器再入,你如何應對這些挑戰?
建立即時對話記錄和快速推論的挑戰
建立即時對話記錄和快速推論的挑戰
構建實時對話伙伴的兩個關鍵組件是:實時記錄和快速推理。
實時記錄
實現實時轉錄是最大的挑戰之一。典型的語音轉文字模型,如 Whisper,並不是為串流場景而設計的,它們是處理整個錄音,而不是小塊音頻。
為了克服這一點,一個常見的解決方案是創建一個循環,持續捕捉小塊音頻(例如每 2-5 秒),將它們發送到語音轉文字模型,並將小記錄拼接在一起。這種方法需要進行優化以確保準確性,例如比較連接單詞的時間戳以增強最終記錄。
幸運的是,語音轉文字技術已經快速發展,現在有一些解決方案可以實現實時轉錄,例如使用部署在 Replicate 等平台上的超快速模型,或直接在移動設備上部署輕量級模型如 Whisper Kit。
快速推理
第二個挑戰是實現大型語言模型的超快速推理,以實時生成建議。要解決這個問題:
-
選擇一個快速且小型的語言模型:Meteo 7B 等模型比 GPT-4 小得多,速度也更快,可以使用更少的計算資源快速生成響應。
-
減少輸入大小:隨著對話的持續,輸入到語言模型的內容可能變得太大。可以使用語言模型摘要技術,只提取相關信息,減少輸入大小。
-
優化輸出生成:還可以進一步優化,減少輸出標記數量,例如使用提示工程方法。
通過結合實時記錄和快速推理的技術,可以構建一個高度響應的實時對話伙伴,在對話過程中提供有價值的建議和支持。
建立基於網頁的對話共同駕駛演示
建立基於網頁的對話共同駕駛演示
要構建一個基於 Web 的對話協作演示,我們將使用 Flask(一個 Python Web 框架)和 Replicate(一個運行開源 AI 模型的平台)的組合。
關鍵組件包括:
-
實時記錄:我們將使用 Replicate 上的一個快速語音轉文字模型來生成對話的實時記錄。這涉及持續捕捉小塊音頻,將它們發送到語音轉文字模型,並將結果拼接在一起。
-
快速推理:我們將使用 Replicate 上的一個小型快速語言模型(如 Minitram)來根據記錄實時生成建議和答案。我們還將探索減少輸入大小和總結對話等技術,以提高速度。
Web 應用程式將具有以下功能:
- 一個文本輸入框,供用戶提供對話的背景資訊。
- 一個「錄音」按鈕,用於開始和停止音頻錄製。
- 一個「獲取建議」按鈕,用於觸發語言模型並獲取建議。
- 實時顯示對話記錄。
- 顯示生成的建議。
以下是逐步過程:
-
設置 Flask 應用程式:
- 創建
app.py
文件,並導入必要的庫,包括 Replicate Python SDK。 - 定義用於首頁和音頻處理端點的 Flask 路由。
- 設置 AWS S3 儲存桶和憑證,用於暫時存儲音頻錄製。
- 創建
-
實現實時記錄功能:
- 使用 Replicate Whisper 模型持續捕捉和轉錄音頻塊。
- 通過處理單詞邊界和維護塊之間的上下文來優化記錄。
-
實現快速推理功能:
- 使用 Replicate Minitram(或類似的小型快速語言)模型根據完整記錄生成建議。
- 探索減少輸入大小和總結對話等技術,以提高推理速度。
-
使用 HTML 和 JavaScript 構建前端:
- 在
templates
資料夾中創建index.html
文件。 - 定義包含文本輸入、錄音按鈕和建議顯示的 HTML 結構。
- 實現 JavaScript 邏輯,處理錄音、音頻上傳和對 Flask 後端的 API 調用。
- 在
-
測試和部署 Web 應用程式:
- 在本地運行 Flask 應用程式並測試功能。
- 將應用程式部署到托管平台(如 Heroku、AWS 或您自己的伺服器)。
通過遵循這些步驟,您將能夠構建一個基於 Web 的對話協作演示,它可以聆聽對話,生成實時記錄,並根據上下文提供建議。
利用 Whisper Kit 建立移動對話共同駕駛
利用 Whisper Kit 建立移動對話共同駕駛
在看到基於 Web 的對話協作演示後,我決定探索使用 Whisper Kit 開源框架構建移動版本的可能性。Whisper Kit 提供了一個 Swift 套件,允許直接在 iOS 設備上部署 Whisper 語音轉文字模型,實現低延遲的實時轉錄。
為了開始,我克隆了 Whisper Kit GitHub 儲存庫,並在 Xcode 中打開了示例專案。該專案包含一個 whisper-ax
資料夾,其中包含了一個示例 iOS 應用程式的源代碼,展示了如何使用 Whisper Kit。
在 ContentView.swift
文件中,我首先定義了一些額外的狀態變數,用於處理提示輸入和來自大型語言模型的 API 響應摘要。然後,我添加了一個輸入欄位,供用戶自定義提示,這將用於為大型語言模型提供上下文。
接下來,我實現了 getSuggestion()
函數,負責將記錄和提示發送到 Replicate API,以從 Mistral 語言模型生成響應。這個函數處理 Replicate API 的串流性質,不斷檢查狀態,直到響應完成,然後將生成的建議更新到 API_response_summary
狀態變數。
最後,我添加了一個「獲取建議」按鈕,觸發 getSuggestion()
函數,並在實時記錄下方顯示 API 響應摘要。
生成的 iOS 應用程式允許用戶開始對話,實時查看記錄,並立即獲得來自大型語言模型的建議,以幫助引導對話。Whisper Kit 用於語音轉文字功能,結合 Replicate API 的整合,在用戶的移動設備上提供了一個流暢和響應式的對話協作體驗。
這種方法為實時、基於上下文的對話協助開啟了新的可能性,在重要討論、面試和社交互動期間,為用戶提供智能支援。通過利用語音識別和大型語言模型的最新進展,移動對話協作應用程式可以成為改善溝通和提高生產力的有價值工具。
我很興奮能繼續完善和美化這個移動對話協作應用程式,並期待在準備就緒時與社區分享。如果您對嘗試使用該應用程式或提供反饋感興趣,請告訴我。
結論
結論
總之,構建實時對話協作是一項複雜的任務,需要解決幾個關鍵挑戰。主要挑戰包括:
-
實時記錄生成:實現低延遲、準確的語音轉文字轉錄是關鍵。使用串流語音識別模型並優化音頻塊與轉錄文字之間的連接是必要的。
-
快速大型語言模型推理:快速生成相關建議和響應需要使用更小、更專門的語言模型,以提供快速的推理時間。減少輸入標記數量和總結對話歷史記錄等技術可以幫助提高性能。
-
無縫整合:將實時記錄生成和大型語言模型推理整合到一個連貫、用戶友好的應用程式中,對於提供流暢有效的體驗至關重要。
這個演示展示了如何使用 Whisper 語音轉文字模型、Minstrel 語言模型和 Replicate 平台等技術組合來解決這些挑戰。生成的 Web 和移動應用程式提供了實時轉錄和建議生成,展示了這項技術在面試、用戶研究訪談和社交互動等各種對話場景中增強溝通質量和效率的潛力。
總的來說,開發實時對話協作是一個有前景的研究和開發領域,有望大大改善人與人之間的溝通。
常問問題
常問問題