RealtimeVoiceChat:实时收到语音回复的实时AI语音聊天应用
RealtimeVoiceChat是什么?
RealtimeVoiceChat是一个能让你用语音和智能系统聊天的开源项目,还能实时收到语音回复。它通过网络传输音频片段,把语音变成文字,让智能系统处理,再把文字变成语音。这个项目支持多种智能系统(默认用Ollama,也能用Openai),还能灵活选择语音风格。它采用客户端-服务器架构,优化了低延迟,能智能检测对话轮次,让聊天更流畅。推荐用Docker来部署,如果有CUDA-enabled NVIDIA GPU,性能会更好。
RealtimeVoiceChat核心功能
流式语音交互:用户语音被浏览器捕获,通过WebSockets传输到Python后端,实时转录为文本,发送给LLM处理,然后将文本响应转换为语音流回传给用户。
低延迟设计:通过音频块流式传输优化架构,确保对话流畅。
智能轮次检测:动态静默检测,根据对话节奏自动切换说话权。
灵活的AI后端:支持多种LLM后端(默认为Ollama,也支持OpenAI)。
可定制语音:可以选择不同的文本到语音引擎(如Kokoro、Coqui、Orpheus)。
简洁的Web界面:使用Vanilla JS和Web Audio API构建的简单用户界面。
Docker化部署:推荐使用Docker Compose进行部署,便于管理依赖。
RealtimeVoiceChat特点
实时交互:用户可以使用语音与 AI 进行对话,AI 也会以语音形式实时回应。
多组件协作:项目包含前端的音频处理和 UI 交互,以及后端的语音转录、文本处理和语音合成等功能。
可配置性:支持多种 TTS 引擎和 LLM 模型,并且可以通过环境变量进行配置。
技术栈
后端:Python 3.x,FastAPI
前端:HTML、CSS、JavaScript(Vanilla JS、Web Audio API、AudioWorklets)
通信:WebSockets
容器化:Docker、Docker Compose
核心AI/ML库:RealtimeSTT(语音转文本)、RealtimeTTS(文本转语音)、transformers(轮次检测、分词)、torch/torchaudio(机器学习框架)、ollama/openai(LLM客户端)
音频处理:numpy、scipy
安装与部署
Docker安装(推荐)
克隆项目并进入目录。
构建Docker镜像(会下载基础镜像、安装Python/ML依赖并预下载默认STT模型)。
启动服务(App和Ollama)。
拉取所需的Ollama模型。
通过浏览器访问http://localhost:8000,开始语音聊天。
手动安装
创建并激活Python虚拟环境。
安装PyTorch(根据硬件配置)。
安装其他依赖(requirements.txt)。
启动FastAPI服务器。
通过浏览器访问http://localhost:8000,开始语音聊天。
配置与定制
TTS引擎与语音:在server.py和audio_module.py中配置。
LLM后端与模型:在server.py和llm_module.py中配置。
STT设置:在transcribe.py中配置。
轮次检测灵敏度:在turndetect.py中配置。
SSL/HTTPS:在server.py中配置。
项目地址
GitHub仓库:https://github.com/KoljaB/RealtimeVoiceChat