RealtimeVoiceChat:實(shí)時收到語音回復(fù)的實(shí)時AI語音聊天應(yīng)用
RealtimeVoiceChat是什么?
RealtimeVoiceChat是一個能讓你用語音和智能系統(tǒng)聊天的開源項(xiàng)目,還能實(shí)時收到語音回復(fù)。它通過網(wǎng)絡(luò)傳輸音頻片段,把語音變成文字,讓智能系統(tǒng)處理,再把文字變成語音。這個項(xiàng)目支持多種智能系統(tǒng)(默認(rèn)用Ollama,也能用Openai),還能靈活選擇語音風(fēng)格。它采用客戶端-服務(wù)器架構(gòu),優(yōu)化了低延遲,能智能檢測對話輪次,讓聊天更流暢。推薦用Docker來部署,如果有CUDA-enabled NVIDIA GPU,性能會更好。
RealtimeVoiceChat核心功能
流式語音交互:用戶語音被瀏覽器捕獲,通過WebSockets傳輸?shù)絇ython后端,實(shí)時轉(zhuǎn)錄為文本,發(fā)送給LLM處理,然后將文本響應(yīng)轉(zhuǎn)換為語音流回傳給用戶。
低延遲設(shè)計:通過音頻塊流式傳輸優(yōu)化架構(gòu),確保對話流暢。
智能輪次檢測:動態(tài)靜默檢測,根據(jù)對話節(jié)奏自動切換說話權(quán)。
靈活的AI后端:支持多種LLM后端(默認(rèn)為Ollama,也支持OpenAI)。
可定制語音:可以選擇不同的文本到語音引擎(如Kokoro、Coqui、Orpheus)。
簡潔的Web界面:使用Vanilla JS和Web Audio API構(gòu)建的簡單用戶界面。
Docker化部署:推薦使用Docker Compose進(jìn)行部署,便于管理依賴。
RealtimeVoiceChat特點(diǎn)
實(shí)時交互:用戶可以使用語音與 AI 進(jìn)行對話,AI 也會以語音形式實(shí)時回應(yīng)。
多組件協(xié)作:項(xiàng)目包含前端的音頻處理和 UI 交互,以及后端的語音轉(zhuǎn)錄、文本處理和語音合成等功能。
可配置性:支持多種 TTS 引擎和 LLM 模型,并且可以通過環(huán)境變量進(jìn)行配置。
技術(shù)棧
后端:Python 3.x,F(xiàn)astAPI
前端:HTML、CSS、JavaScript(Vanilla JS、Web Audio API、AudioWorklets)
通信:WebSockets
容器化:Docker、Docker Compose
核心AI/ML庫:RealtimeSTT(語音轉(zhuǎn)文本)、RealtimeTTS(文本轉(zhuǎn)語音)、transformers(輪次檢測、分詞)、torch/torchaudio(機(jī)器學(xué)習(xí)框架)、ollama/openai(LLM客戶端)
音頻處理:numpy、scipy
安裝與部署
Docker安裝(推薦)
克隆項(xiàng)目并進(jìn)入目錄。
構(gòu)建Docker鏡像(會下載基礎(chǔ)鏡像、安裝Python/ML依賴并預(yù)下載默認(rèn)STT模型)。
啟動服務(wù)(App和Ollama)。
拉取所需的Ollama模型。
通過瀏覽器訪問http://localhost:8000,開始語音聊天。
手動安裝
創(chuàng)建并激活Python虛擬環(huán)境。
安裝PyTorch(根據(jù)硬件配置)。
安裝其他依賴(requirements.txt)。
啟動FastAPI服務(wù)器。
通過瀏覽器訪問http://localhost:8000,開始語音聊天。
配置與定制
TTS引擎與語音:在server.py和audio_module.py中配置。
LLM后端與模型:在server.py和llm_module.py中配置。
STT設(shè)置:在transcribe.py中配置。
輪次檢測靈敏度:在turndetect.py中配置。
SSL/HTTPS:在server.py中配置。
項(xiàng)目地址
GitHub倉庫:https://github.com/KoljaB/RealtimeVoiceChat